diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-01-26 10:46:38 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-01-26 10:46:38 +0000 |
commit | a1258d5a039487d16ce66e5c59ed4e9dd237445e (patch) | |
tree | 7e368189a5254f6872a12fd87d0b3e17055bddf3 | |
parent | e5688bf8804efb757a9b73442b22084f186335d3 (diff) | |
parent | a059696359760c305930781d3c439be89d29a314 (diff) | |
download | elfutils-a1258d5a039487d16ce66e5c59ed4e9dd237445e.tar.gz |
Merge "Merge tag 'elfutils-0.190' into main" into main am: a059696359
Original change: https://android-review.googlesource.com/c/platform/external/elfutils/+/2927750
Change-Id: I06846af485c697e76bc1140a11acb0376376a2e4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
114 files changed, 7618 insertions, 4497 deletions
diff --git a/CONTRIBUTING b/CONTRIBUTING index bb48975b..5614728e 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -45,13 +45,28 @@ then you just add a line saying Signed-off-by: Random J Developer <random@developer.example.org> -using your real name (sorry, no pseudonyms or anonymous contributions.) +using a known identity (sorry, no anonymous contributions.) +The name you use as your identity should not be an anonymous id +or false name that misrepresents who you are. git commit --signoff will add such a Signed-off-by line at the end of the commit log message for you. -The ideal patch contains a ChangeLog entry and a test case for the -bug fixed or feature added. +The ideal patch contains a ChangeLog entry for the commit message and +a test case for the bug fixed or feature added. + +The commit message is expected to start with a one line summary of +what the patch does, prefixed with the main subdir the patch applies +to. e.g libelf: Rewind the elf_frob function bar definitions. + +Finally please include an ChangeLog entry explicitly listing the files +and what changed in each of them in the commit message. This will help +a reviewer understand which changes are expected (and which might be +accidential). Try to follow the GNU Change Log style: +https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html +Note that elfutils previously maintained separate ChangeLog +files. These are no longer used. All changes should be documented in +the git commit message. The testsuite (make check) is expected to have zero failing tests. Do not knowingly add tests that FAIL. If there are architectures or @@ -69,6 +84,22 @@ After sending your patch to the mailinglist one of the committers to the project will review it, give feedback, and if perfect they will commit it for you. +All patches sent to the mailing list are tracked at +https://patchwork.sourceware.org/project/elfutils/list/ + +To use this from the command line you can use git-pw +https://patchwork.readthedocs.io/projects/git-pw/en/latest/ + +For using it with git-pw use these .git/config settings: + [pw] + server = https://patchwork.sourceware.org/api/1.2/ + project = elfutils + token = <hex-token> + states = committed,accepted,superseded,deferred,rejected,under-review + +If you would like to help maintain the pending patch list your +patchwork account can be added as maintainer for the elfutils project. + You can become a maintainer/committer yourself after you have provided at least a handful of accepted patches and agree to the guidelines in this document for creating, reviewing, accepting and committing patches. @@ -96,10 +127,15 @@ mailinglist that the patch has been pushed. committers may also create git branches starting with <nickname>/... patches on these branches are works in progress, so might not be perfect yet, but should follow the above guidelines as much as possible and should -be aimed at integration into master. For merging a branch into master +be aimed at integration into main. For merging a branch into main the same process as above should be followed by posting the patches to the list first. +Note that a branch starting with <nickname>/try... will be picked up +by the Sourceware buildbot and can be used to test your patches before +merging into the main branch: +https://builder.sourceware.org/buildbot/#/builders?tags=elfutils-try + committers/maintainers who repeatedly ignore the above guidelines, are hostile or offensive towards other committers or contributors, and don't correct their behavior after being asked by other committers @@ -1,3 +1,8 @@ +2023-03-27 Di Chen <dichen@redhat.com> + + * NEWS: Support readelf -Ds for using dynamic segment to + print symbol table. + 2023-03-03 Mark Wielaard <mark@klomp.org> * NEWS: Add ELFCOMPRESS_ZSTD support for libelf and elfcompress. @@ -12,12 +12,12 @@ third_party { 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 e92e05c2..41badfd7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -29,7 +29,7 @@ pkginclude_HEADERS = version.h SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \ libasm debuginfod src po doc tests -EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ +EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \ COPYING COPYING-GPLV2 COPYING-LGPLV3 # Make sure the test install uses lib64 when $LIB will yield lib64. @@ -1,3 +1,28 @@ +Version 0.190 "Woke!" + +CONTRIBUTING: Switch from real name policy to known identity policy. + Updated ChangeLog policy (no more separate ChangeLog files). + There is a SECURITY bug policy now. + The default branch is now 'main'. + +libelf: Add RELR support. + +libdw: Recognize .debug_[ct]u_index sections + +readelf: Support readelf -Ds, --use-dynamic --symbol. + Support .gdb_index version 9 + +scrlines: New tool that compiles a list of source files associated + with a specified dwarf/elf file. + +debuginfod: Schema change (reindexing required, sorry!) for a 60% + compression in filename representation, which was a large + part of the sqlite index; also, more deliberate sqlite + -wal management during scanning using the + --scan-checkpoint option. + +backends: Various LoongArch updates. + Version 0.189 "Don't deflate!" configure: eu-nm, eu-addr2line and eu-stack can provide demangled symbols @@ -29,3 +29,5 @@ Or use the form at https://sourceware.org/mailman/listinfo/elfutils-devel See the CONTRIBUTING file for how to propose patches to the code. See the NOTES files for some design decisions and notes. + +See the SECURITY file for defining and handling security-sensitive bugs. diff --git a/SECURITY b/SECURITY new file mode 100644 index 00000000..677802c6 --- /dev/null +++ b/SECURITY @@ -0,0 +1,56 @@ + +The elfutils library and utilities aim to be generally robust and +reliable. However, elfutils routinely processes complex binary +structured data. This makes the code intricate and sometimes brittle. +While elfutils developers use a variety of static and dynamic checker +software (valgrind, sanitizers) in testing, bugs may remain. Some of +these bugs may have security-related implications. + + +While many errors are cleanly detected at runtime, it is possible that +vulnerabilities exist that could be exploitable. These may arise from +crafted / fuzzed / erroneous inputs, or perhaps even from valid inputs +with unforseen characteristics. Therefore, to minimize risks, users +of elfutils tools and libraries should consider measures such as: + +- avoiding running complex elfutils analysis on untrustworthy inputs +- avoiding running elfutils tools as privileged processes +- applying common platform level protection mechanisms such as + selinux, syscall filtering, hardened compilation, etc. + +Since most elfutils tools are run in short-lived, local, interactive, +development context rather than remotely "in production", we generally +treat malfunctions as ordinary bugs rather than security vulnerabilities. + + +Elfutils includes one network client/server: debuginfod. The +debuginfod man page contains a SECURITY section outlining the general +risks. tl;dr: many classes of server problems are delegated to +front-end proxies and curated elf/dwarf archives of the operator; +others to careful configuration of the debuginfod client. These are +not generally reportable as security vulnerabilities. However, we are +likely to accept security vulnerability reports related to: + +- availability: e.g., remotely exploitable server crash, but not + routine resource exhaustion or overload; client crash due to + unexpected valid traffic from trusted server + +- confidentiality: e.g., allowing the server to expose one client's + traffic to another client + +- integrity: e.g., causing the server to send erroneous + elf/dwarf/source data across the webapi; causing the client to + corrupt its cache to lose file integrity + +We welcome reports that are tangential to any of these subjects. + +Please report bugs via any of: +- email to <elfutils-devel@sourceware.org> +- https://sourceware.org/bugzilla/enter_bug.cgi?product=elfutils + +After considering the above exclusions, please report suspected +security vulnerabilities confidentially via any of: + +- email to <mark@klomp.org> +- email to <fche@elastic.org> +- email to <secalert@redhat.com> diff --git a/backends/ChangeLog b/backends/ChangeLog index 81f08314..ddb4e0af 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,43 @@ +2023-05-09 Youling Tang <tangyouling@loongson.cn> + + * Makefile.am (loongarch_SRCS): Add loongarch_initreg.c. + * loongarch_initreg.c: New file. + * loongarch_init.c (loongarch_init): Hook set_initial_registers_tid. + +2023-04-07 Youling Tang <tangyouling@loongson.cn> + + * Makefile.am (loongarch_SRCS): Add loongarch_corenote.c. + * loongarch_init.c (loongarch_init): Hook core_note. + * loongarch_corenote.c: New file. + +2023-04-07 Youling Tang <tangyouling@loongson.cn> + + * Makefile.am (loongarch_SRCS): Add loongarch_unwind.c. + * loongarch_init.c (loongarch_init): Hook unwind. + * loongarch_unwind.c: New file. + +2023-04-07 Youling Tang <tangyouling@loongson.cn> + + * Makefile.am (loongarch_SRCS): Add loongarch_retval.c. + * loongarch_init.c (loongarch_init): Hook return_value_location. + * loongarch_retval.c: New file. + +2023-04-07 Youling Tang <tangyouling@loongson.cn> + + * Makefile.am (loongarch_SRCS): Add loongarch_cfi.c and loongarch_regs.c. + * loongarch_cfi.c: New file. + * loongarch_regs.c: Likewise. + * loongarch_init.c (loongarch_init): Hook register_info and abi_cfi. + +2023-04-01 Youling Tang <tangyouling@loongson.cn> + + * loongarch_init.c (loongarch_init): Hook check_special_symbol. + * loongarch_symbol.c (loongarch_check_special_symbol): New function. + +2023-04-01 Youling Tang <tangyouling@loongson.cn> + + * loongarch_reloc.def: Add RELOC_TYPE B16 to RELAX. + 2023-02-07 Mark Wielaard <mark@klomp.org> * libebl_CPU.h (dwarf_peeled_die_type): Explicitly handle diff --git a/backends/Makefile.am b/backends/Makefile.am index f373e5fb..bbb2aac7 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am @@ -96,7 +96,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ csky_regs.c csky_initreg.c csky_corenote.c -loongarch_SRCS = loongarch_init.c loongarch_symbol.c +loongarch_SRCS = loongarch_init.c loongarch_symbol.c loongarch_cfi.c \ + loongarch_regs.c loongarch_retval.c loongarch_initreg.c \ + loongarch_unwind.c loongarch_corenote.c arc_SRCS = arc_init.c arc_symbol.c diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h index 3b2cc3e4..d138f5f7 100644 --- a/backends/libebl_CPU.h +++ b/backends/libebl_CPU.h @@ -66,13 +66,13 @@ dwarf_peeled_die_type (Dwarf_Die *die, Dwarf_Die *result) /* The function has no return value, like a `void' function in C. */ return 0; - if (dwarf_formref_die (attr, result) == NULL) + if (result == NULL) return -1; - if (dwarf_peel_type (result, result) != 0) + if (dwarf_formref_die (attr, result) == NULL) return -1; - if (result == NULL) + if (dwarf_peel_type (result, result) != 0) return -1; int tag = dwarf_tag (result); diff --git a/backends/loongarch_cfi.c b/backends/loongarch_cfi.c new file mode 100644 index 00000000..5f3cd2c7 --- /dev/null +++ b/backends/loongarch_cfi.c @@ -0,0 +1,83 @@ +/* LoongArch ABI-specified defaults for DWARF CFI. + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limted. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <dwarf.h> + +#define BACKEND loongarch_ +#include "libebl_CPU.h" + +/* LoongArch ELF ABI specification: +https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_register_convention +*/ +int +loongarch_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) +{ + static const uint8_t abi_cfi[] = + { + /* The initial Canonical Frame Address is the value of the + Stack Pointer ($r3) as setup in the previous frame. */ + DW_CFA_def_cfa, ULEB128_7 (3), ULEB128_7 (0), + + /* The Stack Pointer ($r3) is restored from CFA address by default. */ + DW_CFA_val_offset, ULEB128_7 (3), ULEB128_7 (0), + +#define SV(n) DW_CFA_same_value, ULEB128_7 (n) + /* The return address register contains the return address setup by + caller. */ + SV (1), + + /* Callee-saved registers $s0-$s7. */ + SV (23), SV (24), SV (25), SV (26), SV (27), SV (28), + SV (29), SV (30), SV (31), + + /* The Frame Pointer ($fp, $r22) */ + SV(22), + + /* Callee-saved registers $fs0-$fs7. */ + SV (56), SV (57), SV (58), SV (59), SV (60), SV (61), + SV (62), SV (63), +#undef SV + + /* XXX Note: registers intentionally unused by the program, + for example as a consequence of the procedure call standard + should be initialized as if by DW_CFA_same_value. */ + }; + + abi_info->initial_instructions = abi_cfi; + abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; + abi_info->data_alignment_factor = -4; + + abi_info->return_address_register = 1; /* ra. */ + + return 0; +} diff --git a/backends/loongarch_corenote.c b/backends/loongarch_corenote.c new file mode 100644 index 00000000..b549edc0 --- /dev/null +++ b/backends/loongarch_corenote.c @@ -0,0 +1,114 @@ +/* LoongArch specific core note handling. + Copyright (C) 2023 Loongson Technology Corporation Limited. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <elf.h> +#include <inttypes.h> +#include <stddef.h> +#include <stdio.h> +#include <sys/time.h> + +#define BACKEND loongarch_ +#include "libebl_CPU.h" + +#define ULONG uint64_t +#define PID_T int32_t +#define UID_T uint32_t +#define GID_T uint32_t +#define ALIGN_ULONG 8 +#define ALIGN_PID_T 4 +#define ALIGN_UID_T 4 +#define ALIGN_GID_T 4 +#define TYPE_ULONG ELF_T_XWORD +#define TYPE_PID_T ELF_T_SWORD +#define TYPE_UID_T ELF_T_WORD +#define TYPE_GID_T ELF_T_WORD + +#define PRSTATUS_REGS_SIZE (45 * 8) + +static const Ebl_Register_Location prstatus_regs[] = + { + { .offset = 0, .regno = 0, .count = 32, .bits = 64 }, /* r0..r31 */ + }; + +#define PRSTATUS_REGSET_ITEMS \ + { \ + .name = "orig_a0", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 32 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_era", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 33 * 8), \ + .group = "register", \ + .pc_register = true \ + }, \ + { \ + .name = "csr_badvaddr", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 34 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_crmd", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 35 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_prmd", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 36 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_euen", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 37 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_ecfg", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 38 * 8), \ + .group = "register" \ + }, \ + { \ + .name = "csr_estat", .type = ELF_T_XWORD, .format = 'x', \ + .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \ + + 39 * 8), \ + .group = "register" \ + } + /* 40 ~ 44 reserved */ + +#include "linux-core-note.c" diff --git a/backends/loongarch_init.c b/backends/loongarch_init.c index a8ed9e81..2f0d46c9 100644 --- a/backends/loongarch_init.c +++ b/backends/loongarch_init.c @@ -1,5 +1,7 @@ /* Initialization of LoongArch specific backend library. Copyright (C) 2022 Hengqi Chen + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limted. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -45,6 +47,16 @@ loongarch_init (Elf *elf __attribute__ ((unused)), { loongarch_init_reloc (eh); HOOK (eh, reloc_simple_type); + HOOK (eh, machine_flag_check); + HOOK (eh, register_info); + HOOK (eh, core_note); + HOOK (eh, abi_cfi); + /* gcc/config/ #define DWARF_FRAME_REGISTERS. */ + eh->frame_nregs = 74; + HOOK (eh, check_special_symbol); + HOOK (eh, set_initial_registers_tid); + HOOK (eh, return_value_location); + HOOK (eh, unwind); return eh; } diff --git a/backends/loongarch_initreg.c b/backends/loongarch_initreg.c new file mode 100644 index 00000000..74cb62f5 --- /dev/null +++ b/backends/loongarch_initreg.c @@ -0,0 +1,88 @@ +/* Fetch live process registers from TID. + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limted. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "system.h" +#include <assert.h> +#if defined __loongarch__ && defined __linux__ +# include <sys/uio.h> +# include <sys/procfs.h> +# include <sys/ptrace.h> +#endif + +#define BACKEND loongarch_ +#include "libebl_CPU.h" + +bool +loongarch_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + ebl_tid_registers_t *setfunc __attribute__ ((unused)), + void *arg __attribute__ ((unused))) +{ +#if !defined __loongarch__ || !defined __linux__ + return false; +#else /* __loongarch__ */ + + /* General registers. */ + struct user_regs_struct gregs; + struct iovec iovec; + iovec.iov_base = &gregs; + iovec.iov_len = sizeof (gregs); + if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iovec) != 0) + return false; + + /* $r0 is constant 0. */ + Dwarf_Word zero = 0; + if (! setfunc (0, 1, &zero, arg)) + return false; + + /* $r1-$r31. */ + if (! setfunc (1, 32, (Dwarf_Word *) &gregs.regs[1], arg)) + return false; + + /* PC. */ + if (! setfunc (-1, 1, (Dwarf_Word *) &gregs.csr_era, arg)) + return false; + + /* Floating-point registers (only 64bits are used). */ + struct user_fp_struct fregs; + iovec.iov_base = &fregs; + iovec.iov_len = sizeof (fregs); + if (ptrace (PTRACE_GETREGSET, tid, NT_FPREGSET, &iovec) != 0) + return false; + + /* $f0-$f31 */ + if (! setfunc (32, 32, (Dwarf_Word *) &fregs.fpr[0], arg)) + return false; + + return true; +#endif /* __loongarch__ */ +} diff --git a/backends/loongarch_regs.c b/backends/loongarch_regs.c new file mode 100644 index 00000000..4a4b2052 --- /dev/null +++ b/backends/loongarch_regs.c @@ -0,0 +1,141 @@ +/* Register names and numbers for LoongArch DWARF. + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limted. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <string.h> +#include <dwarf.h> + +#define BACKEND loongarch_ +#include "libebl_CPU.h" + +ssize_t +loongarch_register_info (Ebl *ebl, int regno, char *name, size_t namelen, + const char **prefix, const char **setname, + int *bits, int *type) +{ + if (name == NULL) + return 64; + + *prefix = ""; + + if (regno < 32) + { + *setname = "integer"; + *type = DW_ATE_signed; + *bits = ebl->class == ELFCLASS64 ? 64 : 32; + } + else + { + *setname = "FPU"; + *type = DW_ATE_float; + *bits = 64; + } + + switch (regno) + { + case 0: + return stpcpy (name, "zero") + 1 - name; + + case 1: + *type = DW_ATE_address; + return stpcpy (name, "ra") + 1 - name; + + case 2: + *type = DW_ATE_address; + return stpcpy (name, "tp") + 1 - name; + + case 3: + *type = DW_ATE_address; + return stpcpy (name, "sp") + 1 - name; + + case 4 ... 11: + name[0] = 'a'; + name[1] = regno - 4 + '0'; + namelen = 2; + break; + + case 12 ... 20: + name[0] = 't'; + name[1] = regno - 12 + '0'; + namelen = 2; + break; + + case 21: + return stpcpy (name, "u0") + 1 - name; + + case 22: + *type = DW_ATE_address; + return stpcpy (name, "fp") + 1 - name; + + case 23 ... 31: + name[0] = 's'; + name[1] = regno - 23 + '0'; + namelen = 2; + break; + + case 32 ... 39: + name[0] = 'f'; + name[1] = 'a'; + name[2] = regno - 32 + '0'; + namelen = 3; + break; + + case 40 ... 49: + name[0] = 'f'; + name[1] = 't'; + name[2] = regno - 40 + '0'; + namelen = 3; + break; + + case 50 ... 55: + name[0] = 'f'; + name[1] = 't'; + name[2] = '1'; + name[3] = regno - 50 + '0'; + namelen = 4; + break; + + case 56 ... 63: + name[0] = 'f'; + name[1] = 's'; + name[2] = regno - 56 + '0'; + namelen = 3; + break; + + default: + *setname = NULL; + return 0; + } + + name[namelen++] = '\0'; + return namelen; +} diff --git a/backends/loongarch_reloc.def b/backends/loongarch_reloc.def index dd4a6b6d..a39eefd9 100644 --- a/backends/loongarch_reloc.def +++ b/backends/loongarch_reloc.def @@ -79,3 +79,52 @@ RELOC_TYPE (SUB32, REL) RELOC_TYPE (SUB64, REL) RELOC_TYPE (GNU_VTINHERIT, REL) RELOC_TYPE (GNU_VTENTRY, REL) + +/* reserved 59-63 */ + +RELOC_TYPE (B16, REL) +RELOC_TYPE (B21, REL) +RELOC_TYPE (B26, REL) +RELOC_TYPE (ABS_HI20, REL) +RELOC_TYPE (ABS_LO12, REL) +RELOC_TYPE (ABS64_LO20, REL) +RELOC_TYPE (ABS64_HI12, REL) +RELOC_TYPE (PCALA_HI20, REL) +RELOC_TYPE (PCALA_LO12, REL) +RELOC_TYPE (PCALA64_LO20, REL) +RELOC_TYPE (PCALA64_HI12, REL) +RELOC_TYPE (GOT_PC_HI20, REL) +RELOC_TYPE (GOT_PC_LO12, REL) +RELOC_TYPE (GOT64_PC_LO20, REL) +RELOC_TYPE (GOT64_PC_HI12, REL) +RELOC_TYPE (GOT_HI20, REL) +RELOC_TYPE (GOT_LO12, REL) +RELOC_TYPE (GOT64_LO20, REL) +RELOC_TYPE (GOT64_HI12, REL) +RELOC_TYPE (TLS_LE_HI20, REL) +RELOC_TYPE (TLS_LE_LO12, REL) +RELOC_TYPE (TLS_LE64_LO20, REL) +RELOC_TYPE (TLS_LE64_HI12, REL) +RELOC_TYPE (TLS_IE_PC_HI20, REL) +RELOC_TYPE (TLS_IE_PC_LO12, REL) +RELOC_TYPE (TLS_IE64_PC_LO20, REL) +RELOC_TYPE (TLS_IE64_PC_HI12, REL) +RELOC_TYPE (TLS_IE_HI20, REL) +RELOC_TYPE (TLS_IE_LO12, REL) +RELOC_TYPE (TLS_IE64_LO20, REL) +RELOC_TYPE (TLS_IE64_HI12, REL) +RELOC_TYPE (TLS_LD_PC_HI20, REL) +RELOC_TYPE (TLS_LD_HI20, REL) +RELOC_TYPE (TLS_GD_PC_HI20, REL) +RELOC_TYPE (TLS_GD_HI20, REL) +RELOC_TYPE (32_PCREL, REL) +RELOC_TYPE (RELAX, REL) +RELOC_TYPE (DELETE, REL) +RELOC_TYPE (ALIGN, REL) +RELOC_TYPE (PCREL20_S2, REL) +RELOC_TYPE (CFA, REL) +RELOC_TYPE (ADD6, REL) +RELOC_TYPE (SUB6, REL) +RELOC_TYPE (ADD_ULEB128, REL) +RELOC_TYPE (SUB_ULEB128, REL) +RELOC_TYPE (64_PCREL, REL) diff --git a/backends/loongarch_retval.c b/backends/loongarch_retval.c new file mode 100644 index 00000000..23b33ed5 --- /dev/null +++ b/backends/loongarch_retval.c @@ -0,0 +1,202 @@ +/* Function return value location for Linux/LoongArch ABI. + Copyright (C) 2013 Red Hat, Inc. + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limited. + + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdio.h> +#include <inttypes.h> + +#include <assert.h> +#include <dwarf.h> + +#define BACKEND loongarch_ +#include "libebl_CPU.h" + +static int +dwarf_bytesize_aux (Dwarf_Die *die, Dwarf_Word *sizep) +{ + int bits; + if (((bits = 8 * dwarf_bytesize (die)) < 0 + && (bits = dwarf_bitsize (die)) < 0) + || bits % 8 != 0) + return -1; + + *sizep = bits / 8; + return 0; +} + +static int +pass_in_gpr (const Dwarf_Op **locp, Dwarf_Word size) +{ + static const Dwarf_Op loc[] = + { + { .atom = DW_OP_reg4 }, { .atom = DW_OP_piece, .number = 8 }, + { .atom = DW_OP_reg5 }, { .atom = DW_OP_piece, .number = 8 } + }; + + *locp = loc; + return size <= 8 ? 1 : 4; +} + +static int +pass_by_ref (const Dwarf_Op **locp) +{ + static const Dwarf_Op loc[] = { { .atom = DW_OP_breg4 } }; + + *locp = loc; + return 1; +} + +static int +pass_in_fpr (const Dwarf_Op **locp, Dwarf_Word size) +{ + static const Dwarf_Op loc[] = + { + { .atom = DW_OP_regx, .number = 32 }, + { .atom = DW_OP_piece, .number = 8 }, + { .atom = DW_OP_regx, .number = 33 }, + { .atom = DW_OP_piece, .number = 8 } + }; + + *locp = loc; + return size <= 8 ? 1 : 4; +} + +int +loongarch_return_value_location(Dwarf_Die *functypedie, + const Dwarf_Op **locp) +{ + /* Start with the function's type, and get the DW_AT_type attribute, + which is the type of the return value. */ + Dwarf_Die typedie; + int tag = dwarf_peeled_die_type (functypedie, &typedie); + if (tag <= 0) + return tag; + + Dwarf_Word size = (Dwarf_Word)-1; + + /* If the argument type is a Composite Type that is larger than 16 + bytes, then the argument is copied to memory allocated by the + caller and the argument is replaced by a pointer to the copy. */ + if (tag == DW_TAG_structure_type || tag == DW_TAG_union_type + || tag == DW_TAG_class_type || tag == DW_TAG_array_type) + { + if (dwarf_aggregate_size (&typedie, &size) < 0) + return -1; + + /* Aggregates larger than 2*GRLEN bits are passed by reference. */ + if (size > 16) + return pass_by_ref (locp); + /* Aggregates whose total size is no more than GRLEN bits are passed in + a register. Aggregates whose total size is no more than 2*GRLEN bits + are passed in a pair of registers. */ + else + return pass_in_gpr (locp, size); + } + + if (tag == DW_TAG_base_type || dwarf_is_pointer (tag)) + { + if (dwarf_bytesize_aux (&typedie, &size) < 0) + { + if (dwarf_is_pointer (tag)) + size = 8; + else + return -1; + } + + Dwarf_Attribute attr_mem; + if (tag == DW_TAG_base_type) + { + Dwarf_Word encoding; + if (dwarf_formudata (dwarf_attr_integrate (&typedie, DW_AT_encoding, + &attr_mem), + &encoding) != 0) + return -1; + + switch (encoding) + { + case DW_ATE_boolean: + case DW_ATE_signed: + case DW_ATE_unsigned: + case DW_ATE_unsigned_char: + case DW_ATE_signed_char: + /* Scalars that are at most GRLEN bits wide are passed in a single + argument register. Scalars that are 2*GRLEN bits wide are + passed in a pair of argument registers. Scalars wider than + 2*GRLEN are passed by reference. */ + return pass_in_gpr (locp, size); + + case DW_ATE_float: + /* A real floating-point argument is passed in a floating-point + argument register if it is no more than FLEN bits wide, + otherwise it is passed according to the integer calling + convention. */ + switch (size) + { + case 4: /* single */ + case 8: /* double */ + return pass_in_fpr (locp, size); + + case 16: /* quad */ + return pass_in_gpr (locp, size); + + default: + return -2; + } + + case DW_ATE_complex_float: + /* A complex floating-point number is passed as though it were a + struct containing two floating-point reals. */ + switch (size) + { + case 8: /* float _Complex */ + case 16: /* double _Complex */ + return pass_in_fpr (locp, size); + + case 32: /* long double _Complex */ + return pass_by_ref (locp); + + default: + return -2; + } + } + + return -2; + } + else + return pass_in_gpr (locp, size); + } + + *locp = NULL; + return 0; +} diff --git a/backends/loongarch_symbol.c b/backends/loongarch_symbol.c index 8ba66a09..5ce55bad 100644 --- a/backends/loongarch_symbol.c +++ b/backends/loongarch_symbol.c @@ -72,3 +72,45 @@ loongarch_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, return ELF_T_NUM; } } + +bool +loongarch_machine_flag_check (GElf_Word flags) +{ + return ((flags &~ (EF_LARCH_ABI_MODIFIER_MASK + | EF_LARCH_OBJABI_V1)) == 0); +} + +/* Check whether given symbol's st_value and st_size are OK despite failing + normal checks. */ +bool +loongarch_check_special_symbol (Elf *elf, const GElf_Sym *sym, + const char *name, const GElf_Shdr *destshdr) +{ + if (name != NULL + && strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0) + { + size_t shstrndx; + if (elf_getshdrstrndx (elf, &shstrndx) != 0) + return false; + const char *sname = elf_strptr (elf, shstrndx, destshdr->sh_name); + if (sname != NULL + && (strcmp (sname, ".got") == 0 || strcmp (sname, ".got.plt") == 0)) + { + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr != NULL) + { + sname = elf_strptr (elf, shstrndx, shdr->sh_name); + if (sname != NULL && strcmp (sname, ".got") == 0) + return (sym->st_value >= shdr->sh_addr + && sym->st_value < shdr->sh_addr + shdr->sh_size); + } + } + } + } + + return false; +} diff --git a/backends/loongarch_unwind.c b/backends/loongarch_unwind.c new file mode 100644 index 00000000..fb748083 --- /dev/null +++ b/backends/loongarch_unwind.c @@ -0,0 +1,84 @@ +/* Get previous frame state for an existing frame state. + Copyright (C) 2023 OpenAnolis community LoongArch SIG. + Copyright (C) 2023 Loongson Technology Corporation Limited. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#define BACKEND loongarch_ +#define RA_REG 1 +#define SP_REG 3 +#define FP_REG 22 + +#define RA_OFFSET 8 +#define FP_OFFSET 16 + +#include "libebl_CPU.h" + +/* There was no CFI. Maybe we happen to have a frame pointer and can unwind from that? */ + +bool +EBLHOOK(unwind) (Ebl *ebl __attribute__ ((unused)), Dwarf_Addr pc __attribute__ ((unused)), + ebl_tid_registers_t *setfunc, ebl_tid_registers_get_t *getfunc, + ebl_pid_memory_read_t *readfunc, void *arg, + bool *signal_framep __attribute__ ((unused))) +{ + Dwarf_Word fp, ra, sp; + + if (!getfunc(RA_REG, 1, &ra, arg)) + return false; + + if (ra == 0 || !setfunc(-1, 1, &ra, arg)) + return false; + + if (!getfunc(FP_REG, 1, &fp, arg)) + fp = 0; + + if (!getfunc(SP_REG, 1, &sp, arg)) + sp = 0; + + Dwarf_Word newRa, newFp, newSp; + + if (!readfunc(fp - RA_OFFSET, &newRa, arg)) + newRa = 0; + + if (!readfunc(fp - FP_OFFSET, &newFp, arg)) + newFp = 0; + + newSp = fp; + + // These are not fatal if they don't work. They will just prevent unwinding at the next frame. + setfunc(RA_REG, 1, &newRa, arg); + setfunc(FP_REG, 1, &newFp, arg); + setfunc(SP_REG, 1, &newSp, arg); + + // If the fp is invalid, we might still have a valid ra. + // But if the fp is valid, then the stack should be moving in the right direction. + return fp == 0 || newSp > sp; +} diff --git a/backends/riscv_reloc.def b/backends/riscv_reloc.def index 2bd3513e..f52f6489 100644 --- a/backends/riscv_reloc.def +++ b/backends/riscv_reloc.def @@ -81,3 +81,7 @@ RELOC_TYPE (SET8, REL) RELOC_TYPE (SET16, REL) RELOC_TYPE (SET32, REL) RELOC_TYPE (32_PCREL, REL) +RELOC_TYPE (IRELATIVE, EXEC|DYN) +RELOC_TYPE (PLT32, REL) +RELOC_TYPE (SET_ULEB128, REL) +RELOC_TYPE (SUB_ULEB128, REL) @@ -67,6 +67,9 @@ /* Define to 1 if you have the <err.h> header file. */ #define HAVE_ERR_H 1 +/* Define to 1 if you have the <execinfo.h> header file. */ +#define HAVE_EXECINFO_H 1 + /* Defined if __attribute__((fallthrough)) is supported */ #define HAVE_FALLTHROUGH 1 @@ -149,7 +152,7 @@ #define PACKAGE_NAME "elfutils" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "elfutils 0.189" +#define PACKAGE_STRING "elfutils 0.190" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "elfutils" @@ -158,7 +161,7 @@ #define PACKAGE_URL "http://elfutils.org/" /* Define to the version of this package. */ -#define PACKAGE_VERSION "0.189" +#define PACKAGE_VERSION "0.190" /* The size of `long', as computed by sizeof. */ #define SIZEOF_LONG 8 @@ -195,7 +198,7 @@ #define USE_ZSTD_COMPRESS 1 /* Version number of package */ -#define VERSION "0.189" +#define VERSION "0.190" /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index c82a40c5..67e88cb5 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -233,7 +233,7 @@ fi %files %license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL -%doc README TODO CONTRIBUTING +%doc README TODO CONTRIBUTING SECURITY %{_bindir}/eu-addr2line %{_bindir}/eu-ar %{_bindir}/eu-elfclassify @@ -341,6 +341,22 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Fri Nov 3 2023 Mark Wielaard <mark@klomp.org> 0.190-1 +- CONTRIBUTING: Switch from real name policy to known identity policy. + Updated ChangeLog policy (no more separate ChangeLog files). + There is a SECURITY bug policy now. The default branch is now 'main'. +- libelf: Add RELR support. +- libdw: Recognize .debug_[ct]u_index sections. +- readelf: Support readelf -Ds, --use-dynamic --symbol. + Support .gdb_index version 9 +- scrlines: New tool that compiles a list of source files associated + with a specified dwarf/elf file. +- debuginfod: Schema change (reindexing required, sorry!) for a 60% + compression in filename representation, which was a large + part of the sqlite index; also, more deliberate sqlite + -wal management during scanning using the --scan-checkpoint option. +- backends: Various LoongArch updates. + * Fri Mar 3 2023 Mark Wielaard <mark@klomp.org> 0.189-1 - configure: eu-nm, eu-addr2line and eu-stack can provide demangled symbols when linked with libstdc++. Use --disable-demangler to disable. diff --git a/configure.ac b/configure.ac index 6e881fa0..af5b6bf7 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see <http://www.gnu.org/licenses/>. -AC_INIT([elfutils],[0.189],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) +AC_INIT([elfutils],[0.190],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) dnl Workaround for older autoconf < 2.64 m4_ifndef([AC_PACKAGE_URL], @@ -169,7 +169,7 @@ if test "$use_msan" = yes; then CXXFLAGS="$CXXFLAGS -fsanitize=memory -fsanitize-memory-track-origins -D_FORTIFY_SOURCE=0" LDFLAGS="-shared" AC_LINK_IFELSE([AC_LANG_SOURCE([int main (int argc, char **argv) { return 0; }])], use_msan=yes, use_msan=no) - AS_IF([test "x$use_msan" == xyes], + AS_IF([test "x$use_msan" = xyes], ac_cv_zdefs=no NO_UNDEFINED=, AC_MSG_WARN([clang memory sanitizer not available]) CFLAGS="$old_CFLAGS" CXXFLAGS="$old_CXXFLAGS") @@ -493,7 +493,7 @@ AC_ARG_ENABLE([demangler], AS_HELP_STRING([--disable-demangler], [Disable libstdc++ demangle support]), [], [enable_demangler=yes]) -AS_IF([test "x$enable_demangler" == xyes], +AS_IF([test "x$enable_demangler" = xyes], AC_CHECK_LIB([stdc++], [__cxa_demangle], [dnl AC_DEFINE([USE_DEMANGLE], [1], [Defined if demangling is enabled])]) AM_CONDITIONAL(DEMANGLE, test "x$ac_cv_lib_stdcpp___cxa_demangle" = "xyes") @@ -839,6 +839,7 @@ AS_IF([test "x$enable_libdebuginfod" = "xdummy"], [AC_DEFINE([DUMMY_LIBDEBUGINFOD], [1], [Build dummy libdebuginfod])]) AM_CONDITIONAL([LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xyes" || test "x$enable_libdebuginfod" = "xdummy"]) AM_CONDITIONAL([DUMMY_LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xdummy"]) +AC_CHECK_HEADERS([execinfo.h]) # Look for libmicrohttpd, libarchive, sqlite for debuginfo server # minimum versions as per rhel7. diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index f861eb72..0e4810bb 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,44 @@ +2023-04-21 Frank Ch. Eigler <fche@redhat.com> + + * debuginfod.cxx (groom): Fix -r / -X logic. + +2023-04-13 Frank Ch. Eigler <fche@redhat.com> + + * debuginfod.cxx (archive_classify, scan_archive_file): Catch and + propagate exceptions during archive scans. + +2023-03-30 Jan Alexander Steffens (heftig) <heftig@archlinux.org> + + * debuginfod-client.c (update_atime): New function. + (extract_section, debuginfod_query_server): Call it. + +2023-03-30 Jan Alexander Steffens (heftig) <heftig@archlinux.org> + + * debuginfod-client.c (debuginfod_query_server): Don't modify + atime unintentionally. + * debuginfod.cxx (extract_section, handle_buildid_r_match): Ditto. + +2023-03-30 Aaron Merey <amerey@redhat.com> + + * debuginfod-client.c (debuginfod_query_server): Avoid sscanf on + mixed-case component of string. + +2023-03-29 Jan Alexander Steffens (heftig) <heftig@archlinux.org> + + * debuginfod-client.c (debuginfod_query_server): s/futimes/futimens/ + * debuginfod.cxx (extract_section, handle_buildid_r_match): Ditto. + +2023-03-29 lilydjwg <lilydjwg@gmail.com> + + * debuginfod-client.c (debuginfod_query_server): Handle dl_size in + progress to account for possible curl 8.0.1 changes to + CURLINFO_CONTENT_LENGTH_DOWNLOAD*. + +2023-03-17 Aaron Merey <amerey@redhat.com> + + * debuginfod-client.c (debuginfod_query_server): Do not create an + empty file in the cache if the query was cancelled by the progressfn. + 2023-02-07 Aaron Merey <amerey@redhat.com> * debuginfod-client.c (cache_find_section): Avoid returning -ENOENT diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index ef4d47e3..dcf05031 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -248,7 +248,7 @@ debuginfod_write_callback (char *ptr, size_t size, size_t nmemb, void *data) /* handle config file read and write */ static int -debuginfod_config_cache(char *config_path, +debuginfod_config_cache(debuginfod_client *c, char *config_path, long cache_config_default_s, struct stat *st) { @@ -277,17 +277,27 @@ debuginfod_config_cache(char *config_path, } long cache_config; + /* PR29696 - NB: When using fdopen, the file descriptor is NOT + dup'ed and will be closed when the stream is closed. Manually + closing fd after fclose is called will lead to a race condition + where, if reused, the file descriptor will compete for its + regular use before being incorrectly closed here. */ FILE *config_file = fdopen(fd, "r"); if (config_file) { if (fscanf(config_file, "%ld", &cache_config) != 1) - cache_config = cache_config_default_s; - fclose(config_file); + cache_config = cache_config_default_s; + if (0 != fclose (config_file) && c->verbose_fd >= 0) + dprintf (c->verbose_fd, "fclose failed with %s (err=%d)\n", + strerror (errno), errno); } else - cache_config = cache_config_default_s; - - close (fd); + { + cache_config = cache_config_default_s; + if (0 != close (fd) && c->verbose_fd >= 0) + dprintf (c->verbose_fd, "close failed with %s (err=%d)\n", + strerror (errno), errno); + } return cache_config; } @@ -303,7 +313,7 @@ debuginfod_clean_cache(debuginfod_client *c, struct stat st; /* Create new interval file. */ - rc = debuginfod_config_cache(interval_path, + rc = debuginfod_config_cache(c, interval_path, cache_clean_default_interval_s, &st); if (rc < 0) return rc; @@ -320,7 +330,7 @@ debuginfod_clean_cache(debuginfod_client *c, utime (interval_path, NULL); /* Read max unused age value from config file. */ - rc = debuginfod_config_cache(max_unused_path, + rc = debuginfod_config_cache(c, max_unused_path, cache_default_max_unused_age_s, &st); if (rc < 0) return rc; @@ -558,7 +568,9 @@ header_callback (char * buffer, size_t size, size_t numitems, void * userdata) struct handle_data *data = (struct handle_data *) userdata; if (size != 1) return 0; - if (data->client && data->client->verbose_fd >= 0) + if (data->client + && data->client->verbose_fd >= 0 + && numitems > 2) dprintf (data->client->verbose_fd, "header %.*s", (int)numitems, buffer); // Some basic checks to ensure the headers received are of the expected format if (strncasecmp(buffer, "X-DEBUGINFOD", 11) @@ -618,6 +630,19 @@ path_escape (const char *src, char *dest) dest[q] = '\0'; } +/* Attempt to update the atime */ +static void +update_atime (int fd) +{ + struct timespec tvs[2]; + + tvs[0].tv_sec = tvs[1].tv_sec = 0; + tvs[0].tv_nsec = UTIME_NOW; + tvs[1].tv_nsec = UTIME_OMIT; + + (void) futimens (fd, tvs); /* best effort */ +} + /* Attempt to read an ELF/DWARF section with name SECTION from FD and write it to a separate file in the debuginfod cache. If successful the absolute path of the separate file containing SECTION will be stored in USR_PATH. @@ -761,6 +786,7 @@ extract_section (int fd, const char *section, char *fd_path, char **usr_path) *usr_path = sec_path; else free (sec_path); + update_atime(fd); rc = sec_fd; goto out2; } @@ -1098,6 +1124,7 @@ debuginfod_query_server (debuginfod_client *c, } } /* Success!!!! */ + update_atime(fd); rc = fd; goto out; } @@ -1110,7 +1137,7 @@ debuginfod_query_server (debuginfod_client *c, close(fd); /* no need to hold onto the negative-hit file descriptor */ - rc = debuginfod_config_cache(cache_miss_path, + rc = debuginfod_config_cache(c, cache_miss_path, cache_miss_default_s, &st); if (rc < 0) goto out; @@ -1467,7 +1494,7 @@ debuginfod_query_server (debuginfod_client *c, goto out2; } - long dl_size = 0; + long dl_size = -1; if (target_handle && (c->progressfn || maxsize > 0)) { /* Get size of file being downloaded. NB: If going through @@ -1486,7 +1513,7 @@ debuginfod_query_server (debuginfod_client *c, curl_res = curl_easy_getinfo(target_handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl); - if (curl_res == CURLE_OK) + if (curl_res == CURLE_OK && cl >= 0) dl_size = (cl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)cl); #endif /* If Content-Length is -1, try to get the size from @@ -1495,9 +1522,9 @@ debuginfod_query_server (debuginfod_client *c, { long xdl; char *hdr = strcasestr(c->winning_headers, "x-debuginfod-size"); + size_t off = strlen("x-debuginfod-size:"); - if (hdr != NULL - && sscanf(hdr, "x-debuginfod-size: %ld", &xdl) == 1) + if (hdr != NULL && sscanf(hdr + off, "%ld", &xdl) == 1) dl_size = xdl; } } @@ -1508,26 +1535,40 @@ debuginfod_query_server (debuginfod_client *c, long pa = loops; /* default param for progress callback */ if (target_handle) /* we've committed to a server; report its download progress */ { - CURLcode curl_res; + /* PR30809: Check actual size of cached file. This same + fd is shared by all the multi-curl handles (but only + one will end up writing to it). Another way could be + to tabulate totals in debuginfod_write_callback(). */ + struct stat cached; + int statrc = fstat(fd, &cached); + if (statrc == 0) + pa = (long) cached.st_size; + else + { + /* Otherwise, query libcurl for its tabulated total. + However, that counts http body length, not + decoded/decompressed content length, so does not + measure quite the same thing as dl. */ + CURLcode curl_res; #if CURL_AT_LEAST_VERSION(7, 55, 0) - curl_off_t dl; - curl_res = curl_easy_getinfo(target_handle, - CURLINFO_SIZE_DOWNLOAD_T, - &dl); - if (curl_res == 0 && dl >= 0) - pa = (dl > LONG_MAX ? LONG_MAX : (long)dl); + curl_off_t dl; + curl_res = curl_easy_getinfo(target_handle, + CURLINFO_SIZE_DOWNLOAD_T, + &dl); + if (curl_res == 0 && dl >= 0) + pa = (dl > LONG_MAX ? LONG_MAX : (long)dl); #else - double dl; - curl_res = curl_easy_getinfo(target_handle, - CURLINFO_SIZE_DOWNLOAD, - &dl); - if (curl_res == 0) - pa = (dl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)dl); + double dl; + curl_res = curl_easy_getinfo(target_handle, + CURLINFO_SIZE_DOWNLOAD, + &dl); + if (curl_res == 0) + pa = (dl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)dl); #endif - + } } - if ((*c->progressfn) (c, pa, dl_size)) + if ((*c->progressfn) (c, pa, dl_size == -1 ? 0 : dl_size)) { c->progressfn_cancel = true; break; @@ -1667,9 +1708,9 @@ debuginfod_query_server (debuginfod_client *c, } } while (num_msg > 0); - /* Create an empty file named as $HOME/.cache if the query fails - with ENOENT.*/ - if (rc == -ENOENT) + /* Create an empty file in the cache if the query fails with ENOENT and + it wasn't cancelled early. */ + if (rc == -ENOENT && !c->progressfn_cancel) { int efd = open (target_cache_path, O_CREAT|O_EXCL, DEFFILEMODE); if (efd >= 0) @@ -1718,13 +1759,15 @@ debuginfod_query_server (debuginfod_client *c, #else CURLcode curl_res = curl_easy_getinfo(verified_handle, CURLINFO_FILETIME, (void*) &mtime); #endif - if (curl_res != CURLE_OK) - mtime = time(NULL); /* fall back to current time */ - - struct timeval tvs[2]; - tvs[0].tv_sec = tvs[1].tv_sec = mtime; - tvs[0].tv_usec = tvs[1].tv_usec = 0; - (void) futimes (fd, tvs); /* best effort */ + if (curl_res == CURLE_OK) + { + struct timespec tvs[2]; + tvs[0].tv_sec = 0; + tvs[0].tv_nsec = UTIME_OMIT; + tvs[1].tv_sec = mtime; + tvs[1].tv_nsec = 0; + (void) futimens (fd, tvs); /* best effort */ + } /* PR27571: make cache files casually unwriteable; dirs are already 0700 */ (void) fchmod(fd, 0400); diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 99b1f2b9..c11aeda1 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -44,6 +44,12 @@ extern "C" { } #endif +#ifdef HAVE_EXECINFO_H +extern "C" { +#include <execinfo.h> +} +#endif + extern "C" { #include "printversion.h" #include "system.h" @@ -85,6 +91,7 @@ extern "C" { #include <cstring> #include <vector> #include <set> +#include <unordered_set> #include <map> #include <string> #include <iostream> @@ -94,6 +101,7 @@ extern "C" { #include <mutex> #include <deque> #include <condition_variable> +#include <exception> #include <thread> // #include <regex> // on rhel7 gcc 4.8, not competent #include <regex.h> @@ -138,7 +146,7 @@ string_endswith(const string& haystack, const string& needle) // Roll this identifier for every sqlite schema incompatibility. -#define BUILDIDS "buildids9" +#define BUILDIDS "buildids10" #if SQLITE_VERSION_NUMBER >= 3008000 #define WITHOUT_ROWID "without rowid" @@ -157,10 +165,23 @@ static const char DEBUGINFOD_SQLITE_DDL[] = // NB: all these are overridable with -D option // Normalization table for interning file names - "create table if not exists " BUILDIDS "_files (\n" + "create table if not exists " BUILDIDS "_fileparts (\n" " id integer primary key not null,\n" " name text unique not null\n" " );\n" + "create table if not exists " BUILDIDS "_files (\n" + " id integer primary key not null,\n" + " dirname integer not null,\n" + " basename integer not null,\n" + " unique (dirname, basename),\n" + " foreign key (dirname) references " BUILDIDS "_fileparts(id) on delete cascade,\n" + " foreign key (basename) references " BUILDIDS "_fileparts(id) on delete cascade\n" + " );\n" + "create view if not exists " BUILDIDS "_files_v as\n" // a + " select f.id, n1.name || '/' || n2.name as name\n" + " from " BUILDIDS "_files f, " BUILDIDS "_fileparts n1, " BUILDIDS "_fileparts n2\n" + " where f.dirname = n1.id and f.basename = n2.id;\n" + // Normalization table for interning buildids "create table if not exists " BUILDIDS "_buildids (\n" " id integer primary key not null,\n" @@ -230,33 +251,33 @@ static const char DEBUGINFOD_SQLITE_DDL[] = "create view if not exists " BUILDIDS "_query_d as \n" "select\n" " b.hex as buildid, n.mtime, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_f_de n\n" + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_f_de n\n" " where b.id = n.buildid and f0.id = n.file and n.debuginfo_p = 1\n" "union all select\n" " b.hex as buildid, n.mtime, 'R' as sourcetype, f0.name as source0, n.mtime as mtime, f1.name as source1\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_r_de n\n" + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_r_de n\n" " where b.id = n.buildid and f0.id = n.file and f1.id = n.content and n.debuginfo_p = 1\n" ";" // ... and for E queries "create view if not exists " BUILDIDS "_query_e as \n" "select\n" " b.hex as buildid, n.mtime, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_f_de n\n" + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_f_de n\n" " where b.id = n.buildid and f0.id = n.file and n.executable_p = 1\n" "union all select\n" " b.hex as buildid, n.mtime, 'R' as sourcetype, f0.name as source0, n.mtime as mtime, f1.name as source1\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_r_de n\n" + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_r_de n\n" " where b.id = n.buildid and f0.id = n.file and f1.id = n.content and n.executable_p = 1\n" ";" // ... and for S queries "create view if not exists " BUILDIDS "_query_s as \n" "select\n" " b.hex as buildid, fs.name as artifactsrc, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1, null as source0ref\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files fs, " BUILDIDS "_f_s n\n" + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v fs, " BUILDIDS "_f_s n\n" " where b.id = n.buildid and f0.id = n.file and fs.id = n.artifactsrc\n" "union all select\n" " b.hex as buildid, f1.name as artifactsrc, 'R' as sourcetype, f0.name as source0, sd.mtime as mtime, f1.name as source1, fsref.name as source0ref\n" - " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_files fsref, " + " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_files_v fsref, " " " BUILDIDS "_r_sdef sd, " BUILDIDS "_r_sref sr, " BUILDIDS "_r_de sde\n" " where b.id = sr.buildid and f0.id = sd.file and fsref.id = sde.file and f1.id = sd.content\n" " and sr.artifactsrc = sd.content and sde.buildid = sr.buildid\n" @@ -271,6 +292,7 @@ static const char DEBUGINFOD_SQLITE_DDL[] = "union all select 'archive sdef',count(*) from " BUILDIDS "_r_sdef\n" "union all select 'buildids',count(*) from " BUILDIDS "_buildids\n" "union all select 'filenames',count(*) from " BUILDIDS "_files\n" + "union all select 'fileparts',count(*) from " BUILDIDS "_fileparts\n" "union all select 'files scanned (#)',count(*) from " BUILDIDS "_file_mtime_scanned\n" "union all select 'files scanned (mb)',coalesce(sum(size)/1024/1024,0) from " BUILDIDS "_file_mtime_scanned\n" #if SQLITE_VERSION_NUMBER >= 3016000 @@ -281,10 +303,26 @@ static const char DEBUGINFOD_SQLITE_DDL[] = // schema change history & garbage collection // // XXX: we could have migration queries here to bring prior-schema -// data over instead of just dropping it. +// data over instead of just dropping it. But that could incur +// doubled storage costs. // -// buildids9: widen the mtime_scanned table +// buildids10: split the _files table into _parts "" // <<< we are here +// buildids9: widen the mtime_scanned table + "DROP VIEW IF EXISTS buildids9_stats;\n" + "DROP INDEX IF EXISTS buildids9_r_de_idx;\n" + "DROP INDEX IF EXISTS buildids9_f_de_idx;\n" + "DROP VIEW IF EXISTS buildids9_query_s;\n" + "DROP VIEW IF EXISTS buildids9_query_e;\n" + "DROP VIEW IF EXISTS buildids9_query_d;\n" + "DROP TABLE IF EXISTS buildids9_r_sdef;\n" + "DROP TABLE IF EXISTS buildids9_r_sref;\n" + "DROP TABLE IF EXISTS buildids9_r_de;\n" + "DROP TABLE IF EXISTS buildids9_f_s;\n" + "DROP TABLE IF EXISTS buildids9_f_de;\n" + "DROP TABLE IF EXISTS buildids9_file_mtime_scanned;\n" + "DROP TABLE IF EXISTS buildids9_buildids;\n" + "DROP TABLE IF EXISTS buildids9_files;\n" // buildids8: slim the sref table "drop table if exists buildids8_f_de;\n" "drop table if exists buildids8_f_s;\n" @@ -398,6 +436,8 @@ static const struct argp_option options[] = { "passive", ARGP_KEY_PASSIVE, NULL, 0, "Do not scan or groom, read-only database.", 0 }, #define ARGP_KEY_DISABLE_SOURCE_SCAN 0x1009 { "disable-source-scan", ARGP_KEY_DISABLE_SOURCE_SCAN, NULL, 0, "Do not scan dwarf source info.", 0 }, +#define ARGP_SCAN_CHECKPOINT 0x100A + { "scan-checkpoint", ARGP_SCAN_CHECKPOINT, "NUM", 0, "Number of files scanned before a WAL checkpoint.", 0 }, { NULL, 0, NULL, 0, NULL, 0 }, }; @@ -452,6 +492,7 @@ static unsigned forwarded_ttl_limit = 8; static bool scan_source_info = true; static string tmpdir; static bool passive_p = false; +static long scan_checkpoint = 256; static void set_metric(const string& key, double value); // static void inc_metric(const string& key); @@ -653,6 +694,11 @@ parse_opt (int key, char *arg, case ARGP_KEY_DISABLE_SOURCE_SCAN: scan_source_info = false; break; + case ARGP_SCAN_CHECKPOINT: + scan_checkpoint = atol (arg); + if (scan_checkpoint < 0) + argp_failure(state, 1, EINVAL, "scan checkpoint"); + break; // case 'h': argp_state_help (state, stderr, ARGP_HELP_LONG|ARGP_HELP_EXIT_OK); default: return ARGP_ERR_UNKNOWN; } @@ -736,7 +782,7 @@ struct elfutils_exception: public reportable_exception template <typename Payload> class workq { - set<Payload> q; // eliminate duplicates + unordered_set<Payload> q; // eliminate duplicates mutex mtx; condition_variable cv; bool dead; @@ -825,6 +871,24 @@ inline bool operator< (const scan_payload& a, const scan_payload& b) { return a.first < b.first; // don't bother compare the stat fields } + +namespace std { // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 + template<> struct hash<::scan_payload> + { + std::size_t operator() (const ::scan_payload& p) const noexcept + { + return hash<string>()(p.first); + } + }; + template<> struct equal_to<::scan_payload> + { + std::size_t operator() (const ::scan_payload& a, const ::scan_payload& b) const noexcept + { + return a.first == b.first; + } + }; +} + static workq<scan_payload> scanq; // just a single one // producer & idler: thread_main_fts_source_paths() // consumer: thread_main_scanner() @@ -882,6 +946,72 @@ public: //////////////////////////////////////////////////////////////////////// +// periodic_barrier is a concurrency control object that lets N threads +// periodically (based on counter value) agree to wait at a barrier, +// let one of them carry out some work, then be set free + +class periodic_barrier +{ +private: + unsigned period; // number of count() reports to trigger barrier activation + unsigned threads; // number of threads participating + mutex mtx; // protects all the following fields + unsigned counter; // count of count() reports in the current generation + unsigned generation; // barrier activation generation + unsigned waiting; // number of threads waiting for barrier + bool dead; // bring out your + condition_variable cv; +public: + periodic_barrier(unsigned t, unsigned p): + period(p), threads(t), counter(0), generation(0), waiting(0), dead(false) { } + virtual ~periodic_barrier() {} + + virtual void periodic_barrier_work() noexcept = 0; + void nuke() { + unique_lock<mutex> lock(mtx); + dead = true; + cv.notify_all(); + } + + void count() + { + unique_lock<mutex> lock(mtx); + unsigned prev_generation = this->generation; + if (counter < period-1) // normal case: counter just freely running + { + counter ++; + return; + } + else if (counter == period-1) // we're the doer + { + counter = period; // entering barrier holding phase + cv.notify_all(); + while (waiting < threads-1 && !dead) + cv.wait(lock); + // all other threads are now stuck in the barrier + this->periodic_barrier_work(); // NB: we're holding the mutex the whole time + // reset for next barrier, releasing other waiters + counter = 0; + generation ++; + cv.notify_all(); + return; + } + else if (counter == period) // we're a waiter, in holding phase + { + waiting ++; + cv.notify_all(); + while (counter == period && generation == prev_generation && !dead) + cv.wait(lock); + waiting --; + return; + } + } +}; + + + +//////////////////////////////////////////////////////////////////////// + // Print a standard timestamp. static ostream& @@ -1026,6 +1156,24 @@ public: //////////////////////////////////////////////////////////////////////// + +struct sqlite_checkpoint_pb: public periodic_barrier +{ + // NB: don't use sqlite_ps since it can throw exceptions during ctor etc. + sqlite_checkpoint_pb(unsigned t, unsigned p): + periodic_barrier(t, p) { } + + void periodic_barrier_work() noexcept + { + (void) sqlite3_exec (db, "pragma wal_checkpoint(truncate);", NULL, NULL, NULL); + } +}; + +static periodic_barrier* scan_barrier = 0; // initialized in main() + + +//////////////////////////////////////////////////////////////////////// + // RAII style templated autocloser template <class Payload, class Ignore> @@ -1635,13 +1783,14 @@ extract_section (int elf_fd, int64_t parent_mtime, throw libc_exception (errno, "cannot write to temporary file"); /* Set mtime to be the same as the parent file's mtime. */ - struct timeval tvs[2]; + struct timespec tvs[2]; if (fstat (elf_fd, &fs) != 0) throw libc_exception (errno, "cannot fstat file"); - tvs[0].tv_sec = tvs[1].tv_sec = fs.st_mtime; - tvs[0].tv_usec = tvs[1].tv_usec = 0; - (void) futimes (fd, tvs); + tvs[0].tv_sec = 0; + tvs[0].tv_nsec = UTIME_OMIT; + tvs[1] = fs.st_mtim; + (void) futimens (fd, tvs); /* Add to fdcache. */ fdcache.intern (b_source, section, tmppath, data->d_size, true); @@ -1727,11 +1876,10 @@ handle_buildid_f_match (bool internal_req_t, } else { - std::string file = b_source0.substr(b_source0.find_last_of("/")+1, b_source0.length()); add_mhd_response_header (r, "Content-Type", "application/octet-stream"); add_mhd_response_header (r, "X-DEBUGINFOD-SIZE", to_string(s.st_size).c_str()); - add_mhd_response_header (r, "X-DEBUGINFOD-FILE", file.c_str()); + add_mhd_response_header (r, "X-DEBUGINFOD-FILE", b_source0.c_str()); add_mhd_last_modified (r, s.st_mtime); if (verbose > 1) obatched(clog) << "serving file " << b_source0 << " section=" << section << endl; @@ -1951,10 +2099,12 @@ handle_buildid_r_match (bool internal_req_p, // Set the mtime so the fdcache file mtimes, even prefetched ones, // propagate to future webapi clients. - struct timeval tvs[2]; - tvs[0].tv_sec = tvs[1].tv_sec = archive_entry_mtime(e); - tvs[0].tv_usec = tvs[1].tv_usec = 0; - (void) futimes (fd, tvs); /* best effort */ + struct timespec tvs[2]; + tvs[0].tv_sec = 0; + tvs[0].tv_nsec = UTIME_OMIT; + tvs[1].tv_sec = archive_entry_mtime(e); + tvs[1].tv_nsec = archive_entry_mtime_nsec(e); + (void) futimens (fd, tvs); /* best effort */ if (r != 0) // stage 3 { @@ -2013,14 +2163,12 @@ handle_buildid_r_match (bool internal_req_p, } else { - std::string file = b_source1.substr(b_source1.find_last_of("/")+1, b_source1.length()); add_mhd_response_header (r, "Content-Type", "application/octet-stream"); add_mhd_response_header (r, "X-DEBUGINFOD-SIZE", to_string(archive_entry_size(e)).c_str()); - add_mhd_response_header (r, "X-DEBUGINFOD-ARCHIVE", - b_source0.c_str()); - add_mhd_response_header (r, "X-DEBUGINFOD-FILE", file.c_str()); + add_mhd_response_header (r, "X-DEBUGINFOD-ARCHIVE", b_source0.c_str()); + add_mhd_response_header (r, "X-DEBUGINFOD-FILE", b_source1.c_str()); add_mhd_last_modified (r, archive_entry_mtime(e)); if (verbose > 1) obatched(clog) << "serving archive " << b_source0 @@ -3037,10 +3185,65 @@ elf_classify (int fd, bool &executable_p, bool &debuginfo_p, string &buildid, se } +// Intern the given file name in two parts (dirname & basename) and +// return the resulting file's id. +static int64_t +register_file_name(sqlite_ps& ps_upsert_fileparts, + sqlite_ps& ps_upsert_file, + sqlite_ps& ps_lookup_file, + const string& name) +{ + std::size_t slash = name.rfind('/'); + string dirname, basename; + if (slash == std::string::npos) + { + dirname = ""; + basename = name; + } + else + { + dirname = name.substr(0, slash); + basename = name.substr(slash+1); + } + + // intern the two substrings + ps_upsert_fileparts + .reset() + .bind(1, dirname) + .step_ok_done(); + ps_upsert_fileparts + .reset() + .bind(1, basename) + .step_ok_done(); + + // intern the tuple + ps_upsert_file + .reset() + .bind(1, dirname) + .bind(2, basename) + .step_ok_done(); + + // look up the tuple's id + ps_lookup_file + .reset() + .bind(1, dirname) + .bind(2, basename); + int rc = ps_lookup_file.step(); + if (rc != SQLITE_ROW) throw sqlite_exception(rc, "step"); + + int64_t id = sqlite3_column_int64 (ps_lookup_file, 0); + ps_lookup_file.reset(); + return id; +} + + + static void scan_source_file (const string& rps, const stat_t& st, sqlite_ps& ps_upsert_buildids, - sqlite_ps& ps_upsert_files, + sqlite_ps& ps_upsert_fileparts, + sqlite_ps& ps_upsert_file, + sqlite_ps& ps_lookup_file, sqlite_ps& ps_upsert_de, sqlite_ps& ps_upsert_s, sqlite_ps& ps_query, @@ -3050,10 +3253,12 @@ scan_source_file (const string& rps, const stat_t& st, unsigned& fts_debuginfo, unsigned& fts_sourcefiles) { + int64_t fileid = register_file_name(ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, rps); + /* See if we know of it already. */ int rc = ps_query .reset() - .bind(1, rps) + .bind(1, fileid) .bind(2, st.st_mtime) .step(); ps_query.reset(); @@ -3093,12 +3298,6 @@ scan_source_file (const string& rps, const stat_t& st, if (fd >= 0) close (fd); - // register this file name in the interning table - ps_upsert_files - .reset() - .bind(1, rps) - .step_ok_done(); - if (buildid == "") { // no point storing an elf file without buildid @@ -3125,7 +3324,7 @@ scan_source_file (const string& rps, const stat_t& st, .bind(1, buildid) .bind(2, debuginfo_p ? 1 : 0) .bind(3, executable_p ? 1 : 0) - .bind(4, rps) + .bind(4, fileid) .bind(5, st.st_mtime) .step_ok_done(); } @@ -3157,11 +3356,6 @@ scan_source_file (const string& rps, const stat_t& st, << " mtime=" << sfs.st_mtime << " as source " << dwarfsrc << endl; - ps_upsert_files - .reset() - .bind(1, srps) - .step_ok_done(); - // PR25548: store canonicalized dwarfsrc path string dwarfsrc_canon = canon_pathname (dwarfsrc); if (dwarfsrc_canon != dwarfsrc) @@ -3170,16 +3364,14 @@ scan_source_file (const string& rps, const stat_t& st, obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; } - ps_upsert_files - .reset() - .bind(1, dwarfsrc_canon) - .step_ok_done(); + int64_t fileid1 = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, dwarfsrc_canon); + int64_t fileid2 = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, srps); ps_upsert_s .reset() .bind(1, buildid) - .bind(2, dwarfsrc_canon) - .bind(3, srps) + .bind(2, fileid1) + .bind(3, fileid2) .bind(4, sfs.st_mtime) .step_ok_done(); @@ -3189,7 +3381,7 @@ scan_source_file (const string& rps, const stat_t& st, ps_scan_done .reset() - .bind(1, rps) + .bind(1, fileid) .bind(2, st.st_mtime) .bind(3, st.st_size) .step_ok_done(); @@ -3208,8 +3400,9 @@ scan_source_file (const string& rps, const stat_t& st, // Analyze given archive file of given age; record buildids / exec/debuginfo-ness of its // constituent files with given upsert statements. static void -archive_classify (const string& rps, string& archive_extension, - sqlite_ps& ps_upsert_buildids, sqlite_ps& ps_upsert_files, +archive_classify (const string& rps, string& archive_extension, int64_t archiveid, + sqlite_ps& ps_upsert_buildids, sqlite_ps& ps_upsert_fileparts, sqlite_ps& ps_upsert_file, + sqlite_ps& ps_lookup_file, sqlite_ps& ps_upsert_de, sqlite_ps& ps_upsert_sref, sqlite_ps& ps_upsert_sdef, time_t mtime, unsigned& fts_executable, unsigned& fts_debuginfo, unsigned& fts_sref, unsigned& fts_sdef, @@ -3263,8 +3456,9 @@ archive_classify (const string& rps, string& archive_extension, } if (verbose > 3) - obatched(clog) << "libarchive scanning " << rps << endl; + obatched(clog) << "libarchive scanning " << rps << " id " << archiveid << endl; + bool any_exceptions = false; while(1) // parse archive entries { if (interrupted) @@ -3316,10 +3510,7 @@ archive_classify (const string& rps, string& archive_extension, .step_ok_done(); } - ps_upsert_files // register this rpm constituent file name in interning table - .reset() - .bind(1, fn) - .step_ok_done(); + int64_t fileid = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, fn); if (sourcefiles.size() > 0) // sref records needed { @@ -3348,15 +3539,13 @@ archive_classify (const string& rps, string& archive_extension, obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; } - ps_upsert_files - .reset() - .bind(1, dwarfsrc_canon) - .step_ok_done(); - + int64_t srcfileid = register_file_name(ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, + dwarfsrc_canon); + ps_upsert_sref .reset() .bind(1, buildid) - .bind(2, dwarfsrc_canon) + .bind(2, srcfileid) .step_ok_done(); fts_sref ++; @@ -3375,9 +3564,9 @@ archive_classify (const string& rps, string& archive_extension, .bind(1, buildid) .bind(2, debuginfo_p ? 1 : 0) .bind(3, executable_p ? 1 : 0) - .bind(4, rps) + .bind(4, archiveid) .bind(5, mtime) - .bind(6, fn) + .bind(6, fileid) .step_ok_done(); } else // potential source - sdef record @@ -3385,9 +3574,9 @@ archive_classify (const string& rps, string& archive_extension, fts_sdef ++; ps_upsert_sdef .reset() - .bind(1, rps) + .bind(1, archiveid) .bind(2, mtime) - .bind(3, fn) + .bind(3, fileid) .step_ok_done(); } @@ -3402,8 +3591,17 @@ archive_classify (const string& rps, string& archive_extension, catch (const reportable_exception& e) { e.report(clog); + any_exceptions = true; + // NB: but we allow the libarchive iteration to continue, in + // case we can still gather some useful information. That + // would allow some webapi queries to work, until later when + // this archive is rescanned. (Its vitals won't go into the + // _file_mtime_scanned table until after a successful scan.) } } + + if (any_exceptions) + throw reportable_exception("exceptions encountered during archive scan"); } @@ -3412,7 +3610,9 @@ archive_classify (const string& rps, string& archive_extension, static void scan_archive_file (const string& rps, const stat_t& st, sqlite_ps& ps_upsert_buildids, - sqlite_ps& ps_upsert_files, + sqlite_ps& ps_upsert_fileparts, + sqlite_ps& ps_upsert_file, + sqlite_ps& ps_lookup_file, sqlite_ps& ps_upsert_de, sqlite_ps& ps_upsert_sref, sqlite_ps& ps_upsert_sdef, @@ -3424,10 +3624,13 @@ scan_archive_file (const string& rps, const stat_t& st, unsigned& fts_sref, unsigned& fts_sdef) { + // intern the archive file name + int64_t archiveid = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, rps); + /* See if we know of it already. */ int rc = ps_query .reset() - .bind(1, rps) + .bind(1, archiveid) .bind(2, st.st_mtime) .step(); ps_query.reset(); @@ -3441,20 +3644,15 @@ scan_archive_file (const string& rps, const stat_t& st, return; } - // intern the archive file name - ps_upsert_files - .reset() - .bind(1, rps) - .step_ok_done(); - // extract the archive contents unsigned my_fts_executable = 0, my_fts_debuginfo = 0, my_fts_sref = 0, my_fts_sdef = 0; bool my_fts_sref_complete_p = true; + bool any_exceptions = false; try { string archive_extension; - archive_classify (rps, archive_extension, - ps_upsert_buildids, ps_upsert_files, + archive_classify (rps, archive_extension, archiveid, + ps_upsert_buildids, ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, ps_upsert_de, ps_upsert_sref, ps_upsert_sdef, // dalt st.st_mtime, my_fts_executable, my_fts_debuginfo, my_fts_sref, my_fts_sdef, @@ -3472,6 +3670,7 @@ scan_archive_file (const string& rps, const stat_t& st, catch (const reportable_exception& e) { e.report(clog); + any_exceptions = true; } if (verbose > 2) @@ -3481,6 +3680,7 @@ scan_archive_file (const string& rps, const stat_t& st, << " debuginfos=" << my_fts_debuginfo << " srefs=" << my_fts_sref << " sdefs=" << my_fts_sdef + << " exceptions=" << any_exceptions << endl; fts_executable += my_fts_executable; @@ -3488,10 +3688,13 @@ scan_archive_file (const string& rps, const stat_t& st, fts_sref += my_fts_sref; fts_sdef += my_fts_sdef; + if (any_exceptions) + throw reportable_exception("exceptions encountered during archive scan"); + if (my_fts_sref_complete_p) // leave incomplete? ps_scan_done .reset() - .bind(1, rps) + .bind(1, archiveid) .bind(2, st.st_mtime) .bind(3, st.st_size) .step_ok_done(); @@ -3506,57 +3709,63 @@ scan_archive_file (const string& rps, const stat_t& st, // The thread that consumes file names off of the scanq. We hold // the persistent sqlite_ps's at this level and delegate file/archive // scanning to other functions. -static void* -thread_main_scanner (void* arg) +static void +scan () { - (void) arg; - // all the prepared statements fit to use, the _f_ set: sqlite_ps ps_f_upsert_buildids (db, "file-buildids-intern", "insert or ignore into " BUILDIDS "_buildids VALUES (NULL, ?);"); - sqlite_ps ps_f_upsert_files (db, "file-files-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, ?);"); + sqlite_ps ps_f_upsert_fileparts (db, "file-fileparts-intern", "insert or ignore into " BUILDIDS "_fileparts VALUES (NULL, ?);"); + sqlite_ps ps_f_upsert_file (db, "file-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, \n" + "(select id from " BUILDIDS "_fileparts where name = ?),\n" + "(select id from " BUILDIDS "_fileparts where name = ?));"); + sqlite_ps ps_f_lookup_file (db, "file-file-lookup", + "select f.id\n" + " from " BUILDIDS "_files f, " BUILDIDS "_fileparts p1, " BUILDIDS "_fileparts p2 \n" + " where f.dirname = p1.id and f.basename = p2.id and p1.name = ? and p2.name = ?;\n"); sqlite_ps ps_f_upsert_de (db, "file-de-upsert", "insert or ignore into " BUILDIDS "_f_de " "(buildid, debuginfo_p, executable_p, file, mtime) " "values ((select id from " BUILDIDS "_buildids where hex = ?)," - " ?,?," - " (select id from " BUILDIDS "_files where name = ?), ?);"); + " ?,?,?,?);"); sqlite_ps ps_f_upsert_s (db, "file-s-upsert", "insert or ignore into " BUILDIDS "_f_s " "(buildid, artifactsrc, file, mtime) " "values ((select id from " BUILDIDS "_buildids where hex = ?)," - " (select id from " BUILDIDS "_files where name = ?)," - " (select id from " BUILDIDS "_files where name = ?)," - " ?);"); + " ?,?,?);"); sqlite_ps ps_f_query (db, "file-negativehit-find", "select 1 from " BUILDIDS "_file_mtime_scanned where sourcetype = 'F' " - "and file = (select id from " BUILDIDS "_files where name = ?) and mtime = ?;"); + "and file = ? and mtime = ?;"); sqlite_ps ps_f_scan_done (db, "file-scanned", "insert or ignore into " BUILDIDS "_file_mtime_scanned (sourcetype, file, mtime, size)" - "values ('F', (select id from " BUILDIDS "_files where name = ?), ?, ?);"); + "values ('F', ?,?,?);"); // and now for the _r_ set sqlite_ps ps_r_upsert_buildids (db, "rpm-buildid-intern", "insert or ignore into " BUILDIDS "_buildids VALUES (NULL, ?);"); - sqlite_ps ps_r_upsert_files (db, "rpm-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, ?);"); + sqlite_ps ps_r_upsert_fileparts (db, "rpm-fileparts-intern", "insert or ignore into " BUILDIDS "_fileparts VALUES (NULL, ?);"); + sqlite_ps ps_r_upsert_file (db, "rpm-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, \n" + "(select id from " BUILDIDS "_fileparts where name = ?),\n" + "(select id from " BUILDIDS "_fileparts where name = ?));"); + sqlite_ps ps_r_lookup_file (db, "rpm-file-lookup", + "select f.id\n" + " from " BUILDIDS "_files f, " BUILDIDS "_fileparts p1, " BUILDIDS "_fileparts p2 \n" + " where f.dirname = p1.id and f.basename = p2.id and p1.name = ? and p2.name = ?;\n"); sqlite_ps ps_r_upsert_de (db, "rpm-de-insert", "insert or ignore into " BUILDIDS "_r_de (buildid, debuginfo_p, executable_p, file, mtime, content) values (" - "(select id from " BUILDIDS "_buildids where hex = ?), ?, ?, " - "(select id from " BUILDIDS "_files where name = ?), ?, " - "(select id from " BUILDIDS "_files where name = ?));"); + "(select id from " BUILDIDS "_buildids where hex = ?), ?, ?, ?, ?, ?);"); sqlite_ps ps_r_upsert_sref (db, "rpm-sref-insert", "insert or ignore into " BUILDIDS "_r_sref (buildid, artifactsrc) values (" "(select id from " BUILDIDS "_buildids where hex = ?), " - "(select id from " BUILDIDS "_files where name = ?));"); + "?);"); sqlite_ps ps_r_upsert_sdef (db, "rpm-sdef-insert", "insert or ignore into " BUILDIDS "_r_sdef (file, mtime, content) values (" - "(select id from " BUILDIDS "_files where name = ?), ?," - "(select id from " BUILDIDS "_files where name = ?));"); + "?, ?, ?);"); sqlite_ps ps_r_query (db, "rpm-negativehit-query", "select 1 from " BUILDIDS "_file_mtime_scanned where " - "sourcetype = 'R' and file = (select id from " BUILDIDS "_files where name = ?) and mtime = ?;"); + "sourcetype = 'R' and file = ? and mtime = ?;"); sqlite_ps ps_r_scan_done (db, "rpm-scanned", "insert or ignore into " BUILDIDS "_file_mtime_scanned (sourcetype, file, mtime, size)" - "values ('R', (select id from " BUILDIDS "_files where name = ?), ?, ?);"); - + "values ('R', ?, ?, ?);"); + unsigned fts_cached = 0, fts_executable = 0, fts_debuginfo = 0, fts_sourcefiles = 0; unsigned fts_sref = 0, fts_sdef = 0; @@ -3568,6 +3777,9 @@ thread_main_scanner (void* arg) scan_payload p; add_metric("thread_busy", "role", "scan", -1); + // NB: threads may be blocked within either of these two waiting + // states, if the work queue happens to run dry. That's OK. + if (scan_barrier) scan_barrier->count(); bool gotone = scanq.wait_front(p); add_metric("thread_busy", "role", "scan", 1); @@ -3583,7 +3795,9 @@ thread_main_scanner (void* arg) if (scan_archive) scan_archive_file (p.first, p.second, ps_r_upsert_buildids, - ps_r_upsert_files, + ps_r_upsert_fileparts, + ps_r_upsert_file, + ps_r_lookup_file, ps_r_upsert_de, ps_r_upsert_sref, ps_r_upsert_sdef, @@ -3598,7 +3812,9 @@ thread_main_scanner (void* arg) if (scan_files) // NB: maybe "else if" ? scan_source_file (p.first, p.second, ps_f_upsert_buildids, - ps_f_upsert_files, + ps_f_upsert_fileparts, + ps_f_upsert_file, + ps_f_lookup_file, ps_f_upsert_de, ps_f_upsert_s, ps_f_query, @@ -3622,8 +3838,25 @@ thread_main_scanner (void* arg) inc_metric("thread_work_total","role","scan"); } - add_metric("thread_busy", "role", "scan", -1); +} + + +// Use this function as the thread entry point, so it can catch our +// fleet of exceptions (incl. the sqlite_ps ctors) and report. +static void* +thread_main_scanner (void* arg) +{ + (void) arg; + while (! interrupted) + try + { + scan(); + } + catch (const reportable_exception& e) + { + e.report(cerr); + } return 0; } @@ -3836,7 +4069,7 @@ void groom() // scan for files that have disappeared sqlite_ps files (db, "check old files", "select distinct s.mtime, s.file, f.name from " - BUILDIDS "_file_mtime_scanned s, " BUILDIDS "_files f " + BUILDIDS "_file_mtime_scanned s, " BUILDIDS "_files_v f " "where f.id = s.file"); // NB: Because _ftime_mtime_scanned can contain both F and // R records for the same file, this query would return duplicates if the @@ -3874,7 +4107,7 @@ void groom() { bool reg_include = !regexec (&file_include_regex, filename, 0, 0, 0); bool reg_exclude = !regexec (&file_exclude_regex, filename, 0, 0, 0); - regex_file_drop = reg_exclude && !reg_include; + regex_file_drop = !reg_include || reg_exclude; // match logic of scan_source_paths } rc = stat(filename, &s); @@ -4136,6 +4369,20 @@ default_concurrency() // guaranteed >= 1 } +// 30879: Something to help out in case of an uncaught exception. +void my_terminate_handler() +{ +#if defined(__GLIBC__) + void *array[40]; + int size = backtrace (array, 40); + backtrace_symbols_fd (array, size, STDERR_FILENO); +#endif +#if defined(__GLIBCXX__) || defined(__GLIBCPP__) + __gnu_cxx::__verbose_terminate_handler(); +#endif + abort(); +} + int main (int argc, char *argv[]) @@ -4144,6 +4391,8 @@ main (int argc, char *argv[]) (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR); (void) textdomain (PACKAGE_TARNAME); + std::set_terminate(& my_terminate_handler); + /* Tell the library which version we are expecting. */ elf_version (EV_CURRENT); @@ -4364,8 +4613,10 @@ main (int argc, char *argv[]) obatched(clog) << "search concurrency " << concurrency << endl; obatched(clog) << "webapi connection pool " << connection_pool << (connection_pool ? "" : " (unlimited)") << endl; - if (! passive_p) + if (! passive_p) { obatched(clog) << "rescan time " << rescan_s << endl; + obatched(clog) << "scan checkpoint " << scan_checkpoint << endl; + } obatched(clog) << "fdcache fds " << fdcache_fds << endl; obatched(clog) << "fdcache mbs " << fdcache_mbs << endl; obatched(clog) << "fdcache prefetch " << fdcache_prefetch << endl; @@ -4407,6 +4658,9 @@ main (int argc, char *argv[]) if (scan_files || scan_archives.size() > 0) { + if (scan_checkpoint > 0) + scan_barrier = new sqlite_checkpoint_pb(concurrency, (unsigned) scan_checkpoint); + rc = pthread_create (& pt, NULL, thread_main_fts_source_paths, NULL); if (rc) error (EXIT_FAILURE, rc, "cannot spawn thread to traverse source paths\n"); @@ -4433,6 +4687,7 @@ main (int argc, char *argv[]) while (! interrupted) pause (); scanq.nuke(); // wake up any remaining scanq-related threads, let them die + if (scan_barrier) scan_barrier->nuke(); // ... in case they're stuck in a barrier set_metric("ready", 0); if (verbose) @@ -4458,6 +4713,7 @@ main (int argc, char *argv[]) } debuginfod_pool_groom (); + delete scan_barrier; // NB: no problem with unconditional free here - an earlier failed regcomp would exit program (void) regfree (& file_include_regex); diff --git a/doc/Makefile.am b/doc/Makefile.am index db5a842e..87de4f0b 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -17,7 +17,7 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. EXTRA_DIST = COPYING-GFDL README -dist_man1_MANS=readelf.1 elfclassify.1 +dist_man1_MANS=readelf.1 elfclassify.1 srcfiles.1 notrans_dist_man3_MANS=elf_update.3 elf_getdata.3 elf_clone.3 elf_begin.3 notrans_dist_man7_MANS= notrans_dist_man8_MANS= diff --git a/doc/debuginfod.8 b/doc/debuginfod.8 index 07cb01ae..4f1f04b3 100644 --- a/doc/debuginfod.8 +++ b/doc/debuginfod.8 @@ -172,7 +172,10 @@ interrupting a groom pass (if any). .TP .B "\-r" -Apply the -I and -X during groom cycles, so that files excluded by the regexes are removed from the index. These parameters are in addition to what normally qualifies a file for grooming, not a replacement. +Apply the -I and -X during groom cycles, so that most content related +to files excluded by the regexes are removed from the index. Not all +content can be practically removed, so eventually a "\-G" +"maximal-groom" operation may be needed. .TP .B "\-g SECONDS" "\-\-groom\-time=SECONDS" @@ -280,6 +283,13 @@ If a setup has no access to source code, the source info is not required. .TP +.B "\-\-scan\-checkpoint=NUM" +Run a synchronized SQLITE WAL checkpoint operation after every NUM +completed archive or file scans. This may slow down parallel scanning +phase somewhat, but generate much smaller "-wal" temporary files on +busy servers. The default is 256. Disabled if 0. + +.TP .B "\-v" Increase verbosity of logging to the standard error file descriptor. May be repeated to increase details. The default verbosity is 0. @@ -294,18 +304,35 @@ Unknown buildid / request combinations result in HTTP error codes. This file service resemblance is intentional, so that an installation can take advantage of standard HTTP management infrastructure. -Upon finding a file in an archive or simply in the database, some -custom http headers are added to the response. For files in the -database X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE are added. -X-DEBUGINFOD-FILE is simply the unescaped filename and -X-DEBUGINFOD-SIZE is the size of the file. For files found in archives, -in addition to X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE, -X-DEBUGINFOD-ARCHIVE is added. X-DEBUGINFOD-ARCHIVE is the name of the -archive the file was found in. +For most queries, some custom http headers are added to the response, +providing additional metadata about the buildid-related response. For example: + +.SAMPLE +% debuginfod-find -v debuginfo /bin/ls |& grep -i x-debuginfo +x-debuginfod-size: 502024 +x-debuginfod-archive: /mnt/fedora_koji_prod/koji/packages/coreutils/9.3/4.fc39/x86_64/coreutils-debuginfo-9.3-4.fc39.x86_64.rpm +x-debuginfod-file: /usr/lib/debug/usr/bin/ls-9.3-4.fc39.x86_64.debug +.ESAMPLE + +.TP +X-DEBUGINFOD-SIZE +The size of the file, in bytes. This may differ from the http Content-Length: +field (if present), due to compression in transit. + +.TP +X-DEBUGINFOD-FILE +The full path name of the file related to the given buildid. + +.TP +X-DEBUGINFOD-ARCHIVE +The full path name of the archive that contained the above file, if any. + + + -There are three requests. In each case, the buildid is encoded as a -lowercase hexadecimal string. For example, for a program \fI/bin/ls\fP, -look at the ELF note GNU_BUILD_ID: +There are a handful of buildid-related requests. In each case, the +buildid is encoded as a lowercase hexadecimal string. For example, +for a program \fI/bin/ls\fP, look at the ELF note GNU_BUILD_ID: .SAMPLE % readelf -n /bin/ls | grep -A4 build.id @@ -381,8 +408,7 @@ contents of the section, not an ELF file. This endpoint returns a Prometheus formatted text/plain dump of a variety of statistics about the operation of the debuginfod server. The exact set of metrics and their meanings may change in future -versions. Caution: configuration information (path names, versions) -may be disclosed. +versions. .SH DATA MANAGEMENT @@ -475,8 +501,16 @@ a denial-of-service in terms of RAM, CPU, disk I/O, or network I/O. If this is a problem, users are advised to install debuginfod with a HTTPS reverse-proxy front-end that enforces site policies for firewalling, authentication, integrity, authorization, and load -control. The \fI/metrics\fP webapi endpoint is probably not -appropriate for disclosure to the public. +control. + +Front-end proxies may elide sensitive path name components in +X-DEBUGINFOD-FILE/ARCHIVE response headers. For example, using Apache +httpd's \fBmod_headers\fP, you can remove the entire directory name +prefix: + +.SAMPLE +Header edit x-debuginfod-archive ".*/" "" +.ESAMPLE When relaying queries to upstream debuginfods, debuginfod \fBdoes not\fP include any particular security features. It trusts that the binaries diff --git a/doc/srcfiles.1 b/doc/srcfiles.1 new file mode 100644 index 00000000..6149c21b --- /dev/null +++ b/doc/srcfiles.1 @@ -0,0 +1,133 @@ +.\" Copyright 2023 Red Hat Inc. +.\" Mon 2023-Sept 23 Housam Alamour <halamour@redhat.com> +.\" Contact elfutils-devel@sourceware.org to correct errors or typos. +.TH EU-SRCFILES 1 "2023-Sept-25" "elfutils" + +.de SAMPLE +.br +.RS 0 +.nf +.nh +\fB +.. +.de ESAMPLE +\fP +.hy +.fi +.RE +.. + +.SH "NAME" +eu-srcfiles \- Lists the source files of a DWARF/ELF file. + +.SH "SYNOPSIS" +eu-srcfiles [\fB\-0\fR|\fB\-\-null\fR] [\fB\-c\fR|\fB\-\-cu\-only\fR] [\fB\-v\fR|\fB\-\-verbose\fR] INPUT + +.SH "DESCRIPTION" +\fBeu-srcfiles\fR lists the source files of a given \s-DWARF/ELF\s0 +file. This list is based on a search of the DWARF debuginfo, which +may be automatically fetched by debuginfod if applicable. The target +file may be an executable, a coredump, a process, or even the running +kernel. The default is the file 'a.out'. The source file names are +made unique and printed to standard output. + +.SH "INPUT OPTIONS" +The long and short forms of options, shown here as alternatives, are +equivalent. +.TP +\fB--core=COREFILE\fR +Find addresses from signatures found in COREFILE. + +.TP +\fB--debuginfo-path=PATH\fR +Search path for separate debuginfo files. + +.TP +\fB-e FILE\fR, \fB--executable=FILE\fR +Find addresses in FILE. + +.TP +\fB-k\fR, \fB--kernel\fR +Find addresses in the running kernel. + +.TP +\fB-K\fR, \fB--offline-kernel[=RELEASE]\fR +Kernel with all modules. + +.TP +\fB-M FILE\fR, \fB--linux-process-map=FILE\fR +Find addresses in files mapped as read from FILE in Linux /proc/PID/maps format. + +.TP +\fB-p PID\fR, \fB--pid=PID\fR +Find addresses in files mapped into process PID. + +.TP +\fB-?\fR, \fB--help\fR +Give this help list. + +.TP +\fB--usage\fR +Give a short usage message. + +.TP +\fB-V\fR, \fB--version\fR +Print program version. + +.SH "OUTPUT OPTIONS" + +.TP +\fB\-0, \-\-null\fR +Separate items by a null instead of a newline. + +.TP +\fB\-c, \-\-cu\-only\fR +Only list the CU names. + +.TP +\fB\-v, \-\-verbose\fR +Increase verbosity of logging messages. + + +.SH EXAMPLES + +List all source files for a binary. +.SAMPLE +eu-srcfiles -e /bin/ls +.ESAMPLE + +List all compilation units (CU) names for a given process (including shared libraries). +.SAMPLE +eu-srcfiles -c -p $$ +.ESAMPLE + +List source files of a binary based on its buildid, using debuginfod. +.SAMPLE +binary=`debuginfod-find executable 9c22d8d9e42bd051ffdc1064fdfd456ba781c629` +eu-srcfiles -c -e $binary +.ESAMPLE + +Show the source code of the first CU of a shared library. +.SAMPLE +binary=/usr/lib64/libc.so.6 +srcfile=`eu-srcfiles -c -e $binary | head -1` +cat `debuginfod-find source $binary $srcfile` +.ESAMPLE + +List the source files of a kernel image. +.SAMPLE +eu-srcfiles -e /boot/vmlinuz-`uname -r` +.ESAMPLE + + +.SH "AUTHOR" +Written by Housam Alamour. + +.SH "REPORTING BUGS" +Please reports bugs at https://sourceware.org/bugzilla/ + +.SH "COPYRIGHT" +Copyright (c) 2023 Red Hat Inc. License GPLv3+: GNU GPL version 3 or +later <https://gnu.org/licenses/gpl.html>. This is free software: you +are free to change and redistribute it. There is NO WARRANTY, to the +extent permitted by law. diff --git a/lib/eu-config.h b/lib/eu-config.h index 78a5c4fe..feb079db 100644 --- a/lib/eu-config.h +++ b/lib/eu-config.h @@ -33,13 +33,18 @@ # include <pthread.h> # include <assert.h> # define rwlock_define(class,name) class pthread_rwlock_t name +# define once_define(class,name) class pthread_once_t name = PTHREAD_ONCE_INIT # define RWLOCK_CALL(call) \ ({ int _err = pthread_rwlock_ ## call; assert_perror (_err); }) +# define ONCE_CALL(call) \ + ({ int _err = pthread_ ## call; assert_perror (_err); }) # define rwlock_init(lock) RWLOCK_CALL (init (&lock, NULL)) # define rwlock_fini(lock) RWLOCK_CALL (destroy (&lock)) # define rwlock_rdlock(lock) RWLOCK_CALL (rdlock (&lock)) # define rwlock_wrlock(lock) RWLOCK_CALL (wrlock (&lock)) # define rwlock_unlock(lock) RWLOCK_CALL (unlock (&lock)) +# define once(once_control, init_routine) \ + ONCE_CALL (once (&once_control, init_routine)) #else /* Eventually we will allow multi-threaded applications to use the libraries. Therefore we will add the necessary locking although @@ -50,6 +55,8 @@ # define rwlock_rdlock(lock) ((void) (lock)) # define rwlock_wrlock(lock) ((void) (lock)) # define rwlock_unlock(lock) ((void) (lock)) +# define once_define(class,name) +# define once(once_control, init_routine) init_routine() #endif /* USE_LOCKS */ #include <libintl.h> diff --git a/lib/printversion.h b/lib/printversion.h index 4154b328..6811aa5b 100644 --- a/lib/printversion.h +++ b/lib/printversion.h @@ -32,6 +32,9 @@ #include <argp.h> #include <stdio.h> +#ifdef __cplusplus +extern "C" { +#endif /* Defined in version.c. Common ARGP_PROGRAM_VERSION_HOOK_DEF. */ void print_version (FILE *stream, struct argp_state *state); @@ -49,4 +52,8 @@ extern const char *const apba__; #define ARGP_PROGRAM_BUG_ADDRESS_DEF \ const char *const apba__ __asm ("argp_program_bug_address") +#ifdef __cplusplus +} +#endif + #endif // PRINTVERSION_H diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 406310ef..b19fc80d 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,47 @@ +2023-09-27 Omar Sandoval <osandov@fb.com> + + * libdwP.h ((Dwarf): Add elfpath. + * dwarf_begin_elf.c (__libdw_debugdir): Replace declaration with... + (__libdw_elfpath): New declaration. + (__libdw_set_debugdir): New declaration. + (__libdw_debugdir): Replace with.. + (__libdw_elfpath): New function. + (__libdw_set_debugdir): New function. + (valid_p): Call __libdw_elfpath and __libdw_set_debugdir instead of + __libdw_debugdir. + * dwarf_end.c (dwarf_end): Free dwarf->elfpath. + +2023-09-27 Omar Sandoval <osandov@fb.com> + + * libdw_find_split_unit.c (try_split_file): Make static. + * dwarf_entrypc.c (dwarf_entrypc): Call dwarf_lowpc. + * dwarf_ranges.c (dwarf_ranges): Use skeleton ranges section for + skeleton units. + * dwarf_macro_param2.c (dwarf_macro_param2): Change form condition to + switch statement and add DW_FORM_line_strp, DW_FORM_strp_sup, + DW_FORM_strx, and DW_FORM_strx[1-4]. + * dwarf_getmacros.c (get_macinfo_table): Replace assignment of + table->is_64bit with assignments of table->address_size and + table->offset_size. Assume default DW_AT_stmt_list of 0 for split + DWARF. Set table->dbg. + (get_table_for_offset): Ditto. + (read_macros): Get fake CU offset_size from table->offset_size instead + of table->is_64bit. + * dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Get + address_size for __libdw_getsrclines from table->address_size instead + of table->is_64bit. Get dbg for __libdw_getsrclines from table->dbg + instead of dbg parameter, which is now unused. + * libdwP.h (Dwarf_Macro_Op_Table): Replace is_64bit with address_size + and offset_size. Add dbg. + Add IDX_debug_cu_index and IDX_debug_tu_index. + * dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_cu_index and + IDX_debug_tu_index. + (scn_to_string_section_idx): Ditto. + (scn_dwarf_type): Check for .debug_cu_index, .debug_tu_index, + .zdebug_cu_index, and .zdebug_tu_index. + (check_section): Change .dwo suffix matching to account for + .debug_cu_index and .debug_tu_index. + 2023-02-22 Mark Wielaard <mark@klomp.org> * dwarf_getscopes.c (origin_match): Don't free a->scopes. diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c index 92d76d24..323a91d0 100644 --- a/libdw/dwarf_begin_elf.c +++ b/libdw/dwarf_begin_elf.c @@ -67,6 +67,8 @@ static const char dwarf_scnnames[IDX_last][19] = [IDX_debug_macro] = ".debug_macro", [IDX_debug_ranges] = ".debug_ranges", [IDX_debug_rnglists] = ".debug_rnglists", + [IDX_debug_cu_index] = ".debug_cu_index", + [IDX_debug_tu_index] = ".debug_tu_index", [IDX_gnu_debugaltlink] = ".gnu_debugaltlink" }; #define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0])) @@ -92,6 +94,8 @@ static const enum string_section_index scn_to_string_section_idx[IDX_last] = [IDX_debug_macro] = STR_SCN_IDX_last, [IDX_debug_ranges] = STR_SCN_IDX_last, [IDX_debug_rnglists] = STR_SCN_IDX_last, + [IDX_debug_cu_index] = STR_SCN_IDX_last, + [IDX_debug_tu_index] = STR_SCN_IDX_last, [IDX_gnu_debugaltlink] = STR_SCN_IDX_last }; @@ -109,6 +113,11 @@ scn_dwarf_type (Dwarf *result, size_t shstrndx, Elf_Scn *scn) { if (startswith (scnname, ".gnu.debuglto_.debug")) return TYPE_GNU_LTO; + else if (strcmp (scnname, ".debug_cu_index") == 0 + || strcmp (scnname, ".debug_tu_index") == 0 + || strcmp (scnname, ".zdebug_cu_index") == 0 + || strcmp (scnname, ".zdebug_tu_index") == 0) + return TYPE_DWO; else if (startswith (scnname, ".debug_") || startswith (scnname, ".zdebug_")) { size_t len = strlen (scnname); @@ -173,42 +182,34 @@ check_section (Dwarf *result, size_t shstrndx, Elf_Scn *scn, bool inscngrp) bool gnu_compressed = false; for (cnt = 0; cnt < ndwarf_scnnames; ++cnt) { + /* .debug_cu_index and .debug_tu_index don't have a .dwo suffix, + but they are for DWO. */ + if (result->type != TYPE_DWO + && (cnt == IDX_debug_cu_index || cnt == IDX_debug_tu_index)) + continue; + bool need_dot_dwo = + (result->type == TYPE_DWO + && cnt != IDX_debug_cu_index + && cnt != IDX_debug_tu_index); size_t dbglen = strlen (dwarf_scnnames[cnt]); size_t scnlen = strlen (scnname); if (strncmp (scnname, dwarf_scnnames[cnt], dbglen) == 0 - && (dbglen == scnlen - || (scnlen == dbglen + 4 + && ((!need_dot_dwo && dbglen == scnlen) + || (need_dot_dwo + && scnlen == dbglen + 4 && strstr (scnname, ".dwo") == scnname + dbglen))) - { - if (dbglen == scnlen) - { - if (result->type == TYPE_PLAIN) - break; - } - else if (result->type == TYPE_DWO) - break; - } + break; else if (scnname[0] == '.' && scnname[1] == 'z' && (strncmp (&scnname[2], &dwarf_scnnames[cnt][1], dbglen - 1) == 0 - && (scnlen == dbglen + 1 - || (scnlen == dbglen + 5 + && ((!need_dot_dwo && scnlen == dbglen + 1) + || (need_dot_dwo + && scnlen == dbglen + 5 && strstr (scnname, ".dwo") == scnname + dbglen + 1)))) { - if (scnlen == dbglen + 1) - { - if (result->type == TYPE_PLAIN) - { - gnu_compressed = true; - break; - } - } - else if (result->type <= TYPE_DWO) - { - gnu_compressed = true; - break; - } + gnu_compressed = true; + break; } else if (scnlen > 14 /* .gnu.debuglto_ prefix. */ && startswith (scnname, ".gnu.debuglto_") @@ -271,24 +272,27 @@ check_section (Dwarf *result, size_t shstrndx, Elf_Scn *scn, bool inscngrp) return result; } - -/* Helper function to set debugdir field. We want to cache the dir - where we found this Dwarf ELF file to locate alt and dwo files. */ char * -__libdw_debugdir (int fd) +__libdw_elfpath (int fd) { /* strlen ("/proc/self/fd/") = 14 + strlen (<MAXINT>) = 10 + 1 = 25. */ char devfdpath[25]; sprintf (devfdpath, "/proc/self/fd/%u", fd); - char *fdpath = realpath (devfdpath, NULL); - char *fddir; - if (fdpath != NULL && fdpath[0] == '/' - && (fddir = strrchr (fdpath, '/')) != NULL) - { - *++fddir = '\0'; - return fdpath; - } - return NULL; + return realpath (devfdpath, NULL); +} + + +void +__libdw_set_debugdir (Dwarf *dbg) +{ + if (dbg->elfpath == NULL || dbg->elfpath[0] != '/') + return; + size_t dirlen = strrchr (dbg->elfpath, '/') - dbg->elfpath + 1; + dbg->debugdir = malloc (dirlen + 1); + if (dbg->debugdir == NULL) + return; + memcpy (dbg->debugdir, dbg->elfpath, dirlen); + dbg->debugdir[dirlen] = '\0'; } @@ -420,7 +424,10 @@ valid_p (Dwarf *result) } if (result != NULL) - result->debugdir = __libdw_debugdir (result->elf->fildes); + { + result->elfpath = __libdw_elfpath (result->elf->fildes); + __libdw_set_debugdir(result); + } return result; } diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c index 8dd075cf..e51d5dd7 100644 --- a/libdw/dwarf_end.c +++ b/libdw/dwarf_end.c @@ -144,7 +144,8 @@ dwarf_end (Dwarf *dwarf) close (dwarf->alt_fd); } - /* The cached dir we found the Dwarf ELF file in. */ + /* The cached path and dir we found the Dwarf ELF file in. */ + free (dwarf->elfpath); free (dwarf->debugdir); /* Free the context descriptor. */ diff --git a/libdw/dwarf_entrypc.c b/libdw/dwarf_entrypc.c index 0ef3b0ea..543567d4 100644 --- a/libdw/dwarf_entrypc.c +++ b/libdw/dwarf_entrypc.c @@ -37,12 +37,10 @@ int dwarf_entrypc (Dwarf_Die *die, Dwarf_Addr *return_addr) { - Dwarf_Attribute attr_mem; - - return INTUSE(dwarf_formaddr) (INTUSE(dwarf_attr) (die, DW_AT_entry_pc, - &attr_mem) - ?: INTUSE(dwarf_attr) (die, DW_AT_low_pc, - &attr_mem), - return_addr); + Dwarf_Attribute attr_mem, *attr; + if ((attr = INTUSE(dwarf_attr) (die, DW_AT_entry_pc, &attr_mem)) != NULL) + return INTUSE(dwarf_formaddr) (attr, return_addr); + else + return INTUSE(dwarf_lowpc) (die, return_addr); } INTDEF(dwarf_entrypc) diff --git a/libdw/dwarf_getaranges.c b/libdw/dwarf_getaranges.c index de5b81ba..27439d37 100644 --- a/libdw/dwarf_getaranges.c +++ b/libdw/dwarf_getaranges.c @@ -1,5 +1,6 @@ /* Return list address ranges. Copyright (C) 2000-2010, 2016, 2017 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2000. @@ -124,6 +125,10 @@ dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges, size_t *naranges) && length <= DWARF3_LENGTH_MAX_ESCAPE_CODE)) goto invalid; + const unsigned char *endp = readp + length; + if (unlikely (endp > readendp)) + goto invalid; + if (unlikely (readp + 2 > readendp)) goto invalid; @@ -182,9 +187,17 @@ dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges, size_t *naranges) else range_length = read_8ubyte_unaligned_inc (dbg, readp); - /* Two zero values mark the end. */ + /* Two zero values mark the end. But in some cases (bugs) + there might be such entries in the middle of the table. + Ignore and continue, we'll check the actual length of + the table to see if we are really at the end. */ if (range_address == 0 && range_length == 0) - break; + { + if (readp >= endp) + break; + else + continue; + } /* We don't use alloca for these temporary structures because the total number of them can be quite large. */ diff --git a/libdw/dwarf_getmacros.c b/libdw/dwarf_getmacros.c index fd929669..a3a78884 100644 --- a/libdw/dwarf_getmacros.c +++ b/libdw/dwarf_getmacros.c @@ -124,17 +124,24 @@ get_macinfo_table (Dwarf *dbg, Dwarf_Word macoff, Dwarf_Die *cudie) = INTUSE(dwarf_attr) (cudie, DW_AT_stmt_list, &attr_mem); Dwarf_Off line_offset = (Dwarf_Off) -1; if (attr != NULL) - if (unlikely (INTUSE(dwarf_formudata) (attr, &line_offset) != 0)) - return NULL; + { + if (unlikely (INTUSE(dwarf_formudata) (attr, &line_offset) != 0)) + return NULL; + } + else if (cudie->cu->unit_type == DW_UT_split_compile + && dbg->sectiondata[IDX_debug_line] != NULL) + line_offset = 0; Dwarf_Macro_Op_Table *table = libdw_alloc (dbg, Dwarf_Macro_Op_Table, macinfo_data_size, 1); memcpy (table, macinfo_data, macinfo_data_size); + table->dbg = dbg; table->offset = macoff; table->sec_index = IDX_debug_macinfo; table->line_offset = line_offset; - table->is_64bit = cudie->cu->address_size == 8; + table->address_size = cudie->cu->address_size; + table->offset_size = cudie->cu->offset_size; table->comp_dir = __libdw_getcompdir (cudie); return table; @@ -182,6 +189,15 @@ get_table_for_offset (Dwarf *dbg, Dwarf_Word macoff, return NULL; } + uint8_t address_size; + if (cudie != NULL) + address_size = cudie->cu->address_size; + else + { + char *ident = elf_getident (dbg->elf, NULL); + address_size = ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; + } + /* """The macinfo entry types defined in this standard may, but might not, be described in the table""". @@ -253,12 +269,14 @@ get_table_for_offset (Dwarf *dbg, Dwarf_Word macoff, macop_table_size, 1); *table = (Dwarf_Macro_Op_Table) { + .dbg = dbg, .offset = macoff, .sec_index = IDX_debug_macro, .line_offset = line_offset, .header_len = readp - startp, .version = version, - .is_64bit = is_64bit, + .address_size = address_size, + .offset_size = is_64bit ? 8 : 4, /* NULL if CUDIE is NULL or DW_AT_comp_dir is absent. */ .comp_dir = __libdw_getcompdir (cudie), @@ -368,7 +386,7 @@ read_macros (Dwarf *dbg, int sec_index, .dbg = dbg, .sec_idx = sec_index, .version = table->version, - .offset_size = table->is_64bit ? 8 : 4, + .offset_size = table->offset_size, .str_off_base = str_offsets_base_off (dbg, (cudie != NULL ? cudie->cu: NULL)), .startp = (void *) startp + offset, diff --git a/libdw/dwarf_macro_getsrcfiles.c b/libdw/dwarf_macro_getsrcfiles.c index 3b1794b1..11c587af 100644 --- a/libdw/dwarf_macro_getsrcfiles.c +++ b/libdw/dwarf_macro_getsrcfiles.c @@ -36,6 +36,9 @@ int dwarf_macro_getsrcfiles (Dwarf *dbg, Dwarf_Macro *macro, Dwarf_Files **files, size_t *nfiles) { + /* This was needed before Dwarf_Macro_Op_Table stored the Dwarf handle. */ + (void)dbg; + /* macro is declared NN */ Dwarf_Macro_Op_Table *const table = macro->table; if (table->files == NULL) @@ -71,9 +74,8 @@ dwarf_macro_getsrcfiles (Dwarf *dbg, Dwarf_Macro *macro, the same unit through dwarf_getsrcfiles, and the file names will be broken. */ - if (__libdw_getsrclines (dbg, line_offset, table->comp_dir, - table->is_64bit ? 8 : 4, - NULL, &table->files) < 0) + if (__libdw_getsrclines (table->dbg, line_offset, table->comp_dir, + table->address_size, NULL, &table->files) < 0) table->files = (void *) -1; } diff --git a/libdw/dwarf_macro_param2.c b/libdw/dwarf_macro_param2.c index cc902c99..f12e6f9a 100644 --- a/libdw/dwarf_macro_param2.c +++ b/libdw/dwarf_macro_param2.c @@ -44,12 +44,21 @@ dwarf_macro_param2 (Dwarf_Macro *macro, Dwarf_Word *paramp, const char **strp) if (dwarf_macro_param (macro, 1, ¶m) != 0) return -1; - if (param.form == DW_FORM_string - || param.form == DW_FORM_strp) + switch (param.form) { - *strp = dwarf_formstring (¶m); - return 0; + /* String forms allowed by libdw_valid_user_form. */ + case DW_FORM_line_strp: + case DW_FORM_string: + case DW_FORM_strp: + case DW_FORM_strp_sup: + case DW_FORM_strx: + case DW_FORM_strx1: + case DW_FORM_strx2: + case DW_FORM_strx3: + case DW_FORM_strx4: + *strp = dwarf_formstring (¶m); + return 0; + default: + return dwarf_formudata (¶m, paramp); } - else - return dwarf_formudata (¶m, paramp); } diff --git a/libdw/dwarf_ranges.c b/libdw/dwarf_ranges.c index 520f9ffe..b853e4b9 100644 --- a/libdw/dwarf_ranges.c +++ b/libdw/dwarf_ranges.c @@ -489,10 +489,10 @@ dwarf_ranges (Dwarf_Die *die, ptrdiff_t offset, Dwarf_Addr *basep, size_t secidx = (cu->version < 5 ? IDX_debug_ranges : IDX_debug_rnglists); const Elf_Data *d = cu->dbg->sectiondata[secidx]; - if (d == NULL && cu->unit_type == DW_UT_split_compile) + if (cu->unit_type == DW_UT_split_compile && (d == NULL || is_cudie (die))) { Dwarf_CU *skel = __libdw_find_split_unit (cu); - if (skel != NULL) + if (skel != NULL && skel->dbg->sectiondata[secidx] != NULL) { cu = skel; d = cu->dbg->sectiondata[secidx]; diff --git a/libdw/libdwP.h b/libdw/libdwP.h index 5cbdc279..aef42267 100644 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@ -82,6 +82,8 @@ enum IDX_debug_macro, IDX_debug_ranges, IDX_debug_rnglists, + IDX_debug_cu_index, + IDX_debug_tu_index, IDX_gnu_debugaltlink, IDX_last }; @@ -166,6 +168,10 @@ struct Dwarf /* The underlying ELF file. */ Elf *elf; + /* The (absolute) path to the ELF file, if known. To help locating + dwp files. */ + char *elfpath; + /* The (absolute) path to the ELF dir, if known. To help locating alt and dwo files. */ char *debugdir; @@ -508,6 +514,8 @@ typedef struct /* Prototype table. */ typedef struct { + Dwarf *dbg; + /* Offset of .debug_macro section. */ Dwarf_Off offset; @@ -526,7 +534,8 @@ typedef struct Dwarf_Half header_len; uint16_t version; - bool is_64bit; + uint8_t address_size; + uint8_t offset_size; uint8_t sec_index; /* IDX_debug_macro or IDX_debug_macinfo. */ /* Shows where in TABLE each opcode is defined. Since opcode 0 is @@ -1345,9 +1354,13 @@ __libdw_link_skel_split (Dwarf_CU *skel, Dwarf_CU *split) int __libdw_addrx (Dwarf_CU *cu, Dwarf_Word idx, Dwarf_Addr *addr); -/* Helper function to set debugdir field in Dwarf, used from dwarf_begin_elf +/* Helper function to set elfpath field in Dwarf, used from dwarf_begin_elf and libdwfl process_file. */ -char * __libdw_debugdir (int fd); +char * __libdw_elfpath (int fd); + +/* Helper function to set debugdir field in Dwarf after elfpath field has been + set. */ +void __libdw_set_debugdir (Dwarf *dbg); /* Given the directory of a debug file, an absolute or relative dir diff --git a/libdw/libdw_find_split_unit.c b/libdw/libdw_find_split_unit.c index a22e7bc9..533f8072 100644 --- a/libdw/libdw_find_split_unit.c +++ b/libdw/libdw_find_split_unit.c @@ -41,7 +41,7 @@ #include <sys/stat.h> #include <fcntl.h> -void +static void try_split_file (Dwarf_CU *cu, const char *dwo_path) { int split_fd = open (dwo_path, O_RDONLY); diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index daef2828..abbf0dfe 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,16 @@ +2023-09-27 Omar Sandoval <osandov@fb.com> + * dwfl_module.c (__libdwfl_module_free): Free mod->elfpath instead of + mod->elfdir. + * dwfl_module_getdwarf.c (load_dw): Set mod->dw->elfpath and call + __libdw_set_debugdir instead of setting mod->dw->debugdir. + * libdwflP.h (Dwfl_Module): Replace elfdir with elfpath. + * offline.c (process_elf): Call __libdw_elfpath and set mod->elfpath + instead of mod->elfdir. + +2023-04-24 John Gallagher <john@gllghr.com> + + * gzip.c: Fix memory leak in unzip() + 2023-02-06 Mark Wielaard <mark@klomp.org> * libdwfl.h: Guard debuginfod_client typedef with diff --git a/libdwfl/dwfl_module.c b/libdwfl/dwfl_module.c index 221d726d..c4d872d4 100644 --- a/libdwfl/dwfl_module.c +++ b/libdwfl/dwfl_module.c @@ -119,7 +119,7 @@ __libdwfl_module_free (Dwfl_Module *mod) free (mod->reloc_info); free (mod->name); - free (mod->elfdir); + free (mod->elfpath); free (mod); } diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c index 9ba499bb..6f98c02b 100644 --- a/libdwfl/dwfl_module_getdwarf.c +++ b/libdwfl/dwfl_module_getdwarf.c @@ -1362,11 +1362,14 @@ load_dw (Dwfl_Module *mod, struct dwfl_file *debugfile) } /* We might have already closed the fd when we asked dwarf_begin_elf to - create an Dwarf. Help out a little in case we need to find an alt or - dwo file later. */ - if (mod->dw->debugdir == NULL && mod->elfdir != NULL + create an Dwarf. Help out a little in case we need to find an alt, + dwo, or dwp file later. */ + if (mod->dw->elfpath == NULL && mod->elfpath != NULL && debugfile == &mod->main) - mod->dw->debugdir = strdup (mod->elfdir); + { + mod->dw->elfpath = strdup (mod->elfpath); + __libdw_set_debugdir (mod->dw); + } /* Until we have iterated through all CU's, we might do lazy lookups. */ mod->lazycu = 1; diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c index 53013be3..002afc4e 100644 --- a/libdwfl/gzip.c +++ b/libdwfl/gzip.c @@ -227,7 +227,7 @@ unzip (int fd, off_t start_offset, #endif ) /* Not a compressed file. */ - return DWFL_E_BADELF; + return fail (&state, DWFL_E_BADELF); #ifdef ZSTD /* special case for libzstd since it is slightly different from the diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h index cdc528d0..b3dfea1d 100644 --- a/libdwfl/libdwflP.h +++ b/libdwfl/libdwflP.h @@ -186,7 +186,7 @@ struct Dwfl_Module Elf_Data *symxndxdata; /* Data in the extended section index table. */ Elf_Data *aux_symxndxdata; /* Data in the extended auxiliary table. */ - char *elfdir; /* The dir where we found the main Elf. */ + char *elfpath; /* The path where we found the main Elf. */ Dwarf *dw; /* libdw handle for its debugging info. */ Dwarf *alt; /* Dwarf used for dwarf_setalt, or NULL. */ diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c index 06d85eb6..76f23354 100644 --- a/libdwfl/link_map.c +++ b/libdwfl/link_map.c @@ -331,11 +331,17 @@ report_r_debug (uint_fast8_t elfclass, uint_fast8_t elfdata, int result = 0; /* There can't be more elements in the link_map list than there are - segments. DWFL->lookup_elts is probably twice that number, so it - is certainly above the upper bound. If we iterate too many times, - there must be a loop in the pointers due to link_map clobberation. */ + segments. A segment is created for each PT_LOAD and there can be + up to 5 per module (-z separate-code, tends to create four LOAD + segments, gold has -z text-unlikely-segment, which might result + in creating that number of load segments) DWFL->lookup_elts is + probably twice the number of modules, so that multiplied by max + PT_LOADs is certainly above the upper bound. If we iterate too + many times, there must be a loop in the pointers due to link_map + clobberation. */ +#define MAX_PT_LOAD 5 size_t iterations = 0; - while (next != 0 && ++iterations < dwfl->lookup_elts) + while (next != 0 && ++iterations < dwfl->lookup_elts * MAX_PT_LOAD) { if (read_addrs (&memory_closure, elfclass, elfdata, &buffer, &buffer_available, next, &read_vaddr, diff --git a/libdwfl/offline.c b/libdwfl/offline.c index e090b42b..e9ab0cc1 100644 --- a/libdwfl/offline.c +++ b/libdwfl/offline.c @@ -50,10 +50,11 @@ dwfl_offline_section_address (Dwfl_Module *mod, const GElf_Shdr *shdr __attribute__ ((unused)), Dwarf_Addr *addr) { - assert (mod->e_type == ET_REL); - assert (shdr->sh_addr == 0); - assert (shdr->sh_flags & SHF_ALLOC); - assert (shndx != 0); + if (mod->e_type != ET_REL + || shdr->sh_addr != 0 + || !(shdr->sh_flags & SHF_ALLOC) + || shndx == 0) + return -1; if (mod->debug.elf == NULL) /* We are only here because sh_addr is zero even though layout is complete. @@ -151,9 +152,9 @@ process_elf (Dwfl *dwfl, const char *name, const char *file_name, int fd, /* Don't keep the file descriptor around. */ if (mod->main.fd != -1 && elf_cntl (mod->main.elf, ELF_C_FDREAD) == 0) { - /* Grab the dir path in case we want to report this file as + /* Grab the path in case we want to report this file as Dwarf later. */ - mod->elfdir = __libdw_debugdir (mod->main.fd); + mod->elfpath = __libdw_elfpath (mod->main.fd); close (mod->main.fd); mod->main.fd = -1; } diff --git a/libebl/eblsectiontypename.c b/libebl/eblsectiontypename.c index 2008b95a..ade25d4a 100644 --- a/libebl/eblsectiontypename.c +++ b/libebl/eblsectiontypename.c @@ -61,7 +61,8 @@ ebl_section_type_name (Ebl *ebl, int section, char *buf, size_t len) KNOWNSTYPE (FINI_ARRAY), KNOWNSTYPE (PREINIT_ARRAY), KNOWNSTYPE (GROUP), - KNOWNSTYPE (SYMTAB_SHNDX) + KNOWNSTYPE (SYMTAB_SHNDX), + KNOWNSTYPE (RELR) }; /* Handle standard names. */ diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 8cc3c53c..0e314ab6 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,11 @@ +2023-09-09 Yanglin Xun <xunyanglins@gmail.com> + + * libelf.h: Fix typo in comment + +2023-04-01 Youling Tang <tangyouling@loongson.cn> + + * elf.h: Update from glibc. + 2023-03-03 Mark Wielaard <mark@klomp.org> * libelf.h: Define ELFCOMPRESS_ZSTD if undefined. diff --git a/libelf/Makefile.am b/libelf/Makefile.am index aabce43e..3402863e 100644 --- a/libelf/Makefile.am +++ b/libelf/Makefile.am @@ -41,7 +41,7 @@ include_HEADERS = libelf.h gelf.h nlist.h noinst_HEADERS = abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \ version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \ - chdr_xlate.h + chdr_xlate.h elf32_getchdr.h if INSTALL_ELFH include_HEADERS += elf.h diff --git a/libelf/elf.h b/libelf/elf.h index da41bad3..7b4a8fe4 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -1,5 +1,5 @@ /* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995-2022 Free Software Foundation, Inc. + Copyright (C) 1995-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -210,7 +210,7 @@ typedef struct #define EM_68HC12 53 /* Motorola M68HC12 */ #define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */ #define EM_PCP 55 /* Siemens PCP */ -#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ +#define EM_NCPU 56 /* Sony nCPU embedded RISC */ #define EM_NDR1 57 /* Denso NDR1 microprocessor */ #define EM_STARCORE 58 /* Motorola Start*Core processor */ #define EM_ME16 59 /* Toyota ME16 processor */ @@ -559,7 +559,7 @@ typedef struct /* Possible bitmasks for si_flags. */ #define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ -#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ +#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-through symbol for translator */ #define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ #define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy loaded */ @@ -728,6 +728,7 @@ typedef struct #define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ #define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ #define PT_GNU_PROPERTY 0x6474e553 /* GNU property */ +#define PT_GNU_SFRAME 0x6474e554 /* SFrame segment. */ #define PT_LOSUNW 0x6ffffffa #define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ #define PT_SUNWSTACK 0x6ffffffb /* Stack segment */ @@ -1223,6 +1224,9 @@ typedef struct #define AT_HWCAP2 26 /* More machine-dependent hints about processor capabilities. */ +#define AT_RSEQ_FEATURE_SIZE 27 /* rseq supported feature size. */ +#define AT_RSEQ_ALIGN 28 /* rseq allocation alignment. */ + #define AT_EXECFN 31 /* Filename of executable. */ /* Pointer to the global system page used for system calls and other @@ -1681,11 +1685,25 @@ typedef struct #define EF_MIPS_PIC 2 /* Contains PIC code. */ #define EF_MIPS_CPIC 4 /* Uses PIC calling sequence. */ #define EF_MIPS_XGOT 8 -#define EF_MIPS_64BIT_WHIRL 16 +#define EF_MIPS_UCODE 16 #define EF_MIPS_ABI2 32 #define EF_MIPS_ABI_ON32 64 +#define EF_MIPS_OPTIONS_FIRST 0x00000080 /* Process the .MIPS.options + section first by ld. */ +#define EF_MIPS_32BITMODE 0x00000100 /* Indicates code compiled for + a 64-bit machine in 32-bit + mode (regs are 32-bits + wide). */ #define EF_MIPS_FP64 512 /* Uses FP64 (12 callee-saved). */ #define EF_MIPS_NAN2008 1024 /* Uses IEEE 754-2008 NaN encoding. */ +#define EF_MIPS_ARCH_ASE 0x0f000000 /* Architectural Extensions + used by this file. */ +#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 /* Use MDMX multimedia + extensions. */ +#define EF_MIPS_ARCH_ASE_M16 0x04000000 /* Use MIPS-16 ISA + extensions. */ +#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000 /* Use MICROMIPS ISA + extensions. */ #define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level. */ /* Legal values for MIPS architecture level. */ @@ -1699,6 +1717,38 @@ typedef struct #define EF_MIPS_ARCH_64 0x60000000 /* MIPS64 code. */ #define EF_MIPS_ARCH_32R2 0x70000000 /* MIPS32r2 code. */ #define EF_MIPS_ARCH_64R2 0x80000000 /* MIPS64r2 code. */ +#define EF_MIPS_ARCH_32R6 0x90000000 /* MIPS32r6 code. */ +#define EF_MIPS_ARCH_64R6 0xa0000000 /* MIPS64r6 code. */ +#define EF_MIPS_ABI 0x0000F000 /* The ABI of the file. Also + see EF_MIPS_ABI2 above. */ +#define EF_MIPS_ABI_O32 0x00001000 /* The original o32 abi. */ +#define EF_MIPS_ABI_O64 0x00002000 /* O32 extended to work on + 64 bit architectures. */ +#define EF_MIPS_ABI_EABI32 0x00003000 /* EABI in 32 bit mode. */ +#define EF_MIPS_ABI_EABI64 0x00004000 /* EABI in 64 bit mode. */ +#define EF_MIPS_MACH 0x00FF0000 +#define EF_MIPS_MACH_3900 0x00810000 +#define EF_MIPS_MACH_4010 0x00820000 +#define EF_MIPS_MACH_4100 0x00830000 +#define EF_MIPS_MACH_ALLEGREX 0x00840000 +#define EF_MIPS_MACH_4650 0x00850000 +#define EF_MIPS_MACH_4120 0x00870000 +#define EF_MIPS_MACH_4111 0x00880000 +#define EF_MIPS_MACH_SB1 0x008a0000 +#define EF_MIPS_MACH_OCTEON 0x008b0000 +#define EF_MIPS_MACH_XLR 0x008c0000 +#define EF_MIPS_MACH_OCTEON2 0x008d0000 +#define EF_MIPS_MACH_OCTEON3 0x008e0000 +#define EF_MIPS_MACH_5400 0x00910000 +#define EF_MIPS_MACH_5900 0x00920000 +#define EF_MIPS_MACH_IAMR2 0x00930000 +#define EF_MIPS_MACH_5500 0x00980000 +#define EF_MIPS_MACH_9000 0x00990000 +#define EF_MIPS_MACH_LS2E 0x00A00000 +#define EF_MIPS_MACH_LS2F 0x00A10000 +#define EF_MIPS_MACH_GS464 0x00A20000 +#define EF_MIPS_MACH_GS464E 0x00A30000 +#define EF_MIPS_MACH_GS264E 0x00A40000 /* The following are unofficial names and should not be used. */ @@ -1759,6 +1809,7 @@ typedef struct #define SHT_MIPS_EH_REGION 0x70000027 #define SHT_MIPS_XLATE_OLD 0x70000028 #define SHT_MIPS_PDR_EXCEPTION 0x70000029 +#define SHT_MIPS_ABIFLAGS 0x7000002a #define SHT_MIPS_XHASH 0x7000002b /* Legal values for sh_flags field of Elf32_Shdr. */ @@ -1927,10 +1978,68 @@ typedef struct #define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ #define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ #define R_MIPS_GLOB_DAT 51 +#define R_MIPS_PC21_S2 60 +#define R_MIPS_PC26_S2 61 +#define R_MIPS_PC18_S3 62 +#define R_MIPS_PC19_S2 63 +#define R_MIPS_PCHI16 64 +#define R_MIPS_PCLO16 65 +#define R_MIPS16_26 100 +#define R_MIPS16_GPREL 101 +#define R_MIPS16_GOT16 102 +#define R_MIPS16_CALL16 103 +#define R_MIPS16_HI16 104 +#define R_MIPS16_LO16 105 +#define R_MIPS16_TLS_GD 106 +#define R_MIPS16_TLS_LDM 107 +#define R_MIPS16_TLS_DTPREL_HI16 108 +#define R_MIPS16_TLS_DTPREL_LO16 109 +#define R_MIPS16_TLS_GOTTPREL 110 +#define R_MIPS16_TLS_TPREL_HI16 111 +#define R_MIPS16_TLS_TPREL_LO16 112 +#define R_MIPS16_PC16_S1 113 #define R_MIPS_COPY 126 #define R_MIPS_JUMP_SLOT 127 +#define R_MIPS_RELATIVE 128 +#define R_MICROMIPS_26_S1 133 +#define R_MICROMIPS_HI16 134 +#define R_MICROMIPS_LO16 135 +#define R_MICROMIPS_GPREL16 136 +#define R_MICROMIPS_LITERAL 137 +#define R_MICROMIPS_GOT16 138 +#define R_MICROMIPS_PC7_S1 139 +#define R_MICROMIPS_PC10_S1 140 +#define R_MICROMIPS_PC16_S1 141 +#define R_MICROMIPS_CALL16 142 +#define R_MICROMIPS_GOT_DISP 145 +#define R_MICROMIPS_GOT_PAGE 146 +#define R_MICROMIPS_GOT_OFST 147 +#define R_MICROMIPS_GOT_HI16 148 +#define R_MICROMIPS_GOT_LO16 149 +#define R_MICROMIPS_SUB 150 +#define R_MICROMIPS_HIGHER 151 +#define R_MICROMIPS_HIGHEST 152 +#define R_MICROMIPS_CALL_HI16 153 +#define R_MICROMIPS_CALL_LO16 154 +#define R_MICROMIPS_SCN_DISP 155 +#define R_MICROMIPS_JALR 156 +#define R_MICROMIPS_HI0_LO16 157 +#define R_MICROMIPS_TLS_GD 162 +#define R_MICROMIPS_TLS_LDM 163 +#define R_MICROMIPS_TLS_DTPREL_HI16 164 +#define R_MICROMIPS_TLS_DTPREL_LO16 165 +#define R_MICROMIPS_TLS_GOTTPREL 166 +#define R_MICROMIPS_TLS_TPREL_HI16 169 +#define R_MICROMIPS_TLS_TPREL_LO16 170 +#define R_MICROMIPS_GPREL7_S2 172 +#define R_MICROMIPS_PC23_S2 173 +#define R_MIPS_PC32 248 +#define R_MIPS_EH 249 +#define R_MIPS_GNU_REL16_S2 250 +#define R_MIPS_GNU_VTINHERIT 253 +#define R_MIPS_GNU_VTENTRY 254 /* Keep this the last entry. */ -#define R_MIPS_NUM 128 +#define R_MIPS_NUM 255 /* Legal values for p_type field of Elf32_Phdr. */ @@ -3998,8 +4107,11 @@ enum #define R_RISCV_SET32 56 #define R_RISCV_32_PCREL 57 #define R_RISCV_IRELATIVE 58 +#define R_RISCV_PLT32 59 +#define R_RISCV_SET_ULEB128 60 +#define R_RISCV_SUB_ULEB128 61 -#define R_RISCV_NUM 59 +#define R_RISCV_NUM 62 /* RISC-V specific values for the st_other field. */ #define STO_RISCV_VARIANT_CC 0x80 /* Function uses variant calling @@ -4159,6 +4271,55 @@ enum #define R_LARCH_GNU_VTINHERIT 57 #define R_LARCH_GNU_VTENTRY 58 +/* reserved 59-63 */ + +#define R_LARCH_B16 64 +#define R_LARCH_B21 65 +#define R_LARCH_B26 66 +#define R_LARCH_ABS_HI20 67 +#define R_LARCH_ABS_LO12 68 +#define R_LARCH_ABS64_LO20 69 +#define R_LARCH_ABS64_HI12 70 +#define R_LARCH_PCALA_HI20 71 +#define R_LARCH_PCALA_LO12 72 +#define R_LARCH_PCALA64_LO20 73 +#define R_LARCH_PCALA64_HI12 74 +#define R_LARCH_GOT_PC_HI20 75 +#define R_LARCH_GOT_PC_LO12 76 +#define R_LARCH_GOT64_PC_LO20 77 +#define R_LARCH_GOT64_PC_HI12 78 +#define R_LARCH_GOT_HI20 79 +#define R_LARCH_GOT_LO12 80 +#define R_LARCH_GOT64_LO20 81 +#define R_LARCH_GOT64_HI12 82 +#define R_LARCH_TLS_LE_HI20 83 +#define R_LARCH_TLS_LE_LO12 84 +#define R_LARCH_TLS_LE64_LO20 85 +#define R_LARCH_TLS_LE64_HI12 86 +#define R_LARCH_TLS_IE_PC_HI20 87 +#define R_LARCH_TLS_IE_PC_LO12 88 +#define R_LARCH_TLS_IE64_PC_LO20 89 +#define R_LARCH_TLS_IE64_PC_HI12 90 +#define R_LARCH_TLS_IE_HI20 91 +#define R_LARCH_TLS_IE_LO12 92 +#define R_LARCH_TLS_IE64_LO20 93 +#define R_LARCH_TLS_IE64_HI12 94 +#define R_LARCH_TLS_LD_PC_HI20 95 +#define R_LARCH_TLS_LD_HI20 96 +#define R_LARCH_TLS_GD_PC_HI20 97 +#define R_LARCH_TLS_GD_HI20 98 +#define R_LARCH_32_PCREL 99 +#define R_LARCH_RELAX 100 +#define R_LARCH_DELETE 101 +#define R_LARCH_ALIGN 102 +#define R_LARCH_PCREL20_S2 103 +#define R_LARCH_CFA 104 +#define R_LARCH_ADD6 105 +#define R_LARCH_SUB6 106 +#define R_LARCH_ADD_ULEB128 107 +#define R_LARCH_SUB_ULEB128 108 +#define R_LARCH_64_PCREL 109 + /* ARC specific declarations. */ /* Processor specific flags for the Ehdr e_flags field. */ diff --git a/libelf/elf32_getchdr.c b/libelf/elf32_getchdr.c index 982a614c..41591300 100644 --- a/libelf/elf32_getchdr.c +++ b/libelf/elf32_getchdr.c @@ -38,46 +38,8 @@ # define LIBELFBITS 32 #endif +#define ELF_WRLOCK_HELD 1 +#include "elf32_getchdr.h" -ElfW2(LIBELFBITS,Chdr) * -elfw2(LIBELFBITS,getchdr) (Elf_Scn *scn) -{ - ElfW2(LIBELFBITS,Shdr) *shdr = elfw2(LIBELFBITS,getshdr) (scn); - if (shdr == NULL) - return NULL; - - /* Must have SHF_COMPRESSED flag set. Allocated or no bits sections - can never be compressed. */ - if ((shdr->sh_flags & SHF_ALLOC) != 0) - { - __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS); - return NULL; - } - - if (shdr->sh_type == SHT_NULL - || shdr->sh_type == SHT_NOBITS) - { - __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE); - return NULL; - } - - if ((shdr->sh_flags & SHF_COMPRESSED) == 0) - { - __libelf_seterrno (ELF_E_NOT_COMPRESSED); - return NULL; - } - - /* This makes sure the data is in the correct format, so we don't - need to swap fields. */ - Elf_Data *d = elf_getdata (scn, NULL); - if (d == NULL) - return NULL; - - if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL) - { - __libelf_seterrno (ELF_E_INVALID_DATA); - return NULL; - } - - return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf; -} +#define ELF_WRLOCK_HELD 0 +#include "elf32_getchdr.h"
\ No newline at end of file diff --git a/libelf/elf32_getchdr.h b/libelf/elf32_getchdr.h new file mode 100644 index 00000000..04d47e7a --- /dev/null +++ b/libelf/elf32_getchdr.h @@ -0,0 +1,61 @@ +#undef ADD_ROUTINE_PREFIX +#undef ADD_ROUTINE_SUFFIX + +#if ELF_WRLOCK_HELD +#define CONCAT(x,y) x##y +#define ADD_ROUTINE_PREFIX(y) CONCAT(__,y) +#define ADD_ROUTINE_SUFFIX(x) x ## _wrlock +#define INTERNAL internal_function +#else +#define ADD_ROUTINE_PREFIX(y) y +#define ADD_ROUTINE_SUFFIX(x) x +#define INTERNAL +#endif + +ElfW2(LIBELFBITS,Chdr) * +INTERNAL +ADD_ROUTINE_PREFIX(elfw2(LIBELFBITS, ADD_ROUTINE_SUFFIX(getchdr))) (Elf_Scn *scn) +{ + + ElfW2(LIBELFBITS,Shdr) *shdr = ADD_ROUTINE_PREFIX(elfw2(LIBELFBITS, ADD_ROUTINE_SUFFIX(getshdr)))(scn); + + if (shdr == NULL) + return NULL; + + /* Must have SHF_COMPRESSED flag set. Allocated or no bits sections + can never be compressed. */ + if ((shdr->sh_flags & SHF_ALLOC) != 0) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS); + return NULL; + } + + if (shdr->sh_type == SHT_NULL + || shdr->sh_type == SHT_NOBITS) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE); + return NULL; + } + + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + { + __libelf_seterrno (ELF_E_NOT_COMPRESSED); + return NULL; + } + + /* This makes sure the data is in the correct format, so we don't + need to swap fields. */ + Elf_Data *d = ADD_ROUTINE_PREFIX(ADD_ROUTINE_SUFFIX(elf_getdata)) (scn, NULL); + if (d == NULL) + return NULL; + + if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL) + { + __libelf_seterrno (ELF_E_INVALID_DATA); + return NULL; + } + + return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf; +} +#undef INTERNAL +#undef ELF_WRLOCK_HELD
\ No newline at end of file diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c index 6c06e5e4..3594e8ba 100644 --- a/libelf/elf32_updatenull.c +++ b/libelf/elf32_updatenull.c @@ -256,6 +256,9 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) case SHT_SUNW_syminfo: sh_entsize = elf_typesize (LIBELFBITS, ELF_T_SYMINFO, 1); break; + case SHT_RELR: + sh_entsize = elf_typesize (LIBELFBITS, ELF_T_RELR, 1); + break; default: break; } @@ -404,7 +407,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) else { ElfW2(LIBELFBITS,Chdr) *chdr; - chdr = elfw2(LIBELFBITS,getchdr) (scn); + chdr = __elfw2(LIBELFBITS,getchdr_wrlock) (scn); if (unlikely (chdr == NULL)) return -1; sh_size = chdr->ch_size; diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c index e3ecab32..0ad6a32a 100644 --- a/libelf/elf_compress.c +++ b/libelf/elf_compress.c @@ -1,5 +1,6 @@ /* Compress or decompress a section. Copyright (C) 2015, 2016 Red Hat, Inc. + Copyright (C) 2023, Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -523,10 +524,20 @@ __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align, if (scn->data_base != scn->rawdata_base) free (scn->data_base); scn->data_base = NULL; + if (scn->zdata_base != buf + && scn->zdata_base != scn->rawdata_base) + { + free (scn->zdata_base); + scn->zdata_base = NULL; + } if (scn->elf->map_address == NULL || scn->rawdata_base == scn->zdata_base || (scn->flags & ELF_F_MALLOCED) != 0) - free (scn->rawdata_base); + { + free (scn->rawdata_base); + scn->rawdata_base = NULL; + scn->zdata_base = NULL; + } scn->rawdata_base = buf; scn->flags |= ELF_F_MALLOCED; @@ -677,6 +688,7 @@ elf_compress (Elf_Scn *scn, int type, unsigned int flags) data around, but since that might have been multiple Elf_Data buffers let the user uncompress it explicitly again if they want it to simplify bookkeeping. */ + free (scn->zdata_base); scn->zdata_base = NULL; return 1; diff --git a/libelf/elf_end.c b/libelf/elf_end.c index 5c451f36..80f4d13f 100644 --- a/libelf/elf_end.c +++ b/libelf/elf_end.c @@ -1,5 +1,6 @@ /* Free resources associated with Elf descriptor. Copyright (C) 1998,1999,2000,2001,2002,2004,2005,2007,2015,2016 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 1998. @@ -32,12 +33,22 @@ #endif #include <assert.h> +#include <search.h> #include <stddef.h> #include <stdlib.h> #include "libelfP.h" +static void +free_chunk (void *n) +{ + Elf_Data_Chunk *rawchunk = (Elf_Data_Chunk *)n; + if (rawchunk->dummy_scn.flags & ELF_F_MALLOCED) + free (rawchunk->data.d.d_buf); + free (rawchunk); +} + int elf_end (Elf *elf) { @@ -71,7 +82,10 @@ elf_end (Elf *elf) elf->state.ar.ar_sym = NULL; if (elf->state.ar.children != NULL) - return 0; + { + rwlock_unlock(elf->lock); + return 0; + } } /* Remove this structure from the children list. */ @@ -112,20 +126,13 @@ elf_end (Elf *elf) case ELF_K_ELF: { - Elf_Data_Chunk *rawchunks + void *rawchunks = (elf->class == ELFCLASS32 || (offsetof (struct Elf, state.elf32.rawchunks) == offsetof (struct Elf, state.elf64.rawchunks)) ? elf->state.elf32.rawchunks : elf->state.elf64.rawchunks); - while (rawchunks != NULL) - { - Elf_Data_Chunk *next = rawchunks->next; - if (rawchunks->dummy_scn.flags & ELF_F_MALLOCED) - free (rawchunks->data.d.d_buf); - free (rawchunks); - rawchunks = next; - } + tdestroy (rawchunks, free_chunk); Elf_ScnList *list = (elf->class == ELFCLASS32 || (offsetof (struct Elf, state.elf32.scns) @@ -153,7 +160,10 @@ elf_end (Elf *elf) rawdata_base. If it is already used it will be freed below. */ if (scn->zdata_base != scn->rawdata_base) - free (scn->zdata_base); + { + free (scn->zdata_base); + scn->zdata_base = NULL; + } /* If the file has the same byte order and the architecture doesn't require overly stringent diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c index 5ebd270f..7c3ac043 100644 --- a/libelf/elf_getdata.c +++ b/libelf/elf_getdata.c @@ -582,4 +582,18 @@ elf_getdata (Elf_Scn *scn, Elf_Data *data) return result; } + +Elf_Data * +internal_function +__elf_getdata_wrlock (Elf_Scn *scn, Elf_Data *data) +{ + Elf_Data *result; + + if (scn == NULL) + return NULL; + + result = __elf_getdata_rdlock (scn, data); + + return result; +} INTDEF(elf_getdata) diff --git a/libelf/elf_getdata_rawchunk.c b/libelf/elf_getdata_rawchunk.c index 5a35ccdc..05ff329c 100644 --- a/libelf/elf_getdata_rawchunk.c +++ b/libelf/elf_getdata_rawchunk.c @@ -1,6 +1,6 @@ /* Return converted data from raw chunk of ELF file. Copyright (C) 2007, 2014, 2015 Red Hat, Inc. - Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org> + Copyright (C) 2022, 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -33,12 +33,28 @@ #include <assert.h> #include <errno.h> +#include <search.h> #include <stdlib.h> #include <string.h> #include "libelfP.h" #include "common.h" +static int +chunk_compare (const void *a, const void *b) +{ + Elf_Data_Chunk *da = (Elf_Data_Chunk *)a; + Elf_Data_Chunk *db = (Elf_Data_Chunk *)b; + + if (da->offset != db->offset) + return da->offset - db->offset; + + if (da->data.d.d_size != db->data.d.d_size) + return da->data.d.d_size - db->data.d.d_size; + + return da->data.d.d_type - db->data.d.d_type; +} + Elf_Data * elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type) { @@ -75,19 +91,27 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type) rwlock_rdlock (elf->lock); /* Maybe we already got this chunk? */ - Elf_Data_Chunk *rawchunks = elf->state.elf.rawchunks; - while (rawchunks != NULL) + Elf_Data_Chunk key; + key.offset = offset; + key.data.d.d_size = size; + key.data.d.d_type = type; + Elf_Data_Chunk **found = tsearch (&key, &elf->state.elf.rawchunks, + &chunk_compare); + if (found == NULL) + goto nomem; + + /* Existing entry. */ + if (*found != &key && *found != NULL) { - if ((rawchunks->offset == offset || size == 0) - && rawchunks->data.d.d_size == size - && rawchunks->data.d.d_type == type) - { - result = &rawchunks->data.d; - goto out; - } - rawchunks = rawchunks->next; + result = &(*found)->data.d; + goto out; } + /* New entry. Note that *found will point to the newly inserted + (dummy) key. We'll replace it with a real rawchunk when that is + setup. Make sure to tdelete the dummy key if anything goes + wrong. */ + size_t align = __libelf_type_align (elf->class, type); if (elf->map_address != NULL) { @@ -112,6 +136,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type) if (rawchunk == NULL) { nomem: + tdelete (&key, &elf->state.elf.rawchunks, &chunk_compare); __libelf_seterrno (ELF_E_NOMEM); goto out; } @@ -122,6 +147,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type) != size)) { /* Something went wrong. */ + tdelete (&key, &elf->state.elf.rawchunks, &chunk_compare); free (rawchunk); __libelf_seterrno (ELF_E_READ_ERROR); goto out; @@ -189,8 +215,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type) rwlock_unlock (elf->lock); rwlock_wrlock (elf->lock); - chunk->next = elf->state.elf.rawchunks; - elf->state.elf.rawchunks = chunk; + *found = chunk; result = &chunk->data.d; out: diff --git a/libelf/elf_newscn.c b/libelf/elf_newscn.c index d6bdf153..ec731f75 100644 --- a/libelf/elf_newscn.c +++ b/libelf/elf_newscn.c @@ -94,9 +94,9 @@ elf_newscn (Elf *elf) 1 #endif ) - newp = calloc (sizeof (Elf_ScnList) - + ((elf->state.elf.scnincr *= 2) - * sizeof (Elf_Scn)), 1); + newp = calloc (1, sizeof (Elf_ScnList) + + ((elf->state.elf.scnincr *= 2) + * sizeof (Elf_Scn))); if (newp == NULL) { __libelf_seterrno (ELF_E_NOMEM); diff --git a/libelf/elf_version.c b/libelf/elf_version.c index 6ec534ab..8296bb65 100644 --- a/libelf/elf_version.c +++ b/libelf/elf_version.c @@ -32,12 +32,21 @@ #endif #include <libelfP.h> +#include <pthread.h> +/* Multiple threads may initialize __libelf_version. + pthread_once() ensures that __libelf_version is initialized only once. */ +once_define(static, version_once); /* Currently selected version. Should be EV_CURRENT. Will be EV_NONE if elf_version () has not been called yet. */ unsigned int __libelf_version = EV_NONE; +static void initialize_version(void) +{ + __libelf_version = EV_CURRENT; +} + unsigned int elf_version (unsigned int version) { @@ -49,7 +58,7 @@ elf_version (unsigned int version) /* Phew, we know this version. */ /* Signal that the version is now initialized. */ - __libelf_version = EV_CURRENT; + once(version_once, initialize_version); /* And return the last (or initial) version. */ return EV_CURRENT; diff --git a/libelf/gelf.h b/libelf/gelf.h index 7a3c87aa..1847021e 100644 --- a/libelf/gelf.h +++ b/libelf/gelf.h @@ -82,6 +82,9 @@ typedef Elf64_Rel GElf_Rel; /* Relocation table entry with addend (in section of type SHT_RELA). */ typedef Elf64_Rela GElf_Rela; +/* Relative relocation entry (in section of type SHT_RELR). */ +typedef Elf64_Relr GElf_Relr; + /* Program segment header. */ typedef Elf64_Phdr GElf_Phdr; diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c index 493d7916..63bcbae5 100644 --- a/libelf/gelf_fsize.c +++ b/libelf/gelf_fsize.c @@ -69,7 +69,8 @@ const size_t __libelf_type_sizes[ELFCLASSNUM - 1][ELF_T_NUM] = [ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \ [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)), \ [ELF_T_CHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Chdr)), \ - [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD) + [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD), \ + [ELF_T_RELR] = ELFW2(LIBELFBITS, FSZ_RELR) TYPE_SIZES (32) }, [ELFCLASS64 - 1] = { diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c index d8ad0634..749da1a1 100644 --- a/libelf/gelf_xlate.c +++ b/libelf/gelf_xlate.c @@ -204,7 +204,8 @@ const xfct_t __elf_xfctstom[ELFCLASSNUM - 1][ELF_T_NUM] = [ELF_T_MOVE] = ElfW2(Bits, cvt_Move), \ [ELF_T_LIB] = ElfW2(Bits, cvt_Lib), \ [ELF_T_AUXV] = ElfW2(Bits, cvt_auxv_t), \ - [ELF_T_CHDR] = ElfW2(Bits, cvt_chdr) + [ELF_T_CHDR] = ElfW2(Bits, cvt_chdr), \ + [ELF_T_RELR] = ElfW2(Bits, cvt_Relr) define_xfcts (32), [ELF_T_GNUHASH] = Elf32_cvt_Word }, diff --git a/libelf/gelf_xlate.h b/libelf/gelf_xlate.h index 3c0e4bf6..d5511c34 100644 --- a/libelf/gelf_xlate.h +++ b/libelf/gelf_xlate.h @@ -36,6 +36,7 @@ FUNDAMENTAL (WORD, Word, LIBELFBITS); FUNDAMENTAL (SWORD, Sword, LIBELFBITS); FUNDAMENTAL (XWORD, Xword, LIBELFBITS); FUNDAMENTAL (SXWORD, Sxword, LIBELFBITS); +FUNDAMENTAL (RELR, Relr, LIBELFBITS); /* The structured types. */ TYPE (Ehdr, LIBELFBITS) diff --git a/libelf/libelf.h b/libelf/libelf.h index 2374a48a..d3f057b4 100644 --- a/libelf/libelf.h +++ b/libelf/libelf.h @@ -69,6 +69,19 @@ #define ELFCOMPRESS_ZSTD 2 /* Zstandard algorithm. */ #endif +#ifndef SHT_RELR + /* So RELR defines/typedefs can be used even with an old system elf.h. */ + #define SHT_RELR 19 /* RELR relative relocations */ + + /* RELR relocation table entry */ + typedef Elf32_Word Elf32_Relr; + typedef Elf64_Xword Elf64_Relr; + + #define DT_RELRSZ 35 /* Total size of RELR relative relocations */ + #define DT_RELR 36 /* Address of RELR relative relocations */ + #define DT_RELRENT 37 /* Size of one RELR relative relocaction */ +#endif + #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) # define __nonnull_attribute__(...) __attribute__ ((__nonnull__ (__VA_ARGS__))) # define __deprecated_attribute__ __attribute__ ((__deprecated__)) @@ -124,6 +137,7 @@ typedef enum ELF_T_CHDR, /* Compressed, Elf32_Chdr, Elf64_Chdr, ... */ ELF_T_NHDR8, /* Special GNU Properties note. Same as Nhdr, except padding. */ + ELF_T_RELR, /* Relative relocation entry. */ /* Keep this the last entry. */ ELF_T_NUM } Elf_Type; @@ -288,7 +302,7 @@ extern Elf_Scn *elf_getscn (Elf *__elf, size_t __index); /* Get section at OFFSET. */ extern Elf_Scn *elf32_offscn (Elf *__elf, Elf32_Off __offset); -/* Similar bug this time the binary calls is ELFCLASS64. */ +/* Similar but this time the binary calls is ELFCLASS64. */ extern Elf_Scn *elf64_offscn (Elf *__elf, Elf64_Off __offset); /* Get index of section. */ diff --git a/libelf/libelf.map b/libelf/libelf.map index 10dc5059..25760bc4 100644 --- a/libelf/libelf.map +++ b/libelf/libelf.map @@ -50,7 +50,6 @@ ELFUTILS_1.0 { elf_rand; elf_rawdata; elf_rawfile; - elf_scncnt; elf_strptr; elf_update; elf_version; diff --git a/libelf/libelfP.h b/libelf/libelfP.h index 6624f38a..ed061abb 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -1,5 +1,6 @@ /* Internal interfaces for libelf. Copyright (C) 1998-2010, 2015, 2016 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. Contributed by Ulrich Drepper <drepper@redhat.com>, 1998. @@ -62,6 +63,7 @@ #define ELF32_FSZ_SWORD 4 #define ELF32_FSZ_XWORD 8 #define ELF32_FSZ_SXWORD 8 +#define ELF32_FSZ_RELR 4 /* Same for 64 bits objects. */ #define ELF64_FSZ_ADDR 8 @@ -71,6 +73,7 @@ #define ELF64_FSZ_SWORD 4 #define ELF64_FSZ_XWORD 8 #define ELF64_FSZ_SXWORD 8 +#define ELF64_FSZ_RELR 8 /* This is an extension of the ELF_F_* enumeration. The values here are @@ -262,11 +265,7 @@ typedef struct Elf_ScnList typedef struct Elf_Data_Chunk { Elf_Data_Scn data; - union - { - Elf_Scn dummy_scn; - struct Elf_Data_Chunk *next; - }; + Elf_Scn dummy_scn; int64_t offset; /* The original raw offset in the Elf image. */ } Elf_Data_Chunk; @@ -324,7 +323,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -343,7 +342,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -368,7 +367,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -515,6 +514,8 @@ extern Elf32_Shdr *__elf32_getshdr_rdlock (Elf_Scn *__scn) internal_function; extern Elf64_Shdr *__elf64_getshdr_rdlock (Elf_Scn *__scn) internal_function; extern Elf32_Shdr *__elf32_getshdr_wrlock (Elf_Scn *__scn) internal_function; extern Elf64_Shdr *__elf64_getshdr_wrlock (Elf_Scn *__scn) internal_function; +extern Elf32_Chdr *__elf32_getchdr_wrlock (Elf_Scn *__scn) internal_function; +extern Elf64_Chdr *__elf64_getchdr_wrlock (Elf_Scn *__scn) internal_function; extern Elf_Scn *__elf_getscn_internal (Elf *__elf, size_t __index) attribute_hidden; extern Elf_Scn *__elf_nextscn_internal (Elf *__elf, Elf_Scn *__scn) @@ -524,6 +525,8 @@ extern Elf_Data *__elf_getdata_internal (Elf_Scn *__scn, Elf_Data *__data) attribute_hidden; extern Elf_Data *__elf_getdata_rdlock (Elf_Scn *__scn, Elf_Data *__data) internal_function; +extern Elf_Data *__elf_getdata_wrlock (Elf_Scn *__scn, Elf_Data *__data) + internal_function; extern Elf_Data *__elf_rawdata_internal (Elf_Scn *__scn, Elf_Data *__data) attribute_hidden; /* Should be called to setup first section data element if diff --git a/patches/libdw-ignore-really-large-discriminator.patch b/patches/libdw-ignore-really-large-discriminator.patch deleted file mode 100644 index d18b7e98..00000000 --- a/patches/libdw-ignore-really-large-discriminator.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6583a5497fb60496ae7f9df9907be1248a339360 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard <mark@klomp.org> -Date: Thu, 26 Oct 2023 16:49:08 +0200 -Subject: [PATCH] libdw: ignore really large discriminator - -llvm can create really large discriminator values. We used to flag those -as invalid when the value wouldn't fit in 24 bits. Just truncate the value. - - * libdw/dwarf_getsrclines.c (add_new_line): Define SETX. - Use SETX to set discriminator. - -https://sourceware.org/bugzilla/show_bug.cgi?id=30967 - -Signed-off-by: Mark Wielaard <mark@klomp.org> ---- - libdw/dwarf_getsrclines.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c -index df003c5f..69e10c7b 100644 ---- a/libdw/dwarf_getsrclines.c -+++ b/libdw/dwarf_getsrclines.c -@@ -129,6 +129,12 @@ add_new_line (struct line_state *state, struct linelist *new_line) - return true; \ - } while (0) - -+ /* Same as above, but don't flag as "invalid" just use truncated -+ value. Used for discriminator for which llvm might use a value -+ that won't fit 24 bits. */ -+#define SETX(field) \ -+ new_line->line.field = state->field; \ -+ - SET (addr); - SET (op_index); - SET (file); -@@ -140,7 +146,7 @@ add_new_line (struct line_state *state, struct linelist *new_line) - SET (prologue_end); - SET (epilogue_begin); - SET (isa); -- SET (discriminator); -+ SETX (discriminator); - SET (context); - SET (function_name); - --- -2.42.0.869.gea05f2083d-goog - @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-03-03 16:09+0100\n" +"POT-Creation-Date: 2023-11-03 17:36+0100\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch <micm@fedoraproject.org>\n" "Language-Team: German\n" @@ -49,7 +49,7 @@ msgstr "" "GARANTIE,\n" "auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n" -#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793 +#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202 #: src/unstrip.c:311 #, c-format msgid "memory exhausted" @@ -553,7 +553,7 @@ msgstr "Kein Backend" #: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79 #: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 -#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81 +#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81 msgid "<unknown>" msgstr "<Unbekannt>" @@ -647,7 +647,7 @@ msgstr "ungültige Grösse des Quell-Operanden" msgid "invalid size of destination operand" msgstr "ungültige Grösse des Ziel-Operanden" -#: libelf/elf_error.c:86 src/readelf.c:6415 +#: libelf/elf_error.c:86 src/readelf.c:6758 #, c-format msgid "invalid encoding" msgstr "ungültige Kodierung" @@ -735,8 +735,8 @@ msgstr "data/scn Unterschied" msgid "invalid section header" msgstr "ungültiger Abschnitts-Header" -#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899 -#: src/readelf.c:11000 src/readelf.c:11188 +#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242 +#: src/readelf.c:11343 src/readelf.c:11531 #, c-format msgid "invalid data" msgstr "Ungültige Daten" @@ -1392,8 +1392,8 @@ msgid "Suppress some error output (counterpart to --verbose)" msgstr "" #. Strings for arguments in help texts. -#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76 -#: src/readelf.c:160 +#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77 +#: src/readelf.c:161 msgid "FILE..." msgstr "DATEI..." @@ -1680,21 +1680,21 @@ msgid "unknown compression type '%s'" msgstr "unbekannter Typ" #. We need at least one input file. -#: src/elfcompress.c:162 src/elfcompress.c:1444 +#: src/elfcompress.c:162 src/elfcompress.c:1447 #, fuzzy, c-format msgid "No input file given" msgstr "Eingabedatei '%s' ignoriert" -#: src/elfcompress.c:168 src/elfcompress.c:1448 +#: src/elfcompress.c:168 src/elfcompress.c:1451 #, c-format msgid "Only one input file allowed together with '-o'" msgstr "" -#: src/elfcompress.c:1405 +#: src/elfcompress.c:1408 msgid "Place (de)compressed output into FILE" msgstr "" -#: src/elfcompress.c:1408 +#: src/elfcompress.c:1411 msgid "" "What type of compression to apply. TYPE can be 'none' (decompress), " "'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-" @@ -1702,297 +1702,297 @@ msgid "" "compression)" msgstr "" -#: src/elfcompress.c:1412 +#: src/elfcompress.c:1415 msgid "" "SECTION name to (de)compress, SECTION is an extended wildcard pattern " "(defaults to '.?(z)debug*')" msgstr "" -#: src/elfcompress.c:1415 +#: src/elfcompress.c:1418 msgid "Print a message for each section being (de)compressed" msgstr "" -#: src/elfcompress.c:1418 +#: src/elfcompress.c:1421 msgid "" "Force compression of section even if it would become larger or update/" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1421 src/strip.c:92 +#: src/elfcompress.c:1424 src/strip.c:92 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "" -#: src/elfcompress.c:1424 +#: src/elfcompress.c:1427 #, fuzzy msgid "Be silent when a section cannot be compressed" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elfcompress.c:1434 +#: src/elfcompress.c:1437 msgid "Compress or decompress sections in an ELF file." msgstr "" -#: src/elflint.c:62 +#: src/elflint.c:63 msgid "Be extremely strict, flag level 2 features." msgstr "" -#: src/elflint.c:63 +#: src/elflint.c:64 msgid "Do not print anything if successful" msgstr "Gebe nichts aus, wenn erfolgreich" -#: src/elflint.c:64 +#: src/elflint.c:65 msgid "Binary is a separate debuginfo file" msgstr "" -#: src/elflint.c:66 +#: src/elflint.c:67 msgid "" "Binary has been created with GNU ld and is therefore known to be broken in " "certain ways" msgstr "" #. Short description of program. -#: src/elflint.c:72 +#: src/elflint.c:73 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" -#: src/elflint.c:153 src/readelf.c:391 +#: src/elflint.c:154 src/readelf.c:413 #, fuzzy, c-format msgid "cannot open input file '%s'" msgstr "Kann Eingabedatei nicht öffnen" -#: src/elflint.c:160 +#: src/elflint.c:161 #, fuzzy, c-format msgid "cannot generate Elf descriptor for '%s': %s\n" msgstr "kann Elf-Deskriptor nicht erzeugen: %s\n" -#: src/elflint.c:179 +#: src/elflint.c:180 #, c-format msgid "error while closing Elf descriptor: %s\n" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/elflint.c:183 +#: src/elflint.c:184 msgid "No errors" msgstr "Keine Fehler" -#: src/elflint.c:218 src/readelf.c:603 +#: src/elflint.c:219 src/readelf.c:625 msgid "Missing file name.\n" msgstr "Dateiname fehlt.\n" -#: src/elflint.c:283 +#: src/elflint.c:284 #, c-format msgid " error while freeing sub-ELF descriptor: %s\n" msgstr "" #. We cannot do anything. -#: src/elflint.c:291 +#: src/elflint.c:292 #, fuzzy, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "Keine ELF-Datei - sie hat die falschen Magic Bytes am Anfang\n" -#: src/elflint.c:357 +#: src/elflint.c:358 #, c-format msgid "e_ident[%d] == %d is no known class\n" msgstr "" -#: src/elflint.c:362 +#: src/elflint.c:363 #, c-format msgid "e_ident[%d] == %d is no known data encoding\n" msgstr "" -#: src/elflint.c:366 +#: src/elflint.c:367 #, c-format msgid "unknown ELF header version number e_ident[%d] == %d\n" msgstr "" -#: src/elflint.c:374 +#: src/elflint.c:375 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" msgstr "" -#: src/elflint.c:380 +#: src/elflint.c:381 #, c-format msgid "unsupported ABI version e_ident[%d] == %d\n" msgstr "" -#: src/elflint.c:385 +#: src/elflint.c:386 #, c-format msgid "e_ident[%zu] is not zero\n" msgstr "e_ident[%zu] ist nicht null\n" -#: src/elflint.c:390 +#: src/elflint.c:391 #, c-format msgid "unknown object file type %d\n" msgstr "" -#: src/elflint.c:397 +#: src/elflint.c:398 #, c-format msgid "unknown machine type %d\n" msgstr "" -#: src/elflint.c:401 +#: src/elflint.c:402 #, c-format msgid "unknown object file version\n" msgstr "" -#: src/elflint.c:407 +#: src/elflint.c:408 #, c-format msgid "invalid program header offset\n" msgstr "" -#: src/elflint.c:409 +#: src/elflint.c:410 #, c-format msgid "executables and DSOs cannot have zero program header offset\n" msgstr "" -#: src/elflint.c:413 +#: src/elflint.c:414 #, c-format msgid "invalid number of program header entries\n" msgstr "" -#: src/elflint.c:421 +#: src/elflint.c:422 #, c-format msgid "invalid section header table offset\n" msgstr "" -#: src/elflint.c:424 +#: src/elflint.c:425 #, c-format msgid "section header table must be present\n" msgstr "" -#: src/elflint.c:438 +#: src/elflint.c:439 #, c-format msgid "invalid number of section header table entries\n" msgstr "" -#: src/elflint.c:455 +#: src/elflint.c:456 #, c-format msgid "invalid section header index\n" msgstr "" -#: src/elflint.c:473 +#: src/elflint.c:474 #, c-format msgid "Can only check %u headers, shnum was %u\n" msgstr "" -#: src/elflint.c:487 +#: src/elflint.c:488 #, fuzzy, c-format msgid "invalid number of program header table entries\n" msgstr "Ungültige Anzahl von Parametern.\n" -#: src/elflint.c:504 +#: src/elflint.c:505 #, c-format msgid "Can only check %u headers, phnum was %u\n" msgstr "" -#: src/elflint.c:509 +#: src/elflint.c:510 #, c-format msgid "invalid machine flags: %s\n" msgstr "" -#: src/elflint.c:516 src/elflint.c:533 +#: src/elflint.c:517 src/elflint.c:534 #, c-format msgid "invalid ELF header size: %hd\n" msgstr "" -#: src/elflint.c:519 src/elflint.c:536 +#: src/elflint.c:520 src/elflint.c:537 #, c-format msgid "invalid program header size: %hd\n" msgstr "" -#: src/elflint.c:522 src/elflint.c:539 +#: src/elflint.c:523 src/elflint.c:540 #, c-format msgid "invalid program header position or size\n" msgstr "" -#: src/elflint.c:525 src/elflint.c:542 +#: src/elflint.c:526 src/elflint.c:543 #, c-format msgid "invalid section header size: %hd\n" msgstr "" -#: src/elflint.c:528 src/elflint.c:545 +#: src/elflint.c:529 src/elflint.c:546 #, c-format msgid "invalid section header position or size\n" msgstr "" -#: src/elflint.c:590 +#: src/elflint.c:591 #, c-format msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " "group\n" msgstr "" -#: src/elflint.c:594 +#: src/elflint.c:595 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" msgstr "" -#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 -#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106 -#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4468 +#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610 +#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981 +#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "" -#: src/elflint.c:623 src/elflint.c:1662 +#: src/elflint.c:624 src/elflint.c:1699 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " "type is not SHT_STRTAB\n" msgstr "" -#: src/elflint.c:646 +#: src/elflint.c:647 #, c-format msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " "section\n" msgstr "" -#: src/elflint.c:658 +#: src/elflint.c:659 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" msgstr "" -#: src/elflint.c:662 +#: src/elflint.c:663 #, c-format msgid "" "section [%2u] '%s': number of local entries in 'st_info' larger than table " "size\n" msgstr "" -#: src/elflint.c:671 +#: src/elflint.c:672 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "" -#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685 -#: src/elflint.c:688 src/elflint.c:691 +#: src/elflint.c:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686 +#: src/elflint.c:689 src/elflint.c:692 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "" -#: src/elflint.c:694 +#: src/elflint.c:695 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" msgstr "" -#: src/elflint.c:704 +#: src/elflint.c:705 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" msgstr "" -#: src/elflint.c:713 +#: src/elflint.c:714 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" msgstr "" -#: src/elflint.c:728 +#: src/elflint.c:729 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): too large section index but no extended " "section index section\n" msgstr "" -#: src/elflint.c:734 +#: src/elflint.c:735 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit " @@ -2000,119 +2000,119 @@ msgid "" msgstr "" #. || sym->st_shndx > SHN_HIRESERVE always false -#: src/elflint.c:746 +#: src/elflint.c:747 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n" msgstr "ungültiger Abschnittsindex" -#: src/elflint.c:754 +#: src/elflint.c:755 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:760 +#: src/elflint.c:761 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:765 +#: src/elflint.c:766 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n" msgstr "" -#: src/elflint.c:773 +#: src/elflint.c:774 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable " "files\n" msgstr "" -#: src/elflint.c:777 +#: src/elflint.c:778 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n" msgstr "" -#: src/elflint.c:781 +#: src/elflint.c:782 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n" msgstr "" -#: src/elflint.c:832 +#: src/elflint.c:833 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912 +#: src/elflint.c:839 src/elflint.c:864 src/elflint.c:913 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced " "section [%2d] '%s'\n" msgstr "" -#: src/elflint.c:847 +#: src/elflint.c:848 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not " "have SHF_TLS flag set\n" msgstr "" -#: src/elflint.c:857 src/elflint.c:905 +#: src/elflint.c:858 src/elflint.c:906 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced " "section [%2d] '%s'\n" msgstr "" -#: src/elflint.c:884 +#: src/elflint.c:885 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header " "entry\n" msgstr "" -#: src/elflint.c:890 +#: src/elflint.c:891 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program " "header entry\n" msgstr "" -#: src/elflint.c:898 +#: src/elflint.c:899 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value short of referenced section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:925 +#: src/elflint.c:926 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local symbol outside range described in " "sh_info\n" msgstr "" -#: src/elflint.c:932 +#: src/elflint.c:933 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): non-local symbol outside range " "described in sh_info\n" msgstr "" -#: src/elflint.c:939 +#: src/elflint.c:940 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:989 +#: src/elflint.c:990 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " "[%2d]\n" msgstr "" -#: src/elflint.c:996 +#: src/elflint.c:997 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -2122,1372 +2122,1367 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:1012 +#: src/elflint.c:1013 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " "match %s section address %#<PRIx64>\n" msgstr "" -#: src/elflint.c:1019 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " "match %s section size %<PRIu64>\n" msgstr "" -#: src/elflint.c:1027 +#: src/elflint.c:1028 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " "section\n" msgstr "" -#: src/elflint.c:1043 +#: src/elflint.c:1044 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " "segment address %#<PRIx64>\n" msgstr "" -#: src/elflint.c:1050 +#: src/elflint.c:1051 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " "segment size %<PRIu64>\n" msgstr "" -#: src/elflint.c:1063 +#: src/elflint.c:1064 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-" "default visibility\n" msgstr "" -#: src/elflint.c:1067 +#: src/elflint.c:1068 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:1105 +#: src/elflint.c:1106 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:1121 +#: src/elflint.c:1122 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "" -#: src/elflint.c:1132 src/elflint.c:1185 +#: src/elflint.c:1133 src/elflint.c:1186 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" -#: src/elflint.c:1157 src/elflint.c:1210 +#: src/elflint.c:1158 src/elflint.c:1211 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " "DT_RELCOUNT\n" msgstr "" -#: src/elflint.c:1163 src/elflint.c:1216 +#: src/elflint.c:1164 src/elflint.c:1217 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " "specified %d relative relocations\n" msgstr "" -#: src/elflint.c:1175 +#: src/elflint.c:1176 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "" -#: src/elflint.c:1258 +#: src/elflint.c:1259 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "" -#: src/elflint.c:1270 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "" -#: src/elflint.c:1278 +#: src/elflint.c:1279 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "" -#: src/elflint.c:1286 +#: src/elflint.c:1287 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:1294 -#, c-format -msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "" - -#: src/elflint.c:1354 +#: src/elflint.c:1365 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" -#: src/elflint.c:1381 +#: src/elflint.c:1392 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "" -#: src/elflint.c:1389 +#: src/elflint.c:1400 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " "type\n" msgstr "" -#: src/elflint.c:1397 +#: src/elflint.c:1408 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "" -#: src/elflint.c:1415 +#: src/elflint.c:1426 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " "be used with %s\n" msgstr "" -#: src/elflint.c:1432 +#: src/elflint.c:1443 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "" -#: src/elflint.c:1447 +#: src/elflint.c:1458 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " "%s\n" msgstr "" -#: src/elflint.c:1468 +#: src/elflint.c:1479 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " "relocation flag not set\n" msgstr "" -#: src/elflint.c:1483 +#: src/elflint.c:1494 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" -#: src/elflint.c:1523 src/elflint.c:1574 +#: src/elflint.c:1534 src/elflint.c:1585 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "" -#: src/elflint.c:1650 +#: src/elflint.c:1687 #, c-format msgid "more than one dynamic section present\n" msgstr "" -#: src/elflint.c:1668 +#: src/elflint.c:1705 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " "link value is invalid\n" msgstr "" -#: src/elflint.c:1676 +#: src/elflint.c:1713 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" -#: src/elflint.c:1681 src/elflint.c:1970 +#: src/elflint.c:1718 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "" -#: src/elflint.c:1691 +#: src/elflint.c:1728 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" -#: src/elflint.c:1699 +#: src/elflint.c:1736 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" -#: src/elflint.c:1706 +#: src/elflint.c:1743 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "" -#: src/elflint.c:1717 +#: src/elflint.c:1754 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "" -#: src/elflint.c:1727 +#: src/elflint.c:1764 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "" -#: src/elflint.c:1745 +#: src/elflint.c:1782 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -#: src/elflint.c:1758 +#: src/elflint.c:1795 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " "[%2d] '%s' referenced by sh_link\n" msgstr "" -#: src/elflint.c:1801 +#: src/elflint.c:1839 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -#: src/elflint.c:1816 +#: src/elflint.c:1854 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:1836 src/elflint.c:1864 +#: src/elflint.c:1874 src/elflint.c:1902 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "" -#: src/elflint.c:1848 +#: src/elflint.c:1886 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "" -#: src/elflint.c:1857 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "" -#: src/elflint.c:1872 src/elflint.c:1879 +#: src/elflint.c:1910 src/elflint.c:1917 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "" -#: src/elflint.c:1889 src/elflint.c:1893 +#: src/elflint.c:1927 src/elflint.c:1931 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -#: src/elflint.c:1899 +#: src/elflint.c:1937 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922 +#: src/elflint.c:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -#: src/elflint.c:1934 +#: src/elflint.c:1972 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -#: src/elflint.c:1944 +#: src/elflint.c:1982 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -#: src/elflint.c:1948 +#: src/elflint.c:1986 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" -#: src/elflint.c:1953 +#: src/elflint.c:1991 #, c-format msgid "cannot get data for symbol section\n" msgstr "" -#: src/elflint.c:1956 +#: src/elflint.c:1994 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "" -#: src/elflint.c:1965 +#: src/elflint.c:2003 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -#: src/elflint.c:1980 +#: src/elflint.c:2018 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -#: src/elflint.c:1998 +#: src/elflint.c:2036 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "" -#: src/elflint.c:2010 +#: src/elflint.c:2048 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "" -#: src/elflint.c:2015 +#: src/elflint.c:2053 #, c-format msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n" msgstr "" -#: src/elflint.c:2032 src/elflint.c:2089 +#: src/elflint.c:2070 src/elflint.c:2127 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -#: src/elflint.c:2046 src/elflint.c:2103 +#: src/elflint.c:2084 src/elflint.c:2141 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "" -#: src/elflint.c:2060 src/elflint.c:2117 +#: src/elflint.c:2098 src/elflint.c:2155 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2070 +#: src/elflint.c:2108 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2127 +#: src/elflint.c:2165 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" -#: src/elflint.c:2140 +#: src/elflint.c:2178 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "" -#: src/elflint.c:2152 +#: src/elflint.c:2190 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" -#: src/elflint.c:2168 +#: src/elflint.c:2206 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least %ld)\n" msgstr "" -#: src/elflint.c:2177 +#: src/elflint.c:2215 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -#: src/elflint.c:2211 +#: src/elflint.c:2249 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -#: src/elflint.c:2232 +#: src/elflint.c:2270 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -#: src/elflint.c:2245 +#: src/elflint.c:2283 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2254 +#: src/elflint.c:2292 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2284 +#: src/elflint.c:2322 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2289 +#: src/elflint.c:2327 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2295 +#: src/elflint.c:2333 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -#: src/elflint.c:2308 +#: src/elflint.c:2346 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -#: src/elflint.c:2326 +#: src/elflint.c:2364 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -#: src/elflint.c:2330 +#: src/elflint.c:2368 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" -#: src/elflint.c:2340 +#: src/elflint.c:2378 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" -#: src/elflint.c:2345 +#: src/elflint.c:2383 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "" -#: src/elflint.c:2350 +#: src/elflint.c:2388 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -#: src/elflint.c:2399 +#: src/elflint.c:2437 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" -#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523 +#: src/elflint.c:2461 src/elflint.c:2526 src/elflint.c:2561 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "" -#: src/elflint.c:2444 +#: src/elflint.c:2482 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "" -#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536 +#: src/elflint.c:2493 src/elflint.c:2537 src/elflint.c:2574 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "" -#: src/elflint.c:2470 +#: src/elflint.c:2508 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: " "%<PRIu32>, nentries: %<PRIu32>\n" msgstr "" -#: src/elflint.c:2557 +#: src/elflint.c:2595 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "" -#: src/elflint.c:2567 src/elflint.c:2571 +#: src/elflint.c:2605 src/elflint.c:2609 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "" -#: src/elflint.c:2578 +#: src/elflint.c:2616 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2590 +#: src/elflint.c:2628 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2606 +#: src/elflint.c:2644 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "" -#: src/elflint.c:2626 +#: src/elflint.c:2664 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -#: src/elflint.c:2637 +#: src/elflint.c:2675 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "" -#: src/elflint.c:2642 +#: src/elflint.c:2680 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -#: src/elflint.c:2648 +#: src/elflint.c:2686 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "" -#: src/elflint.c:2653 +#: src/elflint.c:2691 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "" -#: src/elflint.c:2660 +#: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "" -#: src/elflint.c:2664 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "" -#: src/elflint.c:2669 +#: src/elflint.c:2707 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "" -#: src/elflint.c:2675 +#: src/elflint.c:2713 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "" -#: src/elflint.c:2681 +#: src/elflint.c:2719 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "" -#: src/elflint.c:2690 +#: src/elflint.c:2728 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -#: src/elflint.c:2696 +#: src/elflint.c:2734 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "" -#: src/elflint.c:2704 +#: src/elflint.c:2742 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "" -#: src/elflint.c:2708 +#: src/elflint.c:2746 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "" -#: src/elflint.c:2719 +#: src/elflint.c:2757 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "" -#: src/elflint.c:2731 +#: src/elflint.c:2769 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:2740 +#: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -#: src/elflint.c:2747 +#: src/elflint.c:2785 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "" -#: src/elflint.c:2753 +#: src/elflint.c:2791 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " "SHF_GROUP flag set\n" msgstr "" -#: src/elflint.c:2760 +#: src/elflint.c:2798 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "" -#: src/elflint.c:2957 +#: src/elflint.c:2995 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -#: src/elflint.c:2969 +#: src/elflint.c:3007 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:2985 +#: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" -#: src/elflint.c:3001 +#: src/elflint.c:3039 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" -#: src/elflint.c:3009 +#: src/elflint.c:3047 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "" -#: src/elflint.c:3023 +#: src/elflint.c:3061 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "" -#: src/elflint.c:3028 +#: src/elflint.c:3066 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -#: src/elflint.c:3038 +#: src/elflint.c:3076 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -#: src/elflint.c:3091 +#: src/elflint.c:3129 #, c-format msgid "more than one version reference section present\n" msgstr "" -#: src/elflint.c:3099 src/elflint.c:3246 +#: src/elflint.c:3137 src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "" -#: src/elflint.c:3124 src/elflint.c:3300 +#: src/elflint.c:3162 src/elflint.c:3338 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "" -#: src/elflint.c:3131 src/elflint.c:3307 +#: src/elflint.c:3169 src/elflint.c:3345 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" -#: src/elflint.c:3141 +#: src/elflint.c:3179 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "" -#: src/elflint.c:3149 +#: src/elflint.c:3187 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "" -#: src/elflint.c:3161 +#: src/elflint.c:3199 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3169 +#: src/elflint.c:3207 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -#: src/elflint.c:3178 +#: src/elflint.c:3216 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " "%#x, expected %#x\n" msgstr "" -#: src/elflint.c:3187 +#: src/elflint.c:3225 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -#: src/elflint.c:3198 +#: src/elflint.c:3236 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -#: src/elflint.c:3215 src/elflint.c:3391 +#: src/elflint.c:3253 src/elflint.c:3429 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" -#: src/elflint.c:3223 src/elflint.c:3399 +#: src/elflint.c:3261 src/elflint.c:3437 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " "there are more entries\n" msgstr "" -#: src/elflint.c:3238 +#: src/elflint.c:3276 #, c-format msgid "more than one version definition section present\n" msgstr "" -#: src/elflint.c:3285 +#: src/elflint.c:3323 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "" -#: src/elflint.c:3289 +#: src/elflint.c:3327 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" -#: src/elflint.c:3295 +#: src/elflint.c:3333 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3322 +#: src/elflint.c:3360 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" -#: src/elflint.c:3329 +#: src/elflint.c:3367 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" -#: src/elflint.c:3337 +#: src/elflint.c:3375 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" -#: src/elflint.c:3357 +#: src/elflint.c:3395 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -#: src/elflint.c:3374 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" -#: src/elflint.c:3407 +#: src/elflint.c:3445 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "" -#: src/elflint.c:3423 +#: src/elflint.c:3461 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "" -#: src/elflint.c:3448 +#: src/elflint.c:3486 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "" -#: src/elflint.c:3464 +#: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "" -#: src/elflint.c:3475 +#: src/elflint.c:3513 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" -#: src/elflint.c:3484 +#: src/elflint.c:3522 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" -#: src/elflint.c:3496 +#: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" -#: src/elflint.c:3513 +#: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" msgstr "" -#: src/elflint.c:3522 +#: src/elflint.c:3560 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "" -#: src/elflint.c:3531 +#: src/elflint.c:3569 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" -#: src/elflint.c:3546 +#: src/elflint.c:3584 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" #. Tag_File -#: src/elflint.c:3557 +#: src/elflint.c:3595 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" msgstr "" -#: src/elflint.c:3578 +#: src/elflint.c:3616 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" -#: src/elflint.c:3589 +#: src/elflint.c:3627 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" -#: src/elflint.c:3602 +#: src/elflint.c:3640 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" -#: src/elflint.c:3606 +#: src/elflint.c:3644 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" msgstr "" -#: src/elflint.c:3616 +#: src/elflint.c:3654 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "" -#: src/elflint.c:3622 +#: src/elflint.c:3660 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3719 +#: src/elflint.c:3758 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3723 +#: src/elflint.c:3762 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3725 +#: src/elflint.c:3764 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3727 +#: src/elflint.c:3766 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3729 +#: src/elflint.c:3768 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3731 +#: src/elflint.c:3770 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3733 +#: src/elflint.c:3772 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3735 +#: src/elflint.c:3774 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3738 +#: src/elflint.c:3777 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3742 +#: src/elflint.c:3781 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3746 +#: src/elflint.c:3785 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3764 +#: src/elflint.c:3803 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3773 +#: src/elflint.c:3812 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3800 +#: src/elflint.c:3839 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3817 +#: src/elflint.c:3856 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3835 +#: src/elflint.c:3874 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3852 +#: src/elflint.c:3891 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3858 src/elflint.c:3890 +#: src/elflint.c:3897 src/elflint.c:3929 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3863 src/elflint.c:3895 +#: src/elflint.c:3902 src/elflint.c:3934 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3871 +#: src/elflint.c:3910 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3914 +#: src/elflint.c:3953 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3919 +#: src/elflint.c:3958 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3929 +#: src/elflint.c:3968 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3949 +#: src/elflint.c:3988 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" msgstr "" -#: src/elflint.c:3959 +#: src/elflint.c:3998 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" msgstr "" -#: src/elflint.c:3967 +#: src/elflint.c:4006 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3977 +#: src/elflint.c:4016 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:3982 +#: src/elflint.c:4021 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:3988 +#: src/elflint.c:4027 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "" -#: src/elflint.c:3994 +#: src/elflint.c:4033 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3999 +#: src/elflint.c:4038 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:4006 +#: src/elflint.c:4045 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:4011 +#: src/elflint.c:4050 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:4030 +#: src/elflint.c:4069 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:4039 +#: src/elflint.c:4078 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:4046 +#: src/elflint.c:4085 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:4077 +#: src/elflint.c:4116 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:4087 +#: src/elflint.c:4126 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4113 +#: src/elflint.c:4152 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4124 +#: src/elflint.c:4163 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4135 +#: src/elflint.c:4174 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4145 +#: src/elflint.c:4184 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4155 +#: src/elflint.c:4194 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4161 +#: src/elflint.c:4200 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4169 +#: src/elflint.c:4208 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4220 +#: src/elflint.c:4263 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4243 +#: src/elflint.c:4286 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4254 +#: src/elflint.c:4297 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4260 +#: src/elflint.c:4303 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4271 +#: src/elflint.c:4314 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4284 +#: src/elflint.c:4327 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4298 +#: src/elflint.c:4341 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4347 +#: src/elflint.c:4390 #, c-format msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n" msgstr "" -#: src/elflint.c:4351 +#: src/elflint.c:4394 #, c-format msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" msgstr "" -#: src/elflint.c:4407 +#: src/elflint.c:4450 #, c-format msgid "" "phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " "offset %zu\n" msgstr "" -#: src/elflint.c:4412 +#: src/elflint.c:4455 #, c-format msgid "" "section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " "'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4431 +#: src/elflint.c:4474 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4451 +#: src/elflint.c:4494 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4454 +#: src/elflint.c:4497 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4475 +#: src/elflint.c:4518 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4482 +#: src/elflint.c:4525 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4485 +#: src/elflint.c:4528 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4503 +#: src/elflint.c:4546 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4518 +#: src/elflint.c:4561 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4528 +#: src/elflint.c:4571 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" -#: src/elflint.c:4539 +#: src/elflint.c:4582 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4547 +#: src/elflint.c:4590 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4554 +#: src/elflint.c:4597 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4568 +#: src/elflint.c:4611 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4571 +#: src/elflint.c:4614 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4581 +#: src/elflint.c:4624 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4602 +#: src/elflint.c:4645 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4613 +#: src/elflint.c:4656 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4620 +#: src/elflint.c:4663 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4629 src/elflint.c:4652 +#: src/elflint.c:4672 src/elflint.c:4695 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4658 +#: src/elflint.c:4701 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4685 +#: src/elflint.c:4728 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4688 +#: src/elflint.c:4731 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4701 +#: src/elflint.c:4744 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4709 +#: src/elflint.c:4752 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4712 +#: src/elflint.c:4755 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4716 +#: src/elflint.c:4759 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4719 +#: src/elflint.c:4762 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4724 +#: src/elflint.c:4767 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4727 +#: src/elflint.c:4770 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4741 +#: src/elflint.c:4784 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4748 +#: src/elflint.c:4791 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4751 +#: src/elflint.c:4794 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4764 +#: src/elflint.c:4807 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " "program header entry" msgstr "" -#: src/elflint.c:4798 +#: src/elflint.c:4841 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4810 +#: src/elflint.c:4853 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "neue Datei konnte nicht angelegt werden" -#: src/elflint.c:4831 +#: src/elflint.c:4874 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3699,7 +3694,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: INTERNER FEHLER %d (%s-%s): %s" #: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307 -#: src/strip.c:2766 +#: src/strip.c:2763 #, c-format msgid "while closing '%s'" msgstr "beim Schliessen von '%s'" @@ -3743,13 +3738,13 @@ msgstr "%s%s%s: Dateiformat nicht erkannt" msgid "cannot create search tree" msgstr "Kann Suchbaum nicht erstellen" -#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663 -#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097 -#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809 -#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613 -#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803 -#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467 -#: src/strip.c:1093 +#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685 +#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123 +#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854 +#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896 +#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029 +#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396 +#: src/size.c:467 src/strip.c:1093 #, c-format msgid "cannot get section header string table index" msgstr "" @@ -3855,7 +3850,7 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "" -#: src/objdump.c:217 src/readelf.c:608 +#: src/objdump.c:217 src/readelf.c:630 msgid "No operation specified.\n" msgstr "Keine Operation angegeben.\n" @@ -3864,11 +3859,11 @@ msgstr "Keine Operation angegeben.\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383 +#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409 msgid "INVALID SYMBOL" msgstr "" -#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419 +#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445 msgid "INVALID SECTION" msgstr "" @@ -3923,175 +3918,175 @@ msgstr "'%s' ist kein Archiv" msgid "error while freeing sub-ELF descriptor: %s" msgstr "" -#: src/readelf.c:96 +#: src/readelf.c:97 #, fuzzy msgid "ELF input selection:" msgstr "Eingabeauswahloptionen:" -#: src/readelf.c:98 +#: src/readelf.c:99 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "" "Used with -w to find the skeleton Compile Units in FILE associated with the " "Split Compile units in a .dwo input file" msgstr "" -#: src/readelf.c:103 +#: src/readelf.c:104 #, fuzzy msgid "ELF output selection:" msgstr "Eingabeauswahloptionen:" -#: src/readelf.c:105 +#: src/readelf.c:106 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the dynamic segment" msgstr "" -#: src/readelf.c:107 +#: src/readelf.c:108 msgid "Display the ELF file header" msgstr "" -#: src/readelf.c:109 +#: src/readelf.c:110 msgid "Display histogram of bucket list lengths" msgstr "" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Display the program headers" msgstr "Programm-Köpfe anzeigen" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "Display relocations" msgstr "Relocations anzeigen" -#: src/readelf.c:113 +#: src/readelf.c:114 #, fuzzy msgid "Display the section groups" msgstr "Programm-Köpfe anzeigen" -#: src/readelf.c:114 +#: src/readelf.c:115 #, fuzzy msgid "Display the sections' headers" msgstr "Programm-Köpfe anzeigen" -#: src/readelf.c:117 +#: src/readelf.c:118 #, fuzzy msgid "Display the symbol table sections" msgstr "Symboltabelle anzeigen" -#: src/readelf.c:120 +#: src/readelf.c:121 #, fuzzy msgid "Display (only) the dynamic symbol table" msgstr "Zeige nur externe Symbole" -#: src/readelf.c:121 +#: src/readelf.c:122 msgid "Display versioning information" msgstr "Versionierungsinformationen anzeigen" -#: src/readelf.c:122 +#: src/readelf.c:123 #, fuzzy msgid "Display the ELF notes" msgstr "Kernnotizen anzeigen" -#: src/readelf.c:124 +#: src/readelf.c:125 #, fuzzy msgid "Display architecture specific information, if any" msgstr "Architekturspezifische Informationen anzeigen (falls vorhanden)" -#: src/readelf.c:126 +#: src/readelf.c:127 msgid "Display sections for exception handling" msgstr "Abschnitte für Ausnahmebehandlung anzeigen" -#: src/readelf.c:128 +#: src/readelf.c:129 msgid "Additional output selection:" msgstr "" -#: src/readelf.c:130 +#: src/readelf.c:131 msgid "" "Display DWARF section content. SECTION can be one of abbrev, addr, aranges, " "decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, " "ranges, pubnames, str, macinfo, macro or exception" msgstr "" -#: src/readelf.c:134 +#: src/readelf.c:135 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "" -#: src/readelf.c:136 +#: src/readelf.c:137 msgid "Print string contents of sections" msgstr "" -#: src/readelf.c:139 +#: src/readelf.c:140 msgid "Display the symbol index of an archive" msgstr "Symbolindex des Archivs anzeigen" -#: src/readelf.c:141 +#: src/readelf.c:142 msgid "Use the dynamic segment when possible for displaying info" msgstr "" -#: src/readelf.c:143 +#: src/readelf.c:144 msgid "Output control:" msgstr "Ausgabekontrolle:" -#: src/readelf.c:145 +#: src/readelf.c:146 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen" -#: src/readelf.c:147 +#: src/readelf.c:148 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen" -#: src/readelf.c:149 +#: src/readelf.c:150 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:151 +#: src/readelf.c:152 msgid "" "Show compression information for compressed sections (when used with -S); " "decompress section before dumping data (when used with -p or -x)" msgstr "" #. Short description of program. -#: src/readelf.c:156 +#: src/readelf.c:157 msgid "Print information from ELF file in human-readable form." msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben." #. Look up once. -#: src/readelf.c:373 +#: src/readelf.c:395 msgid "yes" msgstr "ja" -#: src/readelf.c:374 +#: src/readelf.c:396 msgid "no" msgstr "nein" -#: src/readelf.c:576 +#: src/readelf.c:598 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "" -#: src/readelf.c:647 src/readelf.c:758 +#: src/readelf.c:669 src/readelf.c:780 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188 +#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188 #, c-format msgid "cannot determine number of sections: %s" msgstr "" -#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508 +#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530 #, c-format msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033 +#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442 #: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610 #: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222 #: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470 @@ -4100,345 +4095,345 @@ msgstr "" msgid "cannot get section header: %s" msgstr "" -#: src/readelf.c:689 +#: src/readelf.c:711 #, fuzzy, c-format msgid "cannot get section name" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989 -#: src/readelf.c:11173 +#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332 +#: src/readelf.c:11516 #, c-format msgid "cannot get %s content: %s" msgstr "" -#: src/readelf.c:714 +#: src/readelf.c:736 #, fuzzy, c-format msgid "cannot create temp file '%s'" msgstr "neue Datei konnte nicht angelegt werden" -#: src/readelf.c:723 +#: src/readelf.c:745 #, fuzzy, c-format msgid "cannot write section data" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775 +#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "" -#: src/readelf.c:736 +#: src/readelf.c:758 #, fuzzy, c-format msgid "error while rewinding file descriptor" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/readelf.c:770 +#: src/readelf.c:792 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "" -#: src/readelf.c:874 +#: src/readelf.c:896 #, c-format msgid "cannot stat input file" msgstr "" -#: src/readelf.c:876 +#: src/readelf.c:898 #, c-format msgid "input file is empty" msgstr "" -#: src/readelf.c:878 +#: src/readelf.c:900 #, c-format msgid "failed reading '%s': %s" msgstr "Konnte '%s' nicht lesen: %s" -#: src/readelf.c:907 +#: src/readelf.c:929 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:966 +#: src/readelf.c:988 #, c-format msgid "cannot read ELF header: %s" msgstr "" -#: src/readelf.c:974 +#: src/readelf.c:996 #, c-format msgid "cannot create EBL handle" msgstr "" -#: src/readelf.c:985 +#: src/readelf.c:1007 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:1017 +#: src/readelf.c:1039 #, fuzzy, c-format msgid "cannot read ELF: %s" msgstr "Konnte %s: %s nicht lesen" -#: src/readelf.c:1050 +#: src/readelf.c:1072 #, fuzzy msgid "cannot find section" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1087 +#: src/readelf.c:1109 msgid "NONE (None)" msgstr "" -#: src/readelf.c:1088 +#: src/readelf.c:1110 msgid "REL (Relocatable file)" msgstr "" -#: src/readelf.c:1089 +#: src/readelf.c:1111 msgid "EXEC (Executable file)" msgstr "" -#: src/readelf.c:1090 +#: src/readelf.c:1112 msgid "DYN (Shared object file)" msgstr "" -#: src/readelf.c:1091 +#: src/readelf.c:1113 msgid "CORE (Core file)" msgstr "" -#: src/readelf.c:1096 +#: src/readelf.c:1118 #, c-format msgid "OS Specific: (%x)\n" msgstr "" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1098 +#: src/readelf.c:1120 #, c-format msgid "Processor Specific: (%x)\n" msgstr "" -#: src/readelf.c:1108 +#: src/readelf.c:1130 msgid "" "ELF Header:\n" " Magic: " msgstr "" -#: src/readelf.c:1112 +#: src/readelf.c:1134 #, c-format msgid "" "\n" " Class: %s\n" msgstr "" -#: src/readelf.c:1117 +#: src/readelf.c:1139 #, fuzzy, c-format msgid " Data: %s\n" msgstr " Daten: %s\n" -#: src/readelf.c:1123 +#: src/readelf.c:1145 #, c-format msgid " Ident Version: %hhd %s\n" msgstr "" -#: src/readelf.c:1125 src/readelf.c:1147 +#: src/readelf.c:1147 src/readelf.c:1169 msgid "(current)" msgstr "(aktuell)" -#: src/readelf.c:1129 +#: src/readelf.c:1151 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: src/readelf.c:1132 +#: src/readelf.c:1154 #, c-format msgid " ABI Version: %hhd\n" msgstr "" -#: src/readelf.c:1135 +#: src/readelf.c:1157 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:1140 +#: src/readelf.c:1162 #, c-format msgid " Machine: %s\n" msgstr "" -#: src/readelf.c:1142 +#: src/readelf.c:1164 #, fuzzy, c-format msgid " Machine: <unknown>: 0x%x\n" msgstr " Daten: %s\n" -#: src/readelf.c:1145 +#: src/readelf.c:1167 #, c-format msgid " Version: %d %s\n" msgstr "" -#: src/readelf.c:1149 +#: src/readelf.c:1171 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:1152 +#: src/readelf.c:1174 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:1153 src/readelf.c:1156 +#: src/readelf.c:1175 src/readelf.c:1178 msgid "(bytes into file)" msgstr "" -#: src/readelf.c:1155 +#: src/readelf.c:1177 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:1158 +#: src/readelf.c:1180 #, c-format msgid " Flags: %s\n" msgstr "" -#: src/readelf.c:1161 +#: src/readelf.c:1183 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182 +#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204 msgid "(bytes)" msgstr "(Bytes)" -#: src/readelf.c:1164 +#: src/readelf.c:1186 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1167 +#: src/readelf.c:1189 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:1174 +#: src/readelf.c:1196 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "" -#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208 +#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230 msgid " ([0] not available)" msgstr "" -#: src/readelf.c:1181 +#: src/readelf.c:1203 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1184 +#: src/readelf.c:1206 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:1191 +#: src/readelf.c:1213 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr "" #. We managed to get the zeroth section. -#: src/readelf.c:1204 +#: src/readelf.c:1226 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "" -#: src/readelf.c:1212 +#: src/readelf.c:1234 #, c-format msgid "" " Section header string table index: XINDEX%s\n" "\n" msgstr "" -#: src/readelf.c:1216 +#: src/readelf.c:1238 #, c-format msgid "" " Section header string table index: %<PRId16>\n" "\n" msgstr "" -#: src/readelf.c:1266 src/readelf.c:1474 +#: src/readelf.c:1288 src/readelf.c:1496 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:1269 +#: src/readelf.c:1291 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" "\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:1277 +#: src/readelf.c:1299 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1280 +#: src/readelf.c:1302 msgid "Section Headers:" msgstr "" -#: src/readelf.c:1283 +#: src/readelf.c:1305 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" msgstr "" -#: src/readelf.c:1285 +#: src/readelf.c:1307 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" msgstr "" -#: src/readelf.c:1290 +#: src/readelf.c:1312 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1292 +#: src/readelf.c:1314 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1370 +#: src/readelf.c:1392 #, c-format msgid "bad compression header for section %zd: %s" msgstr "" -#: src/readelf.c:1381 +#: src/readelf.c:1403 #, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "" -#: src/readelf.c:1399 +#: src/readelf.c:1421 msgid "Program Headers:" msgstr "Programm-Köpfe:" -#: src/readelf.c:1401 +#: src/readelf.c:1423 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" -#: src/readelf.c:1404 +#: src/readelf.c:1426 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" msgstr "" -#: src/readelf.c:1461 +#: src/readelf.c:1483 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "" -#: src/readelf.c:1486 +#: src/readelf.c:1508 msgid "" "\n" " Section to Segment mapping:\n" " Segment Sections..." msgstr "" -#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 +#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 #, c-format msgid "cannot get program header: %s" msgstr "" -#: src/readelf.c:1641 +#: src/readelf.c:1663 #, c-format msgid "" "\n" @@ -4449,7 +4444,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1646 +#: src/readelf.c:1668 #, c-format msgid "" "\n" @@ -4460,32 +4455,32 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1654 +#: src/readelf.c:1676 msgid "<INVALID SYMBOL>" msgstr "" -#: src/readelf.c:1668 +#: src/readelf.c:1690 msgid "<INVALID SECTION>" msgstr "" -#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881 -#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956 -#: src/readelf.c:12963 +#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212 +#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365 +#: src/readelf.c:13372 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585 +#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890 -#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619 +#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221 +#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:1867 +#: src/readelf.c:1889 #, c-format msgid "" "\n" @@ -4498,7 +4493,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1880 +#: src/readelf.c:1902 #, c-format msgid "" "\n" @@ -4511,48 +4506,48 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1890 +#: src/readelf.c:1912 msgid " Type Value\n" msgstr "" -#: src/readelf.c:1899 +#: src/readelf.c:1921 #, fuzzy msgid "cannot get string table by using dynamic segment" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1938 +#: src/readelf.c:1960 #, c-format msgid "Shared library: [%s]\n" msgstr "" -#: src/readelf.c:1942 +#: src/readelf.c:1964 #, c-format msgid "Library soname: [%s]\n" msgstr "" -#: src/readelf.c:1946 +#: src/readelf.c:1968 #, c-format msgid "Library rpath: [%s]\n" msgstr "" -#: src/readelf.c:1950 +#: src/readelf.c:1972 #, c-format msgid "Library runpath: [%s]\n" msgstr "" -#: src/readelf.c:1969 +#: src/readelf.c:1993 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "" -#: src/readelf.c:2083 src/readelf.c:2272 +#: src/readelf.c:2109 src/readelf.c:2298 #, c-format msgid "" "\n" "Invalid symbol table at offset %#0<PRIx64>\n" msgstr "" -#: src/readelf.c:2100 src/readelf.c:2289 +#: src/readelf.c:2126 src/readelf.c:2315 #, c-format msgid "" "\n" @@ -4571,7 +4566,8 @@ msgstr[1] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:2115 src/readelf.c:2304 +#. A .relr.dyn section does not refer to a specific section. +#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485 #, c-format msgid "" "\n" @@ -4582,29 +4578,39 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2125 +#: src/readelf.c:2151 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:2127 +#: src/readelf.c:2153 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225 -#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396 -#: src/readelf.c:2418 src/readelf.c:2431 +#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251 +#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422 +#: src/readelf.c:2444 src/readelf.c:2457 msgid "<INVALID RELOC>" msgstr "" -#: src/readelf.c:2314 +#: src/readelf.c:2340 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2316 +#: src/readelf.c:2342 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2558 +#: src/readelf.c:2654 +#, c-format +msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" +msgstr "" + +#: src/readelf.c:2750 +#, c-format +msgid "bad dynamic symbol" +msgstr "" + +#: src/readelf.c:2868 #, c-format msgid "" "\n" @@ -4615,40 +4621,34 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2563 +#: src/readelf.c:2873 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2571 +#: src/readelf.c:2881 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2573 +#: src/readelf.c:2883 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2593 -#, c-format -msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -msgstr "" - -#: src/readelf.c:2686 -#, c-format -msgid "bad dynamic symbol" +#: src/readelf.c:3002 +msgid "Dynamic symbol information is not available for displaying symbols." msgstr "" -#: src/readelf.c:2771 +#: src/readelf.c:3102 msgid "none" msgstr "keine" -#: src/readelf.c:2788 +#: src/readelf.c:3119 msgid "| <unknown>" msgstr "| <unbekannt>" -#: src/readelf.c:2818 +#: src/readelf.c:3149 #, c-format msgid "" "\n" @@ -4661,17 +4661,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2839 +#: src/readelf.c:3170 #, fuzzy, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n" -#: src/readelf.c:2852 +#: src/readelf.c:3183 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Name: %s Flags: %s Version: %hu\n" -#: src/readelf.c:2894 +#: src/readelf.c:3225 #, c-format msgid "" "\n" @@ -4684,18 +4684,18 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2922 +#: src/readelf.c:3253 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" -#: src/readelf.c:2937 +#: src/readelf.c:3268 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" #. Print the header. -#: src/readelf.c:3197 +#: src/readelf.c:3528 #, c-format msgid "" "\n" @@ -4708,15 +4708,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3225 +#: src/readelf.c:3556 msgid " 0 *local* " msgstr " 0 *lokal* " -#: src/readelf.c:3230 +#: src/readelf.c:3561 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:3272 +#: src/readelf.c:3603 #, c-format msgid "" "\n" @@ -4731,66 +4731,66 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3294 +#: src/readelf.c:3625 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr "" -#: src/readelf.c:3296 +#: src/readelf.c:3627 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3303 +#: src/readelf.c:3634 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3316 +#: src/readelf.c:3647 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" "\t\t\t unsuccessful lookup: %f\n" msgstr "" -#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464 +#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795 #, c-format msgid "cannot get data for section %d: %s" msgstr "" -#: src/readelf.c:3342 +#: src/readelf.c:3673 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3371 +#: src/readelf.c:3702 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3406 +#: src/readelf.c:3737 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3437 +#: src/readelf.c:3768 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3473 +#: src/readelf.c:3804 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3539 +#: src/readelf.c:3870 #, c-format msgid "" " Symbol Bias: %u\n" " Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n" msgstr "" -#: src/readelf.c:3624 +#: src/readelf.c:3955 #, c-format msgid "" "\n" @@ -4801,13 +4801,13 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3638 +#: src/readelf.c:3969 msgid "" " Library Time Stamp Checksum Version " "Flags" msgstr "" -#: src/readelf.c:3698 +#: src/readelf.c:4029 #, c-format msgid "" "\n" @@ -4815,107 +4815,107 @@ msgid "" "%#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:3715 +#: src/readelf.c:4046 msgid " Owner Size\n" msgstr "" -#: src/readelf.c:3739 +#: src/readelf.c:4070 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3778 +#: src/readelf.c:4109 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3783 +#: src/readelf.c:4114 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3833 +#: src/readelf.c:4164 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3836 +#: src/readelf.c:4167 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3839 +#: src/readelf.c:4170 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3849 +#: src/readelf.c:4180 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3852 +#: src/readelf.c:4183 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3890 +#: src/readelf.c:4221 #, fuzzy msgid "Couldn't get data from section" msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" -#: src/readelf.c:3955 +#: src/readelf.c:4286 #, fuzzy msgid "sprintf failure" msgstr "mprotect fehlgeschlagen" -#: src/readelf.c:4439 +#: src/readelf.c:4770 msgid "empty block" msgstr "" -#: src/readelf.c:4442 +#: src/readelf.c:4773 #, c-format msgid "%zu byte block:" msgstr "" -#: src/readelf.c:4920 +#: src/readelf.c:5251 #, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "" -#: src/readelf.c:5080 +#: src/readelf.c:5423 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "" -#: src/readelf.c:5087 +#: src/readelf.c:5430 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "" -#: src/readelf.c:5094 +#: src/readelf.c:5437 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "" -#: src/readelf.c:5101 +#: src/readelf.c:5444 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "" -#: src/readelf.c:5201 +#: src/readelf.c:5544 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr "" -#: src/readelf.c:5209 +#: src/readelf.c:5552 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr "" -#: src/readelf.c:5315 +#: src/readelf.c:5658 #, c-format msgid "" "\n" @@ -4923,74 +4923,74 @@ msgid "" " [ Code]\n" msgstr "" -#: src/readelf.c:5323 +#: src/readelf.c:5666 #, c-format msgid "" "\n" "Abbreviation section at offset %<PRIu64>:\n" msgstr "" -#: src/readelf.c:5336 +#: src/readelf.c:5679 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr "" -#: src/readelf.c:5352 +#: src/readelf.c:5695 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr "" -#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224 -#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829 -#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627 -#: src/readelf.c:10698 +#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567 +#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172 +#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970 +#: src/readelf.c:11041 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397 +#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410 +#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419 +#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429 +#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820 +#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163 #, fuzzy, c-format msgid "Unknown version" msgstr "unbekannte Version" -#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424 +#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767 #, fuzzy, c-format msgid "unsupported address size" msgstr "Kein Adress-Wert" -#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434 +#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5952 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "" -#: src/readelf.c:5624 +#: src/readelf.c:5967 #, c-format msgid "" "\n" @@ -5001,229 +5001,229 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:5655 +#: src/readelf.c:5998 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5657 +#: src/readelf.c:6000 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" -#: src/readelf.c:5695 src/readelf.c:8638 +#: src/readelf.c:6038 src/readelf.c:8981 #, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" -#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649 -#: src/readelf.c:9378 +#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992 +#: src/readelf.c:9721 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" -#: src/readelf.c:5715 +#: src/readelf.c:6058 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5727 +#: src/readelf.c:6070 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5731 +#: src/readelf.c:6074 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5742 +#: src/readelf.c:6085 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5748 +#: src/readelf.c:6091 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr "" -#: src/readelf.c:5759 +#: src/readelf.c:6102 #, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr "" -#: src/readelf.c:5814 +#: src/readelf.c:6157 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5876 src/readelf.c:9384 +#: src/readelf.c:6219 src/readelf.c:9727 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5931 src/readelf.c:9439 +#: src/readelf.c:6274 src/readelf.c:9782 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5947 src/readelf.c:9455 +#: src/readelf.c:6290 src/readelf.c:9798 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5949 src/readelf.c:9457 +#: src/readelf.c:6292 src/readelf.c:9800 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5955 src/readelf.c:9463 +#: src/readelf.c:6298 src/readelf.c:9806 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5966 src/readelf.c:9474 +#: src/readelf.c:6309 src/readelf.c:9817 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5970 src/readelf.c:9478 +#: src/readelf.c:6313 src/readelf.c:9821 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:6022 +#: src/readelf.c:6365 #, fuzzy, c-format msgid "invalid range list data" msgstr "Ungültige Daten" -#: src/readelf.c:6207 src/readelf.c:9813 +#: src/readelf.c:6550 src/readelf.c:10156 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:6255 src/readelf.c:9862 +#: src/readelf.c:6598 src/readelf.c:10205 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6257 src/readelf.c:9864 +#: src/readelf.c:6600 src/readelf.c:10207 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916 +#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr "" -#: src/readelf.c:6291 src/readelf.c:10000 +#: src/readelf.c:6634 src/readelf.c:10343 #, fuzzy msgid "base address" msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:6301 src/readelf.c:10010 +#: src/readelf.c:6644 src/readelf.c:10353 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:6565 +#: src/readelf.c:6908 msgid " <INVALID DATA>\n" msgstr "" -#: src/readelf.c:6822 +#: src/readelf.c:7165 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:6846 +#: src/readelf.c:7189 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:6896 +#: src/readelf.c:7239 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:7000 src/readelf.c:7154 +#: src/readelf.c:7343 src/readelf.c:7497 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:7015 +#: src/readelf.c:7358 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:7021 +#: src/readelf.c:7364 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:7131 +#: src/readelf.c:7474 #, c-format msgid " (offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:7138 +#: src/readelf.c:7481 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:7175 +#: src/readelf.c:7518 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:7260 +#: src/readelf.c:7603 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "" -#: src/readelf.c:7270 +#: src/readelf.c:7613 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "" -#: src/readelf.c:7292 +#: src/readelf.c:7635 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "" -#: src/readelf.c:7622 +#: src/readelf.c:7965 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "Ungültige Datei" -#: src/readelf.c:7626 +#: src/readelf.c:7969 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr "unbekannte Form %<PRIx64>" -#: src/readelf.c:7630 +#: src/readelf.c:7973 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:7952 +#: src/readelf.c:8295 #, c-format msgid "" "\n" @@ -5231,12 +5231,12 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:8002 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:8022 +#: src/readelf.c:8365 #, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5245,7 +5245,7 @@ msgid "" " Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n" msgstr "" -#: src/readelf.c:8034 +#: src/readelf.c:8377 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5253,37 +5253,37 @@ msgid "" "%<PRIu8>, Offset size: %<PRIu8>\n" msgstr "" -#: src/readelf.c:8044 src/readelf.c:8205 +#: src/readelf.c:8387 src/readelf.c:8548 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:8071 +#: src/readelf.c:8414 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:8100 +#: src/readelf.c:8443 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:8109 +#: src/readelf.c:8452 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:8145 +#: src/readelf.c:8488 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:8153 +#: src/readelf.c:8496 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:8197 +#: src/readelf.c:8540 #, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5291,7 +5291,7 @@ msgid "" "%<PRIu8>, Offset size: %<PRIu8>\n" msgstr "" -#: src/readelf.c:8249 +#: src/readelf.c:8592 #, c-format msgid "" "\n" @@ -5299,13 +5299,13 @@ msgid "" "\n" msgstr "" -#: src/readelf.c:8581 +#: src/readelf.c:8924 #, fuzzy, c-format msgid "unknown form: %s" msgstr "unbekannte Form %<PRIx64>" #. Print what we got so far. -#: src/readelf.c:8729 +#: src/readelf.c:9072 #, c-format msgid "" "\n" @@ -5324,187 +5324,187 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:8751 +#: src/readelf.c:9094 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:8759 +#: src/readelf.c:9102 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "Kein Adress-Wert" -#: src/readelf.c:8767 +#: src/readelf.c:9110 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "" -#: src/readelf.c:8777 +#: src/readelf.c:9120 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:8792 +#: src/readelf.c:9135 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:8803 +#: src/readelf.c:9146 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:8809 src/readelf.c:8886 +#: src/readelf.c:9152 src/readelf.c:9229 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8880 +#: src/readelf.c:9223 msgid "" "\n" "File name table:" msgstr "" -#: src/readelf.c:8941 +#: src/readelf.c:9284 msgid " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:8987 +#: src/readelf.c:9330 msgid "" "\n" "No line number statements." msgstr "" -#: src/readelf.c:8991 +#: src/readelf.c:9334 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:9006 +#: src/readelf.c:9349 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:9040 +#: src/readelf.c:9383 #, c-format msgid " special opcode %u: address+%u = " msgstr "" -#: src/readelf.c:9044 +#: src/readelf.c:9387 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" -#: src/readelf.c:9047 +#: src/readelf.c:9390 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:9065 +#: src/readelf.c:9408 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:9070 +#: src/readelf.c:9413 msgid " end of sequence" msgstr "" -#: src/readelf.c:9088 +#: src/readelf.c:9431 #, fuzzy, c-format msgid " set address to " msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:9116 +#: src/readelf.c:9459 #, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" -#: src/readelf.c:9130 +#: src/readelf.c:9473 #, c-format msgid " set discriminator to %u\n" msgstr "" -#: src/readelf.c:9157 +#: src/readelf.c:9500 #, c-format msgid " set inlined context %u, function name %s (0x%x)\n" msgstr "" -#: src/readelf.c:9181 +#: src/readelf.c:9524 #, c-format msgid " set function name %s (0x%x)\n" msgstr "" #. Unknown, ignore it. -#: src/readelf.c:9188 +#: src/readelf.c:9531 #, fuzzy msgid " unknown opcode" msgstr "unbekannter Typ" #. Takes no argument. -#: src/readelf.c:9200 +#: src/readelf.c:9543 msgid " copy" msgstr "" -#: src/readelf.c:9211 +#: src/readelf.c:9554 #, c-format msgid " advance address by %u to " msgstr "" -#: src/readelf.c:9215 src/readelf.c:9276 +#: src/readelf.c:9558 src/readelf.c:9619 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:9227 +#: src/readelf.c:9570 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "" -#: src/readelf.c:9237 +#: src/readelf.c:9580 #, c-format msgid " set file to %<PRIu64>\n" msgstr "" -#: src/readelf.c:9248 +#: src/readelf.c:9591 #, c-format msgid " set column to %<PRIu64>\n" msgstr "" -#: src/readelf.c:9255 +#: src/readelf.c:9598 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "" #. Takes no argument. -#: src/readelf.c:9261 +#: src/readelf.c:9604 msgid " set basic block flag" msgstr "" -#: src/readelf.c:9272 +#: src/readelf.c:9615 #, c-format msgid " advance address by constant %u to " msgstr "" -#: src/readelf.c:9292 +#: src/readelf.c:9635 #, c-format msgid " advance address by fixed value %u to \n" msgstr "" #. Takes no argument. -#: src/readelf.c:9302 +#: src/readelf.c:9645 msgid " set prologue end flag" msgstr "" #. Takes no argument. -#: src/readelf.c:9307 +#: src/readelf.c:9650 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:9317 +#: src/readelf.c:9660 #, c-format msgid " set isa to %u\n" msgstr "" @@ -5512,93 +5512,93 @@ msgstr "" #. This is a new opcode the generator but not we know about. #. Read the parameters associated with it but then discard #. everything. Read all the parameters for this opcode. -#: src/readelf.c:9326 +#: src/readelf.c:9669 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:9527 +#: src/readelf.c:9870 #, c-format msgid " <INVALID DATA>\n" msgstr "" -#: src/readelf.c:9567 +#: src/readelf.c:9910 #, fuzzy, c-format msgid "invalid loclists data" msgstr "Ungültige Daten" -#: src/readelf.c:10037 src/readelf.c:11082 +#: src/readelf.c:10380 src/readelf.c:11425 msgid " <INVALID DATA>\n" msgstr "" -#: src/readelf.c:10168 +#: src/readelf.c:10511 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:10191 +#: src/readelf.c:10534 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "" -#: src/readelf.c:10286 +#: src/readelf.c:10629 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10298 +#: src/readelf.c:10641 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10304 src/readelf.c:11202 +#: src/readelf.c:10647 src/readelf.c:11546 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:10311 +#: src/readelf.c:10654 #, fuzzy, c-format msgid " Flag: 0x%<PRIx8>" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10340 +#: src/readelf.c:10683 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr "" -#: src/readelf.c:10348 +#: src/readelf.c:10691 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr "" -#: src/readelf.c:10373 +#: src/readelf.c:10716 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr "" -#: src/readelf.c:10380 +#: src/readelf.c:10723 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:10392 +#: src/readelf.c:10735 #, c-format msgid " %<PRIu8> arguments:" msgstr "" -#: src/readelf.c:10407 +#: src/readelf.c:10750 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10608 +#: src/readelf.c:10951 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" -#: src/readelf.c:10663 +#: src/readelf.c:11006 #, c-format msgid "" "\n" @@ -5607,72 +5607,72 @@ msgid "" msgstr "" #. TRANS: the debugstr| prefix makes the string unique. -#: src/readelf.c:10668 +#: src/readelf.c:11011 msgctxt "debugstr" msgid "Offset" msgstr "" -#: src/readelf.c:10678 +#: src/readelf.c:11021 #, c-format msgid " *** error, missing string terminator\n" msgstr "" -#: src/readelf.c:10800 +#: src/readelf.c:11143 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10802 +#: src/readelf.c:11145 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10816 +#: src/readelf.c:11159 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10825 +#: src/readelf.c:11168 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10879 +#: src/readelf.c:11222 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:10981 +#: src/readelf.c:11324 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:11004 +#: src/readelf.c:11347 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:11016 +#: src/readelf.c:11359 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:11033 +#: src/readelf.c:11376 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:11048 +#: src/readelf.c:11391 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:11064 +#: src/readelf.c:11407 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5681,142 +5681,164 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:11137 +#: src/readelf.c:11480 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:11164 +#: src/readelf.c:11507 #, c-format msgid "" "\n" "GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n" msgstr "" -#: src/readelf.c:11193 +#: src/readelf.c:11536 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:11211 +#: src/readelf.c:11555 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:11218 +#: src/readelf.c:11562 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:11225 +#: src/readelf.c:11569 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:11232 +#: src/readelf.c:11576 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:11239 +#: src/readelf.c:11586 +#, fuzzy, c-format +msgid " shortcut offset: %#<PRIx32>\n" +msgstr " %s: %<PRId64>\n" + +#: src/readelf.c:11594 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:11253 +#: src/readelf.c:11608 #, c-format msgid "" "\n" " CU list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:11278 +#: src/readelf.c:11633 #, c-format msgid "" "\n" " TU list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:11307 +#: src/readelf.c:11662 #, c-format msgid "" "\n" " Address list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:11339 +#: src/readelf.c:11705 #, c-format msgid "" "\n" " Symbol table at offset %#<PRIx32> contains %zu slots:\n" msgstr "" -#: src/readelf.c:11477 +#: src/readelf.c:11790 +#, c-format +msgid "" +"\n" +"Shortcut table at offset %#<PRIx32> contains %zu slots:\n" +msgstr "" + +#: src/readelf.c:11802 +#, c-format +msgid "Language of main: %s\n" +msgstr "" + +#: src/readelf.c:11803 +#, c-format +msgid "Name of main: " +msgstr "" + +#: src/readelf.c:11886 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573 -#: src/readelf.c:12630 +#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982 +#: src/readelf.c:13039 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:12207 +#: src/readelf.c:12616 #, c-format msgid "" "\n" "%*s... <repeats %u more times> ..." msgstr "" -#: src/readelf.c:12709 +#: src/readelf.c:13118 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:12737 +#: src/readelf.c:13146 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr "" -#: src/readelf.c:12789 +#: src/readelf.c:13198 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "Konnte Inhalt von %s: %s nicht lesen" -#: src/readelf.c:12822 +#: src/readelf.c:13231 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12845 +#: src/readelf.c:13254 #, c-format msgid "" "\n" "Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12892 +#: src/readelf.c:13301 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12919 src/readelf.c:12970 +#: src/readelf.c:13328 src/readelf.c:13379 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12924 +#: src/readelf.c:13333 #, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12929 +#: src/readelf.c:13338 #, c-format msgid "" "\n" @@ -5824,21 +5846,21 @@ msgid "" "%#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12943 +#: src/readelf.c:13352 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12975 +#: src/readelf.c:13384 #, c-format msgid "" "\n" "String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12980 +#: src/readelf.c:13389 #, c-format msgid "" "\n" @@ -5846,45 +5868,45 @@ msgid "" "offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:13028 +#: src/readelf.c:13437 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:13058 +#: src/readelf.c:13467 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:13113 +#: src/readelf.c:13522 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:13116 +#: src/readelf.c:13525 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:13120 +#: src/readelf.c:13529 #, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" -#: src/readelf.c:13138 +#: src/readelf.c:13547 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:13143 +#: src/readelf.c:13552 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -6362,7 +6384,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" msgid "%s: error while getting shdrstrndx: %s" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/strip.c:1712 src/strip.c:2553 +#: src/strip.c:1712 src/strip.c:2552 #, fuzzy, c-format msgid "%s: error updating shdrstrndx: %s" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" @@ -6396,7 +6418,7 @@ msgstr "" msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2469 src/strip.c:2577 +#: src/strip.c:2469 src/strip.c:2574 #, c-format msgid "while writing '%s': %s" msgstr "" @@ -6416,22 +6438,22 @@ msgstr "" msgid "%s: error while creating ELF header: %s" msgstr "" -#: src/strip.c:2562 +#: src/strip.c:2560 #, c-format msgid "%s: error while reading the file: %s" msgstr "" -#: src/strip.c:2602 src/strip.c:2622 +#: src/strip.c:2599 src/strip.c:2619 #, fuzzy, c-format msgid "while writing '%s'" msgstr "beim Schliessen von '%s'" -#: src/strip.c:2659 src/strip.c:2666 +#: src/strip.c:2656 src/strip.c:2663 #, c-format msgid "error while finishing '%s': %s" msgstr "" -#: src/strip.c:2683 src/strip.c:2759 +#: src/strip.c:2680 src/strip.c:2756 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "" @@ -6877,7 +6899,7 @@ msgid "" "section PATH SECTION-NAME\n" msgstr "" -#: tests/backtrace.c:483 +#: tests/backtrace.c:491 msgid "Run executable" msgstr "" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-03-03 16:09+0100\n" +"POT-Creation-Date: 2023-11-03 17:36+0100\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz." "com.ar>\n" @@ -52,7 +52,7 @@ msgstr "" "garantÃa, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN " "DETERMINADO.\n" -#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793 +#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202 #: src/unstrip.c:311 #, c-format msgid "memory exhausted" @@ -555,7 +555,7 @@ msgstr "No hay segundo plano (Backend)" #: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79 #: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 -#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81 +#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81 msgid "<unknown>" msgstr "<desconocido>" @@ -649,7 +649,7 @@ msgstr "tamaño inválido del operando fuente" msgid "invalid size of destination operand" msgstr "tamaño inválido del operando destino" -#: libelf/elf_error.c:86 src/readelf.c:6415 +#: libelf/elf_error.c:86 src/readelf.c:6758 #, c-format msgid "invalid encoding" msgstr "codificación inválida" @@ -735,8 +735,8 @@ msgstr "no coinciden los datos/scn" msgid "invalid section header" msgstr "encabezamiento de sección inválida" -#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899 -#: src/readelf.c:11000 src/readelf.c:11188 +#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242 +#: src/readelf.c:11343 src/readelf.c:11531 #, c-format msgid "invalid data" msgstr "datos inválidos" @@ -1404,8 +1404,8 @@ msgid "Suppress some error output (counterpart to --verbose)" msgstr "" #. Strings for arguments in help texts. -#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76 -#: src/readelf.c:160 +#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77 +#: src/readelf.c:161 msgid "FILE..." msgstr "FICHERO..." @@ -1696,22 +1696,22 @@ msgid "unknown compression type '%s'" msgstr "tipo desconocido" #. We need at least one input file. -#: src/elfcompress.c:162 src/elfcompress.c:1444 +#: src/elfcompress.c:162 src/elfcompress.c:1447 #, fuzzy, c-format msgid "No input file given" msgstr "archivo de entrada vacÃo" -#: src/elfcompress.c:168 src/elfcompress.c:1448 +#: src/elfcompress.c:168 src/elfcompress.c:1451 #, fuzzy, c-format msgid "Only one input file allowed together with '-o'" msgstr "Sólo se permite ingresar un archivo junto con '-o' y '-f'" -#: src/elfcompress.c:1405 +#: src/elfcompress.c:1408 #, fuzzy msgid "Place (de)compressed output into FILE" msgstr "Colocar la salida obtenida en FICHERO" -#: src/elfcompress.c:1408 +#: src/elfcompress.c:1411 msgid "" "What type of compression to apply. TYPE can be 'none' (decompress), " "'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-" @@ -1719,49 +1719,49 @@ msgid "" "compression)" msgstr "" -#: src/elfcompress.c:1412 +#: src/elfcompress.c:1415 msgid "" "SECTION name to (de)compress, SECTION is an extended wildcard pattern " "(defaults to '.?(z)debug*')" msgstr "" -#: src/elfcompress.c:1415 +#: src/elfcompress.c:1418 msgid "Print a message for each section being (de)compressed" msgstr "" -#: src/elfcompress.c:1418 +#: src/elfcompress.c:1421 msgid "" "Force compression of section even if it would become larger or update/" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1421 src/strip.c:92 +#: src/elfcompress.c:1424 src/strip.c:92 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Relaja algunas reglas para manejar ficheros ELF rotos" -#: src/elfcompress.c:1424 +#: src/elfcompress.c:1427 #, fuzzy msgid "Be silent when a section cannot be compressed" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elfcompress.c:1434 +#: src/elfcompress.c:1437 msgid "Compress or decompress sections in an ELF file." msgstr "" -#: src/elflint.c:62 +#: src/elflint.c:63 msgid "Be extremely strict, flag level 2 features." msgstr "Sea extremadamente estricto, caracterÃstica de marca de nivel 2." -#: src/elflint.c:63 +#: src/elflint.c:64 msgid "Do not print anything if successful" msgstr "No imprime nada si está correcto" -#: src/elflint.c:64 +#: src/elflint.c:65 msgid "Binary is a separate debuginfo file" msgstr "Binario es un archivo debuginfo independiente" -#: src/elflint.c:66 +#: src/elflint.c:67 msgid "" "Binary has been created with GNU ld and is therefore known to be broken in " "certain ways" @@ -1770,174 +1770,174 @@ msgstr "" "roto de alguna forma" #. Short description of program. -#: src/elflint.c:72 +#: src/elflint.c:73 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI " -#: src/elflint.c:153 src/readelf.c:391 +#: src/elflint.c:154 src/readelf.c:413 #, fuzzy, c-format msgid "cannot open input file '%s'" msgstr "no se puede abrir el fichero de entrada" -#: src/elflint.c:160 +#: src/elflint.c:161 #, fuzzy, c-format msgid "cannot generate Elf descriptor for '%s': %s\n" msgstr "no se puede crear descriptor ELF: %s\n" -#: src/elflint.c:179 +#: src/elflint.c:180 #, c-format msgid "error while closing Elf descriptor: %s\n" msgstr "error al cerrar el descriptor ELF: %s\n" -#: src/elflint.c:183 +#: src/elflint.c:184 msgid "No errors" msgstr "No hay errores" -#: src/elflint.c:218 src/readelf.c:603 +#: src/elflint.c:219 src/readelf.c:625 msgid "Missing file name.\n" msgstr "Falta el nombre de archivo.\n" -#: src/elflint.c:283 +#: src/elflint.c:284 #, c-format msgid " error while freeing sub-ELF descriptor: %s\n" msgstr " error al liberar descriptor sub-ELF: %s\n" #. We cannot do anything. -#: src/elflint.c:291 +#: src/elflint.c:292 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "No es un fichero ELF - tiene los bytes mágicos errados en el inicio\n" -#: src/elflint.c:357 +#: src/elflint.c:358 #, c-format msgid "e_ident[%d] == %d is no known class\n" msgstr "e_ident[%d] == %d es una clase desconocida\n" -#: src/elflint.c:362 +#: src/elflint.c:363 #, c-format msgid "e_ident[%d] == %d is no known data encoding\n" msgstr "e_ident[%d] == %d es una codificación de datos desconocida\n" -#: src/elflint.c:366 +#: src/elflint.c:367 #, c-format msgid "unknown ELF header version number e_ident[%d] == %d\n" msgstr "" "número de versión de encabezamiento ELF desconocido e_ident[%d] == %d\n" -#: src/elflint.c:374 +#: src/elflint.c:375 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" msgstr "Sistema operativo OS ABI e_ident[%d] == '%s' incompatible\n" -#: src/elflint.c:380 +#: src/elflint.c:381 #, fuzzy, c-format msgid "unsupported ABI version e_ident[%d] == %d\n" msgstr "Versión incompatible ABI e_ident[%d] == %d\n" -#: src/elflint.c:385 +#: src/elflint.c:386 #, c-format msgid "e_ident[%zu] is not zero\n" msgstr "e_ident[%zu] no es cero\n" -#: src/elflint.c:390 +#: src/elflint.c:391 #, c-format msgid "unknown object file type %d\n" msgstr "tipo de fichero objeto desconocido %d\n" -#: src/elflint.c:397 +#: src/elflint.c:398 #, c-format msgid "unknown machine type %d\n" msgstr "tipo de máquina desconocido %d\n" -#: src/elflint.c:401 +#: src/elflint.c:402 #, c-format msgid "unknown object file version\n" msgstr "versión de fichero objeto desconocido\n" -#: src/elflint.c:407 +#: src/elflint.c:408 #, c-format msgid "invalid program header offset\n" msgstr "Compensación de encabezamiento de programa inválida\n" -#: src/elflint.c:409 +#: src/elflint.c:410 #, c-format msgid "executables and DSOs cannot have zero program header offset\n" msgstr "" "tanto los ejecutables como los DSO no pueden tener compensación de " "encabezamiento de programa cero\n" -#: src/elflint.c:413 +#: src/elflint.c:414 #, c-format msgid "invalid number of program header entries\n" msgstr "cantidad no válida de entradas del encabezamiento del programa\n" -#: src/elflint.c:421 +#: src/elflint.c:422 #, c-format msgid "invalid section header table offset\n" msgstr "compensación de sección de tabla de encabezamiento inválida\n" -#: src/elflint.c:424 +#: src/elflint.c:425 #, c-format msgid "section header table must be present\n" msgstr "tabla de encabezamiento de sección debe estar presente\n" -#: src/elflint.c:438 +#: src/elflint.c:439 #, c-format msgid "invalid number of section header table entries\n" msgstr "" "cantidad no válida de entradas en la tabla del encabezamiento de sección\n" -#: src/elflint.c:455 +#: src/elflint.c:456 #, c-format msgid "invalid section header index\n" msgstr "Ãndice de sección de encabezamiento inválido\n" -#: src/elflint.c:473 +#: src/elflint.c:474 #, c-format msgid "Can only check %u headers, shnum was %u\n" msgstr "" -#: src/elflint.c:487 +#: src/elflint.c:488 #, c-format msgid "invalid number of program header table entries\n" msgstr "cantidad no válida de entradas de tabla de encabezado del programa\n" -#: src/elflint.c:504 +#: src/elflint.c:505 #, c-format msgid "Can only check %u headers, phnum was %u\n" msgstr "" -#: src/elflint.c:509 +#: src/elflint.c:510 #, c-format msgid "invalid machine flags: %s\n" msgstr "Indicadores de máquina inválidos: %s\n" -#: src/elflint.c:516 src/elflint.c:533 +#: src/elflint.c:517 src/elflint.c:534 #, c-format msgid "invalid ELF header size: %hd\n" msgstr "tamaño inválido del encabezamiento ELF: %hd\n" -#: src/elflint.c:519 src/elflint.c:536 +#: src/elflint.c:520 src/elflint.c:537 #, c-format msgid "invalid program header size: %hd\n" msgstr "tamaño inválido del encabezamiento del programa: %hd\n" -#: src/elflint.c:522 src/elflint.c:539 +#: src/elflint.c:523 src/elflint.c:540 #, c-format msgid "invalid program header position or size\n" msgstr "tamaño o posición inválidos del encabezamiento del programa\n" -#: src/elflint.c:525 src/elflint.c:542 +#: src/elflint.c:526 src/elflint.c:543 #, c-format msgid "invalid section header size: %hd\n" msgstr "tamaño inválido del encabezamiento de sección: %hd\n" -#: src/elflint.c:528 src/elflint.c:545 +#: src/elflint.c:529 src/elflint.c:546 #, c-format msgid "invalid section header position or size\n" msgstr "tamaño o posición no válidos del encabezamiento de sección\n" -#: src/elflint.c:590 +#: src/elflint.c:591 #, c-format msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " @@ -1946,7 +1946,7 @@ msgstr "" "sección [%2d] '%s': sección con la bandera SHF_GROUP no es parte de una " "sección de grupo\n" -#: src/elflint.c:594 +#: src/elflint.c:595 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" @@ -1954,14 +1954,14 @@ msgstr "" "sección [%2d] '%s': el grupo de sección [%2zu] '%s' no precede al miembro de " "grupo\n" -#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 -#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106 -#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4468 +#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610 +#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981 +#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n" -#: src/elflint.c:623 src/elflint.c:1662 +#: src/elflint.c:624 src/elflint.c:1699 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1970,7 +1970,7 @@ msgstr "" "sección [%2d] '%s': nombrado como una tabla de cadena para la sección [%2d] " "'%s' pero el tipo no es SHT_STRTAB\n" -#: src/elflint.c:646 +#: src/elflint.c:647 #, c-format msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " @@ -1979,13 +1979,13 @@ msgstr "" "sección [%2d] '%s': la tabla de sÃmbolo no puede tener más de una sección de " "Ãndice extendido\n" -#: src/elflint.c:658 +#: src/elflint.c:659 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" msgstr "" "sección [%2u] '%s': el tamaño de la entrada no coincide con ElfXX_Sym\n" -#: src/elflint.c:662 +#: src/elflint.c:663 #, fuzzy, c-format msgid "" "section [%2u] '%s': number of local entries in 'st_info' larger than table " @@ -1994,33 +1994,33 @@ msgstr "" "Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de " "archivo\n" -#: src/elflint.c:671 +#: src/elflint.c:672 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "Sección [%2d] '%s': no se puede obtener sÃmbolo %d: %s\n" -#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685 -#: src/elflint.c:688 src/elflint.c:691 +#: src/elflint.c:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686 +#: src/elflint.c:689 src/elflint.c:692 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "Sección [%2d] '%s': '%s' en la entrada zeroth no es cero\n" -#: src/elflint.c:694 +#: src/elflint.c:695 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" msgstr "sección [%2d] '%s': XINDEX en la entrada zeroth no es cero\n" -#: src/elflint.c:704 +#: src/elflint.c:705 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" msgstr "sección [%2d] '%s': no es posible obtener el sÃmbolo %zu: %s\n" -#: src/elflint.c:713 +#: src/elflint.c:714 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" msgstr "sección [%2d] '%s': sÃmbolo %zu: valor de nombre inválido\n" -#: src/elflint.c:728 +#: src/elflint.c:729 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): too large section index but no extended " @@ -2029,7 +2029,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: el Ãndice de sección es demasiado extenso, " "pero no la sección extendida de la sección de Ãndice\n" -#: src/elflint.c:734 +#: src/elflint.c:735 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit " @@ -2039,27 +2039,27 @@ msgstr "" "caber en st_shndx (%<PRIu32>)\n" #. || sym->st_shndx > SHN_HIRESERVE always false -#: src/elflint.c:746 +#: src/elflint.c:747 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n" msgstr "sección [%2d] '%s': sÃmbolo %zu: Ãndice de sección inválido\n" -#: src/elflint.c:754 +#: src/elflint.c:755 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n" msgstr "sección [%2d] '%s': sÃmbolo %zu: tipo desconocido\n" -#: src/elflint.c:760 +#: src/elflint.c:761 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n" msgstr "sección [%2d] '%s': sÃmbolo %zu: asociación de sÃmbolo desconocida\n" -#: src/elflint.c:765 +#: src/elflint.c:766 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n" msgstr "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo único no de tipo de objeto\n" -#: src/elflint.c:773 +#: src/elflint.c:774 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable " @@ -2068,26 +2068,26 @@ msgstr "" "sección [%2d] '%s': sÃmbolo %zu: COMMON solo es permitido en archivos " "realojables\n" -#: src/elflint.c:777 +#: src/elflint.c:778 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n" msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolos locales COMMON no tienen sentido\n" -#: src/elflint.c:781 +#: src/elflint.c:782 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n" msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: función en sección COMMON no tiene sentido\n" -#: src/elflint.c:832 +#: src/elflint.c:833 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n" msgstr "sección [%2d] '%s': sÃmbolo %zu: st_value fuera de lÃmites\n" -#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912 +#: src/elflint.c:839 src/elflint.c:864 src/elflint.c:913 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced " @@ -2096,7 +2096,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu no se ajusta totalmente en la sección [%2d] " "'%s'\n" -#: src/elflint.c:847 +#: src/elflint.c:848 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not " @@ -2105,7 +2105,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sección de referencia [%2d] '%s' no tiene " "establecida bandera SHF_TLS\n" -#: src/elflint.c:857 src/elflint.c:905 +#: src/elflint.c:858 src/elflint.c:906 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced " @@ -2114,7 +2114,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: st_value fuera de lÃmites de sección de " "referencia [%2d] '%s'\n" -#: src/elflint.c:884 +#: src/elflint.c:885 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header " @@ -2123,7 +2123,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo TLS, pero no hay entrada de " "programa TLS\n" -#: src/elflint.c:890 +#: src/elflint.c:891 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program " @@ -2132,7 +2132,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo TLS, pero no hay entrada de " "programa TLS\n" -#: src/elflint.c:898 +#: src/elflint.c:899 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value short of referenced section " @@ -2141,7 +2141,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: st_value falta sección de referencia [%2d] " "'%s'\n" -#: src/elflint.c:925 +#: src/elflint.c:926 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local symbol outside range described in " @@ -2150,7 +2150,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo local fuera del rango descrito en " "sh_info\n" -#: src/elflint.c:932 +#: src/elflint.c:933 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): non-local symbol outside range " @@ -2159,12 +2159,12 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo non-local fuera del rango descrito " "en sh_info\n" -#: src/elflint.c:939 +#: src/elflint.c:940 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n" msgstr "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo de sección non-local\n" -#: src/elflint.c:989 +#: src/elflint.c:990 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -2173,7 +2173,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección " "errada [%2d]\n" -#: src/elflint.c:996 +#: src/elflint.c:997 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -2185,7 +2185,7 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:1012 +#: src/elflint.c:1013 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " @@ -2194,7 +2194,7 @@ msgstr "" "Sección [%2d] '%s': valor del sÃmbolo _GLOBAL_OFFSET_TABLE_ %#<PRIx64> no " "coincide con dirección de sección %s %#<PRIx64>\n" -#: src/elflint.c:1019 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " @@ -2203,7 +2203,7 @@ msgstr "" "Sección [%2d] '%s': tamaño de sÃmbolo _GLOBAL_OFFSET_TABLE_ %<PRIu64> no " "coincide con tamaño de sección %s %<PRIu64>\n" -#: src/elflint.c:1027 +#: src/elflint.c:1028 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -2212,7 +2212,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo _GLOBAL_OFFSET_TABLE_ presente, pero no. sección " "got\n" -#: src/elflint.c:1043 +#: src/elflint.c:1044 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " @@ -2221,7 +2221,7 @@ msgstr "" "sección [%2d] '%s': Valor de sÃmbolo _DYNAMIC_ %#<PRIx64> no coincide con la " "dirección de segmento%#<PRIx64>\n" -#: src/elflint.c:1050 +#: src/elflint.c:1051 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " @@ -2230,7 +2230,7 @@ msgstr "" "Sección [%2d] '%s': tamaño de sÃmbolo _DYNAMIC %<PRIu64> no coincide con " "tamaño de segmento %<PRIu64>\n" -#: src/elflint.c:1063 +#: src/elflint.c:1064 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-" @@ -2239,29 +2239,29 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: sÃmbolo en tabla de sÃmbolos dinámicos sin " "visibilidad predeterminada\n" -#: src/elflint.c:1067 +#: src/elflint.c:1068 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n" msgstr "" "Sección [%2d] '%s': sÃmbolo %zu: bit desconocido establecido en st_other\n" -#: src/elflint.c:1105 +#: src/elflint.c:1106 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n" -#: src/elflint.c:1121 +#: src/elflint.c:1122 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "Sección [%2d] '%s': DT_RELCOUNT utilizada para esta sección RELA\n" -#: src/elflint.c:1132 src/elflint.c:1185 +#: src/elflint.c:1133 src/elflint.c:1186 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "Sección [%2d] '%s': valor DT_RELCOUNT %d demasiado alto para esta sección\n" -#: src/elflint.c:1157 src/elflint.c:1210 +#: src/elflint.c:1158 src/elflint.c:1211 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -2270,7 +2270,7 @@ msgstr "" "Sección [%2d] '%s': reubicaciones relativas después de que el %d de Ãndice " "haya sido especificado por DT_RELCOUNT\n" -#: src/elflint.c:1163 src/elflint.c:1216 +#: src/elflint.c:1164 src/elflint.c:1217 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -2279,50 +2279,44 @@ msgstr "" "Sección [%2d] '%s': reubicación no-relativa en %zu de Ãndice; DT_RELCOUNT " "especificado %d reubicaciones relativas\n" -#: src/elflint.c:1175 +#: src/elflint.c:1176 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "sección [%2d] '%s': DT_RELACOUNT utilizado para esta sección REL\n" -#: src/elflint.c:1258 +#: src/elflint.c:1259 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "Sección [%2d] '%s': Ãndice de sección de destino inválido\n" -#: src/elflint.c:1270 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "Sección [%2d] '%s': tipo de sección de destino inválido\n" -#: src/elflint.c:1278 +#: src/elflint.c:1279 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "Sección [%2d] '%s': sh_info debe ser cero\n" -#: src/elflint.c:1286 +#: src/elflint.c:1287 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "Sección [%2d] '%s': no reubicaciones para secciones de fusión posibles\n" -#: src/elflint.c:1294 -#, c-format -msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "" -"Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Rela\n" - -#: src/elflint.c:1354 +#: src/elflint.c:1365 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "Reubicación de bandera pero no hay segmento de sólo lectura\n" -#: src/elflint.c:1381 +#: src/elflint.c:1392 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "Sección [%2d] '%s': reubicación %zu: tipo inválido\n" -#: src/elflint.c:1389 +#: src/elflint.c:1400 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -2331,12 +2325,12 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: tipo de reubicación inválido para el " "tipo de archivo\n" -#: src/elflint.c:1397 +#: src/elflint.c:1408 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "Sección [%2d] '%s': reubicación %zu: Ãndice de sÃmbolo inválido\n" -#: src/elflint.c:1415 +#: src/elflint.c:1426 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -2345,12 +2339,12 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: sólo el sÃmbolo '_GLOBAL_OFFSET_TABLE_' " "puede utilizarse con %s\n" -#: src/elflint.c:1432 +#: src/elflint.c:1443 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "Sección [%2d] '%s': reubicación %zu: compensación fuera de lÃmites\n" -#: src/elflint.c:1447 +#: src/elflint.c:1458 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -2359,7 +2353,7 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: reubicación de copia con sÃmbolo de " "tipo %s\n" -#: src/elflint.c:1468 +#: src/elflint.c:1479 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -2368,24 +2362,24 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: sección de sólo-lectura modificada, " "pero no se estableció bandera de reubicación\n" -#: src/elflint.c:1483 +#: src/elflint.c:1494 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "Sección [%2d] '%s': las reubicaciones se hacen con datos cargados y " "descargados\n" -#: src/elflint.c:1523 src/elflint.c:1574 +#: src/elflint.c:1534 src/elflint.c:1585 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "Sección [%2d] '%s': no puede obtener reubicación %zu: %s\n" -#: src/elflint.c:1650 +#: src/elflint.c:1687 #, c-format msgid "more than one dynamic section present\n" msgstr "más de una sección dinámica presente\n" -#: src/elflint.c:1668 +#: src/elflint.c:1705 #, fuzzy, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -2394,44 +2388,44 @@ msgstr "" "sección [%2d] '%s': nombrado como una tabla de cadena para la sección [%2d] " "'%s' pero el tipo no es SHT_STRTAB\n" -#: src/elflint.c:1676 +#: src/elflint.c:1713 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" "Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Dyn\n" -#: src/elflint.c:1681 src/elflint.c:1970 +#: src/elflint.c:1718 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "Sección [%2d] '%s': sh_info no es cero\n" -#: src/elflint.c:1691 +#: src/elflint.c:1728 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "Sección [%2d] '%s': no puede obtener entrada de sección dinámica %zu: %s\n" -#: src/elflint.c:1699 +#: src/elflint.c:1736 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "Sección [%2d] '%s': entradas non-DT_NULL siguen a la entrada DT_NULL\n" -#: src/elflint.c:1706 +#: src/elflint.c:1743 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "Sección [%2d] '%s': entrada %zu: etiqueta desconocida\n" -#: src/elflint.c:1717 +#: src/elflint.c:1754 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "Sección [%2d] '%s': entrada %zu: más de una entrada con etiqueta %s\n" -#: src/elflint.c:1727 +#: src/elflint.c:1764 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "Sección [%2d] '%s': entrada %zu: nivel 2 etiqueta %s utilizada\n" -#: src/elflint.c:1745 +#: src/elflint.c:1782 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -2439,7 +2433,7 @@ msgstr "" "Sección [%2d] '%s': entrada %zu: el valor DT_PLTREL debe ser DT_REL or " "DT_RELA\n" -#: src/elflint.c:1758 +#: src/elflint.c:1795 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -2448,14 +2442,14 @@ msgstr "" "Sección [%2d] '%s': entrada %zu: puntero no coincide con dirección de " "sección [%2d] '%s' al que hace referencia sh_link\n" -#: src/elflint.c:1801 +#: src/elflint.c:1839 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" "Sección [%2d] '%s': entrada %zu: valor %s debe apuntar en segmento cargado\n" -#: src/elflint.c:1816 +#: src/elflint.c:1854 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -2464,46 +2458,46 @@ msgstr "" "sección [%2d] '%s': entrada %zu: valor %s debe ser compensación válida en " "sección [%2d] '%s'\n" -#: src/elflint.c:1836 src/elflint.c:1864 +#: src/elflint.c:1874 src/elflint.c:1902 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "Sección [%2d] '%s': contiene entrada %s pero no %s\n" -#: src/elflint.c:1848 +#: src/elflint.c:1886 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "Sección [%2d] '%s': etiqueta obligatoria %s no está presente\n" -#: src/elflint.c:1857 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n" -#: src/elflint.c:1872 src/elflint.c:1879 +#: src/elflint.c:1910 src/elflint.c:1917 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "Sección [%2d] '%s': no todas las %s, %s, y %s están presentes\n" -#: src/elflint.c:1889 src/elflint.c:1893 +#: src/elflint.c:1927 src/elflint.c:1931 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "Sección [%2d] '%s': etiqueta %s faltante en DSO marcada durante el pre-" "enlace\n" -#: src/elflint.c:1899 +#: src/elflint.c:1937 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "Sección [%2d] '%s': archivo no-DSO marcado como dependencia durante el pre-" "enlace\n" -#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922 +#: src/elflint.c:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "Sección [%2d] '%s': etiqueta %s faltante en pre-enlace ejecutable\n" -#: src/elflint.c:1934 +#: src/elflint.c:1972 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2511,37 +2505,37 @@ msgstr "" "Sección [%2d] '%s': sólo los archivos reubicables pueden tener Ãndice de " "sección extendido\n" -#: src/elflint.c:1944 +#: src/elflint.c:1982 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" "Sección [%2d] '%s': Ãndice de sección extendido no para tabla de sÃmbolos\n" -#: src/elflint.c:1948 +#: src/elflint.c:1986 #, fuzzy, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "Sección [%2d] '%s': Ãndice de sección extendido no para tabla de sÃmbolos\n" -#: src/elflint.c:1953 +#: src/elflint.c:1991 #, c-format msgid "cannot get data for symbol section\n" msgstr "no se puede obtener sección para sÃmbolos\n" -#: src/elflint.c:1956 +#: src/elflint.c:1994 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "Sección [%2d] '%s': tamaño de entrada no coincide con Elf32_Word\n" -#: src/elflint.c:1965 +#: src/elflint.c:2003 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "Sección [%2d] '%s': tabla de Ãndice extendida demasiado pequeña para tabla " "de sÃmbolos\n" -#: src/elflint.c:1980 +#: src/elflint.c:2018 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2550,24 +2544,24 @@ msgstr "" "Sección [%2d] '%s': Ãndice de sección extendida en sección [%2zu] '%s' se " "refiere a la misma tabla de sÃmbolos\n" -#: src/elflint.c:1998 +#: src/elflint.c:2036 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "sÃmbolo 0 debe tener Ãndice de sección extendida cero\n" -#: src/elflint.c:2010 +#: src/elflint.c:2048 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "no puede obtener datos para sÃmbolo %zu\n" -#: src/elflint.c:2015 +#: src/elflint.c:2053 #, c-format msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n" msgstr "" "Ãndice de sección extendida es %<PRIu32> pero Ãndice de sÃmbolo no es " "XINDEX\n" -#: src/elflint.c:2032 src/elflint.c:2089 +#: src/elflint.c:2070 src/elflint.c:2127 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2575,42 +2569,42 @@ msgstr "" "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es " "%ld, se espera %ld)\n" -#: src/elflint.c:2046 src/elflint.c:2103 +#: src/elflint.c:2084 src/elflint.c:2141 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "Sección [%2d] '%s': Ãndice de la cadena es demasiado grande\n" -#: src/elflint.c:2060 src/elflint.c:2117 +#: src/elflint.c:2098 src/elflint.c:2155 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cubetas de dispersión %zu fuera de " "lÃmites\n" -#: src/elflint.c:2070 +#: src/elflint.c:2108 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cadena de dispersión %zu fuera de lÃmites\n" -#: src/elflint.c:2127 +#: src/elflint.c:2165 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cadena de dispersión %<PRIu64> fuera de " "lÃmites\n" -#: src/elflint.c:2140 +#: src/elflint.c:2178 #, fuzzy, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n" -#: src/elflint.c:2152 +#: src/elflint.c:2190 #, fuzzy, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "Sección [%2d] '%s': tamaño de bitmask no es potencia de 2: %u\n" -#: src/elflint.c:2168 +#: src/elflint.c:2206 #, fuzzy, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2619,14 +2613,14 @@ msgstr "" "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es " "%ld, se espera al menos least%ld)\n" -#: src/elflint.c:2177 +#: src/elflint.c:2215 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" "Sección [%2d] '%s': segundo cambio de función de dispersión demasiado " "grande: %u\n" -#: src/elflint.c:2211 +#: src/elflint.c:2249 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2634,7 +2628,7 @@ msgstr "" "Sección [%2d] '%s': cadena de dispersión para cubetas %zu inferior a " "polarización de Ãndice de sÃmbolo\n" -#: src/elflint.c:2232 +#: src/elflint.c:2270 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2643,7 +2637,7 @@ msgstr "" "Sección [%2d] '%s': el sÃmbolo %u al que se hace referencia en cadena para " "cubeta %zu es indefinido\n" -#: src/elflint.c:2245 +#: src/elflint.c:2283 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2651,7 +2645,7 @@ msgstr "" "Sección [%2d] '%s': valor de dispersión para sÃmbolo %u en cadena para " "cubeta %zu está errado\n" -#: src/elflint.c:2254 +#: src/elflint.c:2292 #, fuzzy, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2659,13 +2653,13 @@ msgstr "" "Sección [%2d] '%s': valor de dispersión para sÃmbolo %u en cadena para " "cubeta %zu está errado\n" -#: src/elflint.c:2284 +#: src/elflint.c:2322 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': cadena de dispersión para cubeta %zu fuera de limites\n" -#: src/elflint.c:2289 +#: src/elflint.c:2327 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2673,43 +2667,43 @@ msgstr "" "Sección [%2d] '%s': referencia de sÃmbolo en cadena para cubeta %zu fuera de " "lÃmites\n" -#: src/elflint.c:2295 +#: src/elflint.c:2333 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" "Sección [%2d] '%s': bitmask no coincide con nombres en la tabla de " "dispersión\n" -#: src/elflint.c:2308 +#: src/elflint.c:2346 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "Sección [%2d] '%s': archivos reubicables no pueden tener tablas de " "dispersión\n" -#: src/elflint.c:2326 +#: src/elflint.c:2364 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "Sección [%2d] '%s': tabla de dispersión no para tabla de sÃmbolos dinámicos\n" -#: src/elflint.c:2330 +#: src/elflint.c:2368 #, fuzzy, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "Sección [%2d] '%s': Ãndice de sección de destino inválido\n" -#: src/elflint.c:2340 +#: src/elflint.c:2378 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" "Sección [%2d] '%s': tamaño incorrecto de entrada de tabla de dispersión\n" -#: src/elflint.c:2345 +#: src/elflint.c:2383 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "Sección [%2d] '%s': no marcada para ser asignada\n" -#: src/elflint.c:2350 +#: src/elflint.c:2388 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2718,46 +2712,46 @@ msgstr "" "Sección [%2d] '%s': tabla de dispersión no tiene ni siquiera espacio para " "entradas administrativas iniciales\n" -#: src/elflint.c:2399 +#: src/elflint.c:2437 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" "sh_link en secciones de dispersión [%2zu] '%s' y [%2zu] '%s' no son " "idénticas\n" -#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523 +#: src/elflint.c:2461 src/elflint.c:2526 src/elflint.c:2561 #, fuzzy, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:2444 +#: src/elflint.c:2482 #, fuzzy, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n" -#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536 +#: src/elflint.c:2493 src/elflint.c:2537 src/elflint.c:2574 #, fuzzy, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:2470 +#: src/elflint.c:2508 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: " "%<PRIu32>, nentries: %<PRIu32>\n" msgstr "" -#: src/elflint.c:2557 +#: src/elflint.c:2595 #, fuzzy, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "Sección [%2zu]: nombre inválido\n" -#: src/elflint.c:2567 src/elflint.c:2571 +#: src/elflint.c:2605 src/elflint.c:2609 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "Sección [%2zu] '%s': referencia al Ãndice de sÃmbolo 0\n" -#: src/elflint.c:2578 +#: src/elflint.c:2616 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2766,7 +2760,7 @@ msgstr "" "SÃmbolo %d nombrado en nueva tabla de dispersión en [%2zu] '%s' pero no en " "la tabla de dispersión anterior en [%2zu] '%s'\n" -#: src/elflint.c:2590 +#: src/elflint.c:2628 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2775,12 +2769,12 @@ msgstr "" "SÃmbolo %d nombrado en la tabla de dispersión anterior en [%2zu] '%s' pero " "no en la nueva tabla de dispersión en [%2zu] '%s'\n" -#: src/elflint.c:2606 +#: src/elflint.c:2644 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "Sección [%2d] '%s': nonzero sh_%s para sección NULL\n" -#: src/elflint.c:2626 +#: src/elflint.c:2664 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2788,99 +2782,99 @@ msgstr "" "Sección [%2d] '%s': grupos de sección sólo permitidos en archivos de objeto " "reubicables\n" -#: src/elflint.c:2637 +#: src/elflint.c:2675 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "Sección [%2d] '%s': no puede obtener tabla de sÃmbolos: %s\n" -#: src/elflint.c:2642 +#: src/elflint.c:2680 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "Sección [%2d] '%s': referencia de sección en sh_link no es una tabla de " "sÃmbolos\n" -#: src/elflint.c:2648 +#: src/elflint.c:2686 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "Sección [%2d] '%s': Ãndice de sÃmbolo inválido en sh_info\n" -#: src/elflint.c:2653 +#: src/elflint.c:2691 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "Sección [%2d] '%s': sh_flags no cero\n" -#: src/elflint.c:2660 +#: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "Sección [%2d] '%s': no puede obtener sÃmbolo para firma\n" -#: src/elflint.c:2664 +#: src/elflint.c:2702 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "Sección [%2d] '%s': no puede obtener sÃmbolo para firma\n" -#: src/elflint.c:2669 +#: src/elflint.c:2707 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "" "sección [%2d] '%s': el sÃmbolo de firma no puede ser una cadena vacÃa\n" -#: src/elflint.c:2675 +#: src/elflint.c:2713 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "Sección [%2d] '%s': sh_flags no establecida correctamente\n" -#: src/elflint.c:2681 +#: src/elflint.c:2719 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n" -#: src/elflint.c:2690 +#: src/elflint.c:2728 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" "Sección [%2d] '%s': tamaño de sección no es múltiplo de tamaño de " "(Elf32_Word)\n" -#: src/elflint.c:2696 +#: src/elflint.c:2734 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n" -#: src/elflint.c:2704 +#: src/elflint.c:2742 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "Sección [%2d] '%s': grupo de sección sin miembro\n" -#: src/elflint.c:2708 +#: src/elflint.c:2746 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n" -#: src/elflint.c:2719 +#: src/elflint.c:2757 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "Sección [%2d] '%s': banderas de grupo de sección desconocido\n" -#: src/elflint.c:2731 +#: src/elflint.c:2769 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "Sección [%2d] '%s': Ãndice de sección %Zu fuera de rango\n" -#: src/elflint.c:2740 +#: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "Sección [%2d] '%s': no se puede obtener encabezamiento de sección para " "elemento %zu: %s\n" -#: src/elflint.c:2747 +#: src/elflint.c:2785 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "Sección [%2d] '%s': grupo de sección contiene otro grupo [%2d] '%s'\n" -#: src/elflint.c:2753 +#: src/elflint.c:2791 #, fuzzy, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2889,12 +2883,12 @@ msgstr "" "Sección [%2d] '%s': elemento %Zu hace referencia a sección [%2d] '%s' sin " "establecer bandera SHF_GROUP\n" -#: src/elflint.c:2760 +#: src/elflint.c:2798 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "Sección [%2d] '%s' está contenida en más de un grupo de sección\n" -#: src/elflint.c:2957 +#: src/elflint.c:2995 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2903,7 +2897,7 @@ msgstr "" "Sección [%2d] '%s' se refiere en sh_link a la sección [%2d] '%s' la cual no " "es una tabla de sÃmbolos dinámicos\n" -#: src/elflint.c:2969 +#: src/elflint.c:3007 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2912,29 +2906,29 @@ msgstr "" "Sección [%2d] '%s' tiene un número diferente de entradas a la de la tabla de " "sÃmbolos [%2d] '%s'\n" -#: src/elflint.c:2985 +#: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" "Sección [%2d] '%s': el sÃmbolo %d: no se pueden leer datos de versión\n" -#: src/elflint.c:3001 +#: src/elflint.c:3039 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" "Sección [%2d] '%s': el sÃmbolo %d: el sÃmbolo local con alcance mundial\n" -#: src/elflint.c:3009 +#: src/elflint.c:3047 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "Sección [%2d] '%s': sÃmbolo %d: sÃmbolo local con versión\n" -#: src/elflint.c:3023 +#: src/elflint.c:3061 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "Sección [%2d] '%s': sÃmbolo %d: Ãndice de versión inválida %d\n" -#: src/elflint.c:3028 +#: src/elflint.c:3066 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" @@ -2942,7 +2936,7 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %d: Ãndice de versión %d es para versión " "definida\n" -#: src/elflint.c:3038 +#: src/elflint.c:3076 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" @@ -2950,46 +2944,46 @@ msgstr "" "Sección [%2d] '%s': sÃmbolo %d: Ãndice de versión %d es para la versión " "solicitada\n" -#: src/elflint.c:3091 +#: src/elflint.c:3129 #, c-format msgid "more than one version reference section present\n" msgstr "Más de una sección de referencia de versión presente\n" -#: src/elflint.c:3099 src/elflint.c:3246 +#: src/elflint.c:3137 src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "Sección [%2d] '%s': sh_link no se enlaza a la tabla de cadenas\n" -#: src/elflint.c:3124 src/elflint.c:3300 +#: src/elflint.c:3162 src/elflint.c:3338 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "Sección [%2d] '%s': entrada %d tiene versión %d errada\n" -#: src/elflint.c:3131 src/elflint.c:3307 +#: src/elflint.c:3169 src/elflint.c:3345 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene compensación errada de datos " "auxiliares\n" -#: src/elflint.c:3141 +#: src/elflint.c:3179 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "Sección [%2d] '%s': entrada %d tiene referencia de archivo inválida\n" -#: src/elflint.c:3149 +#: src/elflint.c:3187 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "Sección [%2d] '%s': %d hace referencia a dependencia desconocida\n" -#: src/elflint.c:3161 +#: src/elflint.c:3199 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene bandera " "desconocida\n" -#: src/elflint.c:3169 +#: src/elflint.c:3207 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2998,7 +2992,7 @@ msgstr "" "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene referencia de " "nombre inválida\n" -#: src/elflint.c:3178 +#: src/elflint.c:3216 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -3007,7 +3001,7 @@ msgstr "" "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene valor de " "dispersión: %#x, esperado %#x\n" -#: src/elflint.c:3187 +#: src/elflint.c:3225 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -3016,7 +3010,7 @@ msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene nombre duplicado " "'%s'\n" -#: src/elflint.c:3198 +#: src/elflint.c:3236 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" @@ -3024,14 +3018,14 @@ msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene próximo campo " "errado\n" -#: src/elflint.c:3215 src/elflint.c:3391 +#: src/elflint.c:3253 src/elflint.c:3429 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima " "entrada\n" -#: src/elflint.c:3223 src/elflint.c:3399 +#: src/elflint.c:3261 src/elflint.c:3437 #, fuzzy, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -3040,46 +3034,46 @@ msgstr "" "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima " "entrada\n" -#: src/elflint.c:3238 +#: src/elflint.c:3276 #, c-format msgid "more than one version definition section present\n" msgstr "más de una definición de versión presente de sección\n" -#: src/elflint.c:3285 +#: src/elflint.c:3323 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "Sección [%2d] '%s': más de una definición de BASE\n" -#: src/elflint.c:3289 +#: src/elflint.c:3327 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" "Sección [%2d] '%s': definición de BASE debe tener Ãndice VER_NDX_GLOBAL\n" -#: src/elflint.c:3295 +#: src/elflint.c:3333 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "Sección [%2d] '%s': entrada %d tiene bandera desconocida\n" -#: src/elflint.c:3322 +#: src/elflint.c:3360 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida\n" -#: src/elflint.c:3329 +#: src/elflint.c:3367 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene valor de dispersión errado: %#x, " "esperado %#x\n" -#: src/elflint.c:3337 +#: src/elflint.c:3375 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene nombre de versión duplicado '%s'\n" -#: src/elflint.c:3357 +#: src/elflint.c:3395 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -3087,34 +3081,34 @@ msgstr "" "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida en datos " "auxiliares\n" -#: src/elflint.c:3374 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene próximo campo errado en datos " "auxiliares\n" -#: src/elflint.c:3407 +#: src/elflint.c:3445 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "Sección [%2d] '%s': no hay definición de BASE\n" -#: src/elflint.c:3423 +#: src/elflint.c:3461 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "Sección [%2d] '%s': desconocida versión principal '%s'\n" -#: src/elflint.c:3448 +#: src/elflint.c:3486 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "Sección [%2d] '%s': sección de atributos de objeto vacÃo\n" -#: src/elflint.c:3464 +#: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "Sección[%2d] '%s': formato de atributo no reconocido\n" -#: src/elflint.c:3475 +#: src/elflint.c:3513 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" @@ -3122,21 +3116,21 @@ msgstr "" "Sección[%2d] '%s': compensación %zu: campo de longitud cero en sección de " "atributo\n" -#: src/elflint.c:3484 +#: src/elflint.c:3522 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "Sección[%2d] '%s': compensación %zu: longitud inválida en sección de " "atributo\n" -#: src/elflint.c:3496 +#: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" "Sección[%2d] '%s': compensación %zu: cadena de nombre de proveedor sin " "terminar\n" -#: src/elflint.c:3513 +#: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -3144,12 +3138,12 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de sub-" "sección de atributo\n" -#: src/elflint.c:3522 +#: src/elflint.c:3560 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "Sección [%2d] '%s': compensación %zu: sección de atributo truncado\n" -#: src/elflint.c:3531 +#: src/elflint.c:3569 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" @@ -3157,7 +3151,7 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: campo de longitud cero length en sub-" "sección de atributo\n" -#: src/elflint.c:3546 +#: src/elflint.c:3584 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" @@ -3166,7 +3160,7 @@ msgstr "" "atributo\n" #. Tag_File -#: src/elflint.c:3557 +#: src/elflint.c:3595 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -3174,26 +3168,26 @@ msgstr "" "Sección[%2d] '%s': compensación %zu: sub-sección de atributo tiene etiqueta " "inesperada %u\n" -#: src/elflint.c:3578 +#: src/elflint.c:3616 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "Sección[%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de " "atributo\n" -#: src/elflint.c:3589 +#: src/elflint.c:3627 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" "Sección [%2d] '%s': compensación %zu: cadena sin terminar en atributo\n" -#: src/elflint.c:3602 +#: src/elflint.c:3640 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" "Sección [%2d] '%s': compensación %zu: etiqueta de atributo no reconocida %u\n" -#: src/elflint.c:3606 +#: src/elflint.c:3644 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" @@ -3201,12 +3195,12 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: no reconocido %s valor de atributo " "%<PRIu64>\n" -#: src/elflint.c:3616 +#: src/elflint.c:3654 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "Sección [%2d] '%s': compensación %zu: proveedor '%s' desconocido\n" -#: src/elflint.c:3622 +#: src/elflint.c:3660 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -3214,47 +3208,47 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: extra bytes después de la última " "sección de atributo\n" -#: src/elflint.c:3719 +#: src/elflint.c:3758 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "no puede obtener encabezamiento de sección de sección zeroth\n" -#: src/elflint.c:3723 +#: src/elflint.c:3762 #, c-format msgid "zeroth section has nonzero name\n" msgstr "Sección zeroth tiene nombre nonzero\n" -#: src/elflint.c:3725 +#: src/elflint.c:3764 #, c-format msgid "zeroth section has nonzero type\n" msgstr "Sección zeroth tiene tipo nonzero\n" -#: src/elflint.c:3727 +#: src/elflint.c:3766 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "Sección zeroth tiene banderas nonzero\n" -#: src/elflint.c:3729 +#: src/elflint.c:3768 #, c-format msgid "zeroth section has nonzero address\n" msgstr "Sección zeroth tiene dirección nonzero\n" -#: src/elflint.c:3731 +#: src/elflint.c:3770 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "Sección zeroth tiene compensación nonzero\n" -#: src/elflint.c:3733 +#: src/elflint.c:3772 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "Sección zeroth tiene valor de alineación nonzero\n" -#: src/elflint.c:3735 +#: src/elflint.c:3774 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "Sección zeroth tiene valor de tamaño de entrada nonzero\n" -#: src/elflint.c:3738 +#: src/elflint.c:3777 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -3263,7 +3257,7 @@ msgstr "" "Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento " "ELF tiene valor shnum nonzero\n" -#: src/elflint.c:3742 +#: src/elflint.c:3781 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3272,7 +3266,7 @@ msgstr "" "Sección zeroth tiene valor de enlace nonzero mientras que el encabezamiento " "ELF no señala sobreflujo en shstrndx\n" -#: src/elflint.c:3746 +#: src/elflint.c:3785 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3281,27 +3275,27 @@ msgstr "" "la sección zeroth tiene un valor de enlace distinto a cero mientras que el " "encabezamiento ELF no señala desbordamiento en phnum\n" -#: src/elflint.c:3764 +#: src/elflint.c:3803 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "No se puede obtener encabezamiento para sección [%2zu] '%s': %s\n" -#: src/elflint.c:3773 +#: src/elflint.c:3812 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "Sección [%2zu]: nombre inválido\n" -#: src/elflint.c:3800 +#: src/elflint.c:3839 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "Sección [%2d] '%s' tiene tipo errado: %s esperado, es %s\n" -#: src/elflint.c:3817 +#: src/elflint.c:3856 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "Sección [%2zu] '%s' tiene banderas erradas: %s esperado, es %s\n" -#: src/elflint.c:3835 +#: src/elflint.c:3874 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -3309,12 +3303,12 @@ msgstr "" "Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, " "es %s\n" -#: src/elflint.c:3852 +#: src/elflint.c:3891 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "Sección [%2zu] '%s' presente en archivo objeto\n" -#: src/elflint.c:3858 src/elflint.c:3890 +#: src/elflint.c:3897 src/elflint.c:3929 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -3322,7 +3316,7 @@ msgstr "" "Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un " "segmento cargable\n" -#: src/elflint.c:3863 src/elflint.c:3895 +#: src/elflint.c:3902 src/elflint.c:3934 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3331,7 +3325,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay " "segmentos cargables\n" -#: src/elflint.c:3871 +#: src/elflint.c:3910 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3339,22 +3333,22 @@ msgstr "" "Sección [%2zu] '%s' es tabla de Ãndice de sección de extensión en archivo no-" "objeto\n" -#: src/elflint.c:3914 +#: src/elflint.c:3953 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "Sección [%2zu] '%s': tamaño no es múltiplo de tamaño de entrada\n" -#: src/elflint.c:3919 +#: src/elflint.c:3958 #, c-format msgid "cannot get section header\n" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/elflint.c:3929 +#: src/elflint.c:3968 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n" -#: src/elflint.c:3949 +#: src/elflint.c:3988 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" @@ -3362,76 +3356,76 @@ msgstr "" "Sección [%2zu] '%s' contiene bandera(s) de procesador-especÃfico inválidas " "%#<PRIx64>\n" -#: src/elflint.c:3959 +#: src/elflint.c:3998 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#<PRIx64>\n" -#: src/elflint.c:3967 +#: src/elflint.c:4006 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elflint.c:3977 +#: src/elflint.c:4016 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elflint.c:3982 +#: src/elflint.c:4021 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n" -#: src/elflint.c:3988 +#: src/elflint.c:4027 #, fuzzy, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n" -#: src/elflint.c:3994 +#: src/elflint.c:4033 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de enlace\n" -#: src/elflint.c:3999 +#: src/elflint.c:4038 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de información\n" -#: src/elflint.c:4006 +#: src/elflint.c:4045 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" "Sección [%2zu] '%s': bandera de cadenas establecida sin bandera de fusión\n" -#: src/elflint.c:4011 +#: src/elflint.c:4050 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "Sección [%2zu] '%s': bandera de fusión establecida pero tamaño de entrada es " "cero\n" -#: src/elflint.c:4030 +#: src/elflint.c:4069 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" "Sección [%2zu] '%s' tiene un tipo %d inesperado para una sección ejecutable\n" -#: src/elflint.c:4039 +#: src/elflint.c:4078 #, fuzzy, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n" -#: src/elflint.c:4046 +#: src/elflint.c:4085 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "Sección [%2zu] '%s' es tanto de ejecución como de escritura\n" -#: src/elflint.c:4077 +#: src/elflint.c:4116 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3440,7 +3434,7 @@ msgstr "" "Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de " "encabezamiento de programa %d\n" -#: src/elflint.c:4087 +#: src/elflint.c:4126 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3449,7 +3443,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leÃda desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4113 +#: src/elflint.c:4152 #, fuzzy, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3458,7 +3452,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leÃda desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4124 +#: src/elflint.c:4163 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3467,18 +3461,18 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero no es leÃda desde el fichero " "en segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4135 +#: src/elflint.c:4174 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "Sección [%2zu] '%s' es ejecutable en segmento no ejecutable %d\n" -#: src/elflint.c:4145 +#: src/elflint.c:4184 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "Sección [%2zu] '%s' es de escritura en segmento que no es de escritura %d\n" -#: src/elflint.c:4155 +#: src/elflint.c:4194 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3486,7 +3480,7 @@ msgstr "" "Sección [%2zu] '%s': asignación de bandera establecida pero sección no en " "ningún segmento cargado\n" -#: src/elflint.c:4161 +#: src/elflint.c:4200 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3495,7 +3489,7 @@ msgstr "" "Sección [%2zu] '%s': encabezamiento ELF dice esta es la tabla de cadena de " "encabezamiento de sección, pero el tipo no es SHT_TYPE\n" -#: src/elflint.c:4169 +#: src/elflint.c:4208 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3503,32 +3497,32 @@ msgstr "" "sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de sÃmbolos " "dinámicos\n" -#: src/elflint.c:4220 +#: src/elflint.c:4263 #, c-format msgid "more than one version symbol table present\n" msgstr "Más de una tabla de sÃmbolos presente\n" -#: src/elflint.c:4243 +#: src/elflint.c:4286 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" "Entrada de encabezamiento de programa INTERP pero no la sección .interp\n" -#: src/elflint.c:4254 +#: src/elflint.c:4297 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" "segmento cargable [%u] es ejecutable pero no contiene secciones ejecutables\n" -#: src/elflint.c:4260 +#: src/elflint.c:4303 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "segmento cargable [%u] es de escritura pero contiene secciones protegidas " "contra escritura\n" -#: src/elflint.c:4271 +#: src/elflint.c:4314 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3537,26 +3531,26 @@ msgstr "" "Sección no .gnu.versym presente, pero la sección .gnu.versym_d o la sección ." "gnu.versym_r existen\n" -#: src/elflint.c:4284 +#: src/elflint.c:4327 #, c-format msgid "duplicate version index %d\n" msgstr "Duplicar Ãndice de versión %d\n" -#: src/elflint.c:4298 +#: src/elflint.c:4341 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "Sección .gnu.versym presente sin las secciones .gnu.versym_d o .gnu." "versym_r\n" -#: src/elflint.c:4347 +#: src/elflint.c:4390 #, c-format msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n" msgstr "" "phdr[%d]: tipo de nota de fichero core desconocido %<PRIu32> en compensación " "%<PRIu64>\n" -#: src/elflint.c:4351 +#: src/elflint.c:4394 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" @@ -3564,7 +3558,7 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4407 +#: src/elflint.c:4450 #, fuzzy, c-format msgid "" "phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " @@ -3573,7 +3567,7 @@ msgstr "" "phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4412 +#: src/elflint.c:4455 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " @@ -3582,40 +3576,40 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4431 +#: src/elflint.c:4474 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: no hay entradas de nota definidas para el tipo de archivo\n" -#: src/elflint.c:4451 +#: src/elflint.c:4494 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: no puede obtener contenido de sección de nota: %s\n" -#: src/elflint.c:4454 +#: src/elflint.c:4497 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "phdr[%d]: extra %<PRIu64> bytes después de la última nota\n" -#: src/elflint.c:4475 +#: src/elflint.c:4518 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de " "archivo\n" -#: src/elflint.c:4482 +#: src/elflint.c:4525 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" "Sección[%2d] '%s': no se puede obtener el contenido de sección de nota\n" -#: src/elflint.c:4485 +#: src/elflint.c:4528 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "Sección[%2d] '%s': extra %<PRIu64> bytes después de la última nota\n" -#: src/elflint.c:4503 +#: src/elflint.c:4546 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3623,145 +3617,145 @@ msgstr "" "Sólo ejecutables, objetos compartidos y ficheros core pueden tener " "encabezamientos de programas\n" -#: src/elflint.c:4518 +#: src/elflint.c:4561 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "no se puede obtener entrada de encabezamiento %d: %s\n" -#: src/elflint.c:4528 +#: src/elflint.c:4571 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" "entrada de encabezamiento de programa %d: tipo %#<PRIx64> de entrada de " "encabezamiento de programa desconocido\n" -#: src/elflint.c:4539 +#: src/elflint.c:4582 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "Más de una entrada INTERP en encabezamiento de programa\n" -#: src/elflint.c:4547 +#: src/elflint.c:4590 #, c-format msgid "more than one TLS entry in program header\n" msgstr "más de una entrada TLS en encabezamiento de programa\n" -#: src/elflint.c:4554 +#: src/elflint.c:4597 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "ejecutable estático no puede tener secciones dinámicas\n" -#: src/elflint.c:4568 +#: src/elflint.c:4611 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "Referencia de sección dinámica en encabezamiento de programa tiene " "compensación errada\n" -#: src/elflint.c:4571 +#: src/elflint.c:4614 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "No coinciden tamaño de sección dinámica en programa y encabezamiento de " "sección\n" -#: src/elflint.c:4581 +#: src/elflint.c:4624 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "Más de una entrada GNU_RELRO en encabezamiento de programa\n" -#: src/elflint.c:4602 +#: src/elflint.c:4645 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "Segmento cargable GNU_RELRO que se aplica no es de escritura\n" -#: src/elflint.c:4613 +#: src/elflint.c:4656 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "Banderas de segmento cargable [%u] no coinciden con banderas GNU_RELRO [%u]\n" -#: src/elflint.c:4620 +#: src/elflint.c:4663 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4629 src/elflint.c:4652 +#: src/elflint.c:4672 src/elflint.c:4695 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "Segmento %s no contenido en un segmento cargable\n" -#: src/elflint.c:4658 +#: src/elflint.c:4701 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" "Compensación de encabezamiento de programa en encabezamiento ELF y entrada " "PHDR no coinciden" -#: src/elflint.c:4685 +#: src/elflint.c:4728 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "Referencia de tabla de búsqueda de marco de llamada en encabezamiento de " "programa tiene una compensación errada\n" -#: src/elflint.c:4688 +#: src/elflint.c:4731 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "Tamaño de tabla de búsqueda de marco de llamada no coincide con programa y " "encabezamiento de sección\n" -#: src/elflint.c:4701 +#: src/elflint.c:4744 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "PT_GNU_EH_FRAME presente pero no la sección.eh_frame_hdr\n" -#: src/elflint.c:4709 +#: src/elflint.c:4752 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabla de búsqueda de marco de llamada debe ser asignada\n" -#: src/elflint.c:4712 +#: src/elflint.c:4755 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:4716 +#: src/elflint.c:4759 #, c-format msgid "call frame search table must not be writable\n" msgstr "" "tabla de búsqueda de marco de llamada no debe tener permiso de escritura\n" -#: src/elflint.c:4719 +#: src/elflint.c:4762 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n" -#: src/elflint.c:4724 +#: src/elflint.c:4767 #, c-format msgid "call frame search table must not be executable\n" msgstr "tabla de búsqueda de marco de llamada no debe ser ejecutable\n" -#: src/elflint.c:4727 +#: src/elflint.c:4770 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:4741 +#: src/elflint.c:4784 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" "entrada de encabezamiento de programa %d: tamaño de fichero mayor que el " "tamaño de memoria\n" -#: src/elflint.c:4748 +#: src/elflint.c:4791 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" "entrada de encabezamiento de programa %d: alineamiento no es potencia de 2\n" -#: src/elflint.c:4751 +#: src/elflint.c:4794 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3770,7 +3764,7 @@ msgstr "" "entrada de encabezamiento de programa %d: compensación de fichero y " "dirección virtual no módulo de alineación\n" -#: src/elflint.c:4764 +#: src/elflint.c:4807 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3779,17 +3773,17 @@ msgstr "" "ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de " "encabezamiento de programa PT_GNU_EH_FRAME" -#: src/elflint.c:4798 +#: src/elflint.c:4841 #, c-format msgid "cannot read ELF header: %s\n" msgstr "No se puede leer encabezamiento ELF: %s\n" -#: src/elflint.c:4810 +#: src/elflint.c:4853 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "no sepuede crear fichero nuevo" -#: src/elflint.c:4831 +#: src/elflint.c:4874 #, c-format msgid "text relocation flag set but not needed\n" msgstr "Bandera de reubicación de texto establecida pero no necesaria\n" @@ -4010,7 +4004,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: ERROR INTERNO %d (%s-%s): %s" #: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307 -#: src/strip.c:2766 +#: src/strip.c:2763 #, c-format msgid "while closing '%s'" msgstr "error al cerrar '%s'" @@ -4054,13 +4048,13 @@ msgstr "%s%s%s: no se reconoció el formato de fichero" msgid "cannot create search tree" msgstr "No se puede crear el árbol de búsqueda" -#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663 -#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097 -#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809 -#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613 -#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803 -#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467 -#: src/strip.c:1093 +#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685 +#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123 +#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854 +#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896 +#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029 +#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396 +#: src/size.c:467 src/strip.c:1093 #, c-format msgid "cannot get section header string table index" msgstr "no se puede obtener Ãndice de cadena de encabezamiento de sección" @@ -4170,7 +4164,7 @@ msgstr "Sólo muestra información para NOMBRE de sección." msgid "Show information from FILEs (a.out by default)." msgstr "Muestra información de FICHEROS (a.out por defecto)." -#: src/objdump.c:217 src/readelf.c:608 +#: src/objdump.c:217 src/readelf.c:630 msgid "No operation specified.\n" msgstr "No se especificó una operación.\n" @@ -4179,11 +4173,11 @@ msgstr "No se especificó una operación.\n" msgid "while close `%s'" msgstr "mientras cierra `%s'" -#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383 +#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409 msgid "INVALID SYMBOL" msgstr "SÃMBOLO INVÃLIDO" -#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419 +#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445 msgid "INVALID SECTION" msgstr "SECCIÓN INVÃLIDA" @@ -4241,90 +4235,90 @@ msgstr "%s: no es un archivo" msgid "error while freeing sub-ELF descriptor: %s" msgstr "error al liberar descriptor sub-ELF: %s" -#: src/readelf.c:96 +#: src/readelf.c:97 #, fuzzy msgid "ELF input selection:" msgstr "Selección de salida de ELF:" -#: src/readelf.c:98 +#: src/readelf.c:99 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "" "Used with -w to find the skeleton Compile Units in FILE associated with the " "Split Compile units in a .dwo input file" msgstr "" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "ELF output selection:" msgstr "Selección de salida de ELF:" -#: src/readelf.c:105 +#: src/readelf.c:106 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Todo esto mas -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the dynamic segment" msgstr "Mostrar el segmento dinámico" -#: src/readelf.c:107 +#: src/readelf.c:108 msgid "Display the ELF file header" msgstr "Mostrar el encabezamiento del fichero ELF" -#: src/readelf.c:109 +#: src/readelf.c:110 msgid "Display histogram of bucket list lengths" msgstr "Mostrar histograma de las longitudes de las listas de cubetas" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Display the program headers" msgstr "Mostrar encabezamientos de programa" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "Display relocations" msgstr "Mostrar reubicaciones" -#: src/readelf.c:113 +#: src/readelf.c:114 #, fuzzy msgid "Display the section groups" msgstr "Mostrar los encabezados de las secciones" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Display the sections' headers" msgstr "Mostrar los encabezados de las secciones" -#: src/readelf.c:117 +#: src/readelf.c:118 #, fuzzy msgid "Display the symbol table sections" msgstr "Mostrar la tabla de sÃmbolos" -#: src/readelf.c:120 +#: src/readelf.c:121 #, fuzzy msgid "Display (only) the dynamic symbol table" msgstr "Mostrar sólo sÃmbolos externos" -#: src/readelf.c:121 +#: src/readelf.c:122 msgid "Display versioning information" msgstr "Mostrar información de versión" -#: src/readelf.c:122 +#: src/readelf.c:123 msgid "Display the ELF notes" msgstr "Mostrar las notas ELF" -#: src/readelf.c:124 +#: src/readelf.c:125 msgid "Display architecture specific information, if any" msgstr "Mostrar información especÃfica de la arquitectura (si es que la hay)" -#: src/readelf.c:126 +#: src/readelf.c:127 msgid "Display sections for exception handling" msgstr "Muestra secciones para manejo de excepciones" -#: src/readelf.c:128 +#: src/readelf.c:129 msgid "Additional output selection:" msgstr "Selección de salida adicional:" -#: src/readelf.c:130 +#: src/readelf.c:131 #, fuzzy msgid "" "Display DWARF section content. SECTION can be one of abbrev, addr, aranges, " @@ -4335,85 +4329,85 @@ msgstr "" "siguiente: abbrev, aranges, frame, info, loc, line, ranges, pubnames, str, " "macinfo, o exception" -#: src/readelf.c:134 +#: src/readelf.c:135 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "Vuelca los contenidos no interpretados de SECCIÓN, por número o nombre" -#: src/readelf.c:136 +#: src/readelf.c:137 msgid "Print string contents of sections" msgstr "Imprime contenido de cadena de secciones" -#: src/readelf.c:139 +#: src/readelf.c:140 msgid "Display the symbol index of an archive" msgstr "Muestra el Ãndice de sÃmbolos de un archivo" -#: src/readelf.c:141 +#: src/readelf.c:142 msgid "Use the dynamic segment when possible for displaying info" msgstr "" -#: src/readelf.c:143 +#: src/readelf.c:144 msgid "Output control:" msgstr "Control de salida:" -#: src/readelf.c:145 +#: src/readelf.c:146 msgid "Do not find symbol names for addresses in DWARF data" msgstr "" "No se encuentran los nombres de sÃmbolos para direcciones en datos DWARF" -#: src/readelf.c:147 +#: src/readelf.c:148 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "" "No se encuentran los nombres de sÃmbolos para direcciones en datos DWARF" -#: src/readelf.c:149 +#: src/readelf.c:150 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:151 +#: src/readelf.c:152 msgid "" "Show compression information for compressed sections (when used with -S); " "decompress section before dumping data (when used with -p or -x)" msgstr "" #. Short description of program. -#: src/readelf.c:156 +#: src/readelf.c:157 msgid "Print information from ELF file in human-readable form." msgstr "" "Imprimir información del fichero ELF en una forma comprensible para los " "seres humanos." #. Look up once. -#: src/readelf.c:373 +#: src/readelf.c:395 msgid "yes" msgstr "sÃ" -#: src/readelf.c:374 +#: src/readelf.c:396 msgid "no" msgstr "no" -#: src/readelf.c:576 +#: src/readelf.c:598 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Sección de depuración DWARF desconocida `%s'.\n" -#: src/readelf.c:647 src/readelf.c:758 +#: src/readelf.c:669 src/readelf.c:780 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "no se puede crear descriptor ELF: %s" -#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188 +#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188 #, c-format msgid "cannot determine number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" -#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508 +#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530 #, c-format msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033 +#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442 #: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610 #: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222 #: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470 @@ -4422,120 +4416,120 @@ msgstr "No se puede encontrar la sección: %s" msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" -#: src/readelf.c:689 +#: src/readelf.c:711 #, fuzzy, c-format msgid "cannot get section name" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989 -#: src/readelf.c:11173 +#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332 +#: src/readelf.c:11516 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" -#: src/readelf.c:714 +#: src/readelf.c:736 #, fuzzy, c-format msgid "cannot create temp file '%s'" msgstr "no se puede crear fichero nuevo '%s': %s" -#: src/readelf.c:723 +#: src/readelf.c:745 #, fuzzy, c-format msgid "cannot write section data" msgstr "no se puede leer la sección de datos: %s" -#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775 +#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "error al cerrar el descriptor ELF: %s" -#: src/readelf.c:736 +#: src/readelf.c:758 #, fuzzy, c-format msgid "error while rewinding file descriptor" msgstr "error al cerrar el descriptor ELF: %s" -#: src/readelf.c:770 +#: src/readelf.c:792 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' no es un archivo, no se puede imprimir Ãndice de archivo" -#: src/readelf.c:874 +#: src/readelf.c:896 #, c-format msgid "cannot stat input file" msgstr "no sepudo stat archivo de entrada" -#: src/readelf.c:876 +#: src/readelf.c:898 #, c-format msgid "input file is empty" msgstr "archivo de entrada vacÃo" -#: src/readelf.c:878 +#: src/readelf.c:900 #, c-format msgid "failed reading '%s': %s" msgstr "Falló lectura de '%s': %s" -#: src/readelf.c:907 +#: src/readelf.c:929 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "No se puede obtener contenido de sección %zu en '%s': %s" -#: src/readelf.c:966 +#: src/readelf.c:988 #, c-format msgid "cannot read ELF header: %s" msgstr "no se pudo leer encabezamiento ELF: %s" -#: src/readelf.c:974 +#: src/readelf.c:996 #, c-format msgid "cannot create EBL handle" msgstr "no se puede crear EBL" -#: src/readelf.c:985 +#: src/readelf.c:1007 #, c-format msgid "cannot determine number of program headers: %s" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/readelf.c:1017 +#: src/readelf.c:1039 #, fuzzy, c-format msgid "cannot read ELF: %s" msgstr "no sepuede leer %s: %s" -#: src/readelf.c:1050 +#: src/readelf.c:1072 #, fuzzy #| msgid "cannot get section: %s" msgid "cannot find section" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:1087 +#: src/readelf.c:1109 msgid "NONE (None)" msgstr "NONE (Ninguno)" -#: src/readelf.c:1088 +#: src/readelf.c:1110 msgid "REL (Relocatable file)" msgstr "REL (Fichero reubicable)" -#: src/readelf.c:1089 +#: src/readelf.c:1111 msgid "EXEC (Executable file)" msgstr "EXEC (Fichero ejecutable)" -#: src/readelf.c:1090 +#: src/readelf.c:1112 msgid "DYN (Shared object file)" msgstr "DYN (Fichero objeto compartido)" -#: src/readelf.c:1091 +#: src/readelf.c:1113 msgid "CORE (Core file)" msgstr "CORE (Fichero núcleo)" -#: src/readelf.c:1096 +#: src/readelf.c:1118 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS Specific: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1098 +#: src/readelf.c:1120 #, c-format msgid "Processor Specific: (%x)\n" msgstr "EspecÃfico del procesador: (%x)\n" -#: src/readelf.c:1108 +#: src/readelf.c:1130 msgid "" "ELF Header:\n" " Magic: " @@ -4543,7 +4537,7 @@ msgstr "" "Encabezamiento ELF:\n" " Mágico: " -#: src/readelf.c:1112 +#: src/readelf.c:1134 #, c-format msgid "" "\n" @@ -4552,125 +4546,125 @@ msgstr "" "\n" " Clase: %s\n" -#: src/readelf.c:1117 +#: src/readelf.c:1139 #, c-format msgid " Data: %s\n" msgstr " Datos: %s\n" -#: src/readelf.c:1123 +#: src/readelf.c:1145 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Versión ident: %hhd %s\n" -#: src/readelf.c:1125 src/readelf.c:1147 +#: src/readelf.c:1147 src/readelf.c:1169 msgid "(current)" msgstr "(actual)" -#: src/readelf.c:1129 +#: src/readelf.c:1151 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:1132 +#: src/readelf.c:1154 #, c-format msgid " ABI Version: %hhd\n" msgstr " Versión ABI: %hhd\n" -#: src/readelf.c:1135 +#: src/readelf.c:1157 msgid " Type: " msgstr " Tipo: " -#: src/readelf.c:1140 +#: src/readelf.c:1162 #, c-format msgid " Machine: %s\n" msgstr " Máquina: %s\n" -#: src/readelf.c:1142 +#: src/readelf.c:1164 #, fuzzy, c-format msgid " Machine: <unknown>: 0x%x\n" msgstr " Máquina: %s\n" -#: src/readelf.c:1145 +#: src/readelf.c:1167 #, c-format msgid " Version: %d %s\n" msgstr " Versión: %d %s\n" -#: src/readelf.c:1149 +#: src/readelf.c:1171 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Dirección de punto de entrada: %#<PRIx64>\n" -#: src/readelf.c:1152 +#: src/readelf.c:1174 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n" -#: src/readelf.c:1153 src/readelf.c:1156 +#: src/readelf.c:1175 src/readelf.c:1178 msgid "(bytes into file)" msgstr " (bytes en el archivo)" -#: src/readelf.c:1155 +#: src/readelf.c:1177 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n" -#: src/readelf.c:1158 +#: src/readelf.c:1180 #, c-format msgid " Flags: %s\n" msgstr " Indicadores: %s\n" -#: src/readelf.c:1161 +#: src/readelf.c:1183 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n" -#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182 +#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204 msgid "(bytes)" msgstr "(bytes)" -#: src/readelf.c:1164 +#: src/readelf.c:1186 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr "" " Tamaño de las entradas en encabezamiento del programa: %<PRId16> %s\n" -#: src/readelf.c:1167 +#: src/readelf.c:1189 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>" -#: src/readelf.c:1174 +#: src/readelf.c:1196 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> in [0].sh_info)" -#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208 +#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230 msgid " ([0] not available)" msgstr " ([0] no disponible)" -#: src/readelf.c:1181 +#: src/readelf.c:1203 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr "" " Tamaño de las entradas en el encabezamiento de sección: %<PRId16> %s\n" -#: src/readelf.c:1184 +#: src/readelf.c:1206 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>" -#: src/readelf.c:1191 +#: src/readelf.c:1213 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> en [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1204 +#: src/readelf.c:1226 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> en [0].sh_link)" -#: src/readelf.c:1212 +#: src/readelf.c:1234 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4679,19 +4673,19 @@ msgstr "" " Ãndice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n" "\n" -#: src/readelf.c:1216 +#: src/readelf.c:1238 #, c-format msgid "" " Section header string table index: %<PRId16>\n" "\n" msgstr " Ãndice de tabla de cadenas de sección de encabezamiento: %<PRId16>\n" -#: src/readelf.c:1266 src/readelf.c:1474 +#: src/readelf.c:1288 src/readelf.c:1496 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" -#: src/readelf.c:1269 +#: src/readelf.c:1291 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4700,16 +4694,16 @@ msgstr "" "Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n" "\n" -#: src/readelf.c:1277 +#: src/readelf.c:1299 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "no se puede obtener Ãndice de cadena de encabezamiento de sección" -#: src/readelf.c:1280 +#: src/readelf.c:1302 msgid "Section Headers:" msgstr "encabezamientos de sección:" -#: src/readelf.c:1283 +#: src/readelf.c:1305 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4717,7 +4711,7 @@ msgstr "" "[Nr] Nombre Tipo Dirección Off Tamaño Inf Al " "Enlace banderas ES" -#: src/readelf.c:1285 +#: src/readelf.c:1307 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4725,36 +4719,36 @@ msgstr "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" -#: src/readelf.c:1290 +#: src/readelf.c:1312 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1292 +#: src/readelf.c:1314 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1370 +#: src/readelf.c:1392 #, fuzzy, c-format msgid "bad compression header for section %zd: %s" msgstr "No se puede obtener el encabezamiento de sección %zu: %s" -#: src/readelf.c:1381 +#: src/readelf.c:1403 #, fuzzy, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "No se pueden obtener datos para la sección %d: %s" -#: src/readelf.c:1399 +#: src/readelf.c:1421 msgid "Program Headers:" msgstr "encabezamientos de programa:" -#: src/readelf.c:1401 +#: src/readelf.c:1423 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Tipo Compensación Dirección Virtual Dirección " "FÃsica Tamaño de Fichero Tamaño de Memoria Alineación de bandera" -#: src/readelf.c:1404 +#: src/readelf.c:1426 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4762,12 +4756,12 @@ msgstr "" " Tipo Compensación Dirección Virtual Dirección " "FÃsica Tamaño de Fichero Tamaño de Memoria Alineación de bandera" -#: src/readelf.c:1461 +#: src/readelf.c:1483 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Solicitando intérprete de programa: %s]\n" -#: src/readelf.c:1486 +#: src/readelf.c:1508 msgid "" "\n" " Section to Segment mapping:\n" @@ -4777,12 +4771,12 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 +#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" -#: src/readelf.c:1641 +#: src/readelf.c:1663 #, c-format msgid "" "\n" @@ -4797,7 +4791,7 @@ msgstr[1] "" "\n" "Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1646 +#: src/readelf.c:1668 #, c-format msgid "" "\n" @@ -4812,32 +4806,32 @@ msgstr[1] "" "\n" "Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1654 +#: src/readelf.c:1676 msgid "<INVALID SYMBOL>" msgstr "<SÃMBOLO INVÃLIDO>" -#: src/readelf.c:1668 +#: src/readelf.c:1690 msgid "<INVALID SECTION>" msgstr "<SECCIÓN INVÃLIDA>" -#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881 -#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956 -#: src/readelf.c:12963 +#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212 +#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365 +#: src/readelf.c:13372 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585 +#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" -#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890 -#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619 +#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221 +#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr ".debug_line section inválida" -#: src/readelf.c:1867 +#: src/readelf.c:1889 #, c-format msgid "" "\n" @@ -4858,7 +4852,7 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:1880 +#: src/readelf.c:1902 #, fuzzy, c-format #| msgid "" #| "\n" @@ -4887,41 +4881,41 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:1890 +#: src/readelf.c:1912 msgid " Type Value\n" msgstr " Tipo Valor\n" -#: src/readelf.c:1899 +#: src/readelf.c:1921 #, fuzzy msgid "cannot get string table by using dynamic segment" msgstr "no se pueden obtener datos de sección: %s" -#: src/readelf.c:1938 +#: src/readelf.c:1960 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteca compartida: [%s]\n" -#: src/readelf.c:1942 +#: src/readelf.c:1964 #, c-format msgid "Library soname: [%s]\n" msgstr "Nombre-so de la biblioteca: [%s]\n" -#: src/readelf.c:1946 +#: src/readelf.c:1968 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath de la biblioteca: [%s]\n" -#: src/readelf.c:1950 +#: src/readelf.c:1972 #, c-format msgid "Library runpath: [%s]\n" msgstr "Ruta de ejecución de la biblioteca: [%s]\n" -#: src/readelf.c:1969 +#: src/readelf.c:1993 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bytes)\n" -#: src/readelf.c:2083 src/readelf.c:2272 +#: src/readelf.c:2109 src/readelf.c:2298 #, c-format msgid "" "\n" @@ -4930,7 +4924,7 @@ msgstr "" "\n" "Tabla de sÃmbolos inválida en compensación %#0<PRIx64>\n" -#: src/readelf.c:2100 src/readelf.c:2289 +#: src/readelf.c:2126 src/readelf.c:2315 #, c-format msgid "" "\n" @@ -4955,7 +4949,8 @@ msgstr[1] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:2115 src/readelf.c:2304 +#. A .relr.dyn section does not refer to a specific section. +#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485 #, c-format msgid "" "\n" @@ -4972,29 +4967,39 @@ msgstr[1] "" "Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene " "entradas %d:\n" -#: src/readelf.c:2125 +#: src/readelf.c:2151 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:2127 +#: src/readelf.c:2153 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225 -#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396 -#: src/readelf.c:2418 src/readelf.c:2431 +#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251 +#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422 +#: src/readelf.c:2444 src/readelf.c:2457 msgid "<INVALID RELOC>" msgstr "<REUBIC INVÃLIDA>" -#: src/readelf.c:2314 +#: src/readelf.c:2340 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2316 +#: src/readelf.c:2342 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2558 +#: src/readelf.c:2654 +#, c-format +msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" +msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" + +#: src/readelf.c:2750 +#, c-format +msgid "bad dynamic symbol" +msgstr "sÃmbolo dinámico erróneo" + +#: src/readelf.c:2868 #, c-format msgid "" "\n" @@ -5009,40 +5014,34 @@ msgstr[1] "" "\n" "La tabla de sÃmbolos [%2u] '%s' contiene entradas %u:\n" -#: src/readelf.c:2563 +#: src/readelf.c:2873 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "sÃmbolos locales %lu Tabla de cadena: [%2u] '%s'\n" msgstr[1] " SÃmbolos locales %lu Tabla de cadenas: [%2u] '%s'\n" -#: src/readelf.c:2571 +#: src/readelf.c:2881 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Núm: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:2573 +#: src/readelf.c:2883 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Num: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:2593 -#, c-format -msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" - -#: src/readelf.c:2686 -#, c-format -msgid "bad dynamic symbol" -msgstr "sÃmbolo dinámico erróneo" +#: src/readelf.c:3002 +msgid "Dynamic symbol information is not available for displaying symbols." +msgstr "" -#: src/readelf.c:2771 +#: src/readelf.c:3102 msgid "none" msgstr "nada" -#: src/readelf.c:2788 +#: src/readelf.c:3119 msgid "| <unknown>" msgstr "| <desconocido>" -#: src/readelf.c:2818 +#: src/readelf.c:3149 #, c-format msgid "" "\n" @@ -5063,17 +5062,17 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2839 +#: src/readelf.c:3170 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n" -#: src/readelf.c:2852 +#: src/readelf.c:3183 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n" -#: src/readelf.c:2894 +#: src/readelf.c:3225 #, c-format msgid "" "\n" @@ -5094,19 +5093,19 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2922 +#: src/readelf.c:3253 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Versión: %hd Banderas: %s Ãndice: %hd Conteo: %hd Nombre: %s\n" -#: src/readelf.c:2937 +#: src/readelf.c:3268 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Principal %d: %s\n" #. Print the header. -#: src/readelf.c:3197 +#: src/readelf.c:3528 #, c-format msgid "" "\n" @@ -5127,15 +5126,15 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'" -#: src/readelf.c:3225 +#: src/readelf.c:3556 msgid " 0 *local* " msgstr " 0 *local* " -#: src/readelf.c:3230 +#: src/readelf.c:3561 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:3272 +#: src/readelf.c:3603 #, c-format msgid "" "\n" @@ -5160,22 +5159,22 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:3294 +#: src/readelf.c:3625 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Longitud Número % of total Cobertura\n" -#: src/readelf.c:3296 +#: src/readelf.c:3627 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3303 +#: src/readelf.c:3634 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3316 +#: src/readelf.c:3647 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5184,37 +5183,37 @@ msgstr "" " Número promedio de pruebas: búsqueda exitosa: %f\n" " búsqueda sin éxito: %f\n" -#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464 +#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795 #, c-format msgid "cannot get data for section %d: %s" msgstr "No se pueden obtener datos para la sección %d: %s" -#: src/readelf.c:3342 +#: src/readelf.c:3673 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3371 +#: src/readelf.c:3702 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3406 +#: src/readelf.c:3737 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3437 +#: src/readelf.c:3768 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3473 +#: src/readelf.c:3804 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3539 +#: src/readelf.c:3870 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5224,7 +5223,7 @@ msgstr "" " Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo " "cambio de dispersión: %u\n" -#: src/readelf.c:3624 +#: src/readelf.c:3955 #, c-format msgid "" "\n" @@ -5241,7 +5240,7 @@ msgstr[1] "" "Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> " "contiene entradas %d:\n" -#: src/readelf.c:3638 +#: src/readelf.c:3969 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5249,7 +5248,7 @@ msgstr "" " Biblioteca Marca de tiempo Indicadores " "de versión de suma de verificación" -#: src/readelf.c:3698 +#: src/readelf.c:4029 #, c-format msgid "" "\n" @@ -5260,107 +5259,107 @@ msgstr "" "Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con " "desplazamiento %#0<PRIx64>:\n" -#: src/readelf.c:3715 +#: src/readelf.c:4046 msgid " Owner Size\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:3739 +#: src/readelf.c:4070 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3778 +#: src/readelf.c:4109 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3783 +#: src/readelf.c:4114 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3833 +#: src/readelf.c:4164 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3836 +#: src/readelf.c:4167 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3839 +#: src/readelf.c:4170 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3849 +#: src/readelf.c:4180 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3852 +#: src/readelf.c:4183 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3890 +#: src/readelf.c:4221 #, fuzzy msgid "Couldn't get data from section" msgstr "No se puede obtener encabezamiento de sección 0th: %s" -#: src/readelf.c:3955 +#: src/readelf.c:4286 #, fuzzy msgid "sprintf failure" msgstr "mprotect falló" -#: src/readelf.c:4439 +#: src/readelf.c:4770 msgid "empty block" msgstr "bloque vacÃo" -#: src/readelf.c:4442 +#: src/readelf.c:4773 #, c-format msgid "%zu byte block:" msgstr "bloque de byte %zu:" -#: src/readelf.c:4920 +#: src/readelf.c:5251 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:5080 +#: src/readelf.c:5423 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño" -#: src/readelf.c:5087 +#: src/readelf.c:5430 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño" -#: src/readelf.c:5094 +#: src/readelf.c:5437 #, fuzzy, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño" -#: src/readelf.c:5101 +#: src/readelf.c:5444 #, fuzzy, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño" -#: src/readelf.c:5201 +#: src/readelf.c:5544 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr " [%6tx] <MATERIAL INUTIL SIN UTILIZAR EN EL RESTO DE LA SECCION>\n" -#: src/readelf.c:5209 +#: src/readelf.c:5552 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n" -#: src/readelf.c:5315 +#: src/readelf.c:5658 #, c-format msgid "" "\n" @@ -5371,7 +5370,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [ Código]\n" -#: src/readelf.c:5323 +#: src/readelf.c:5666 #, c-format msgid "" "\n" @@ -5380,20 +5379,20 @@ msgstr "" "\n" "Sección de abreviatura en compensación %<PRIu64>:\n" -#: src/readelf.c:5336 +#: src/readelf.c:5679 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** error en lectura de abreviatura: %s\n" -#: src/readelf.c:5352 +#: src/readelf.c:5695 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n" -#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224 -#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829 -#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627 -#: src/readelf.c:10698 +#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567 +#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172 +#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970 +#: src/readelf.c:11041 #, c-format msgid "" "\n" @@ -5402,47 +5401,47 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" -#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397 +#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410 +#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419 +#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429 +#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820 +#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163 #, fuzzy, c-format msgid "Unknown version" msgstr "versión desconocida" -#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424 +#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767 #, fuzzy, c-format msgid "unsupported address size" msgstr "no hay valor de dirección" -#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434 +#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5952 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "no se ha podido obtener contenido de .debug_aranges: %s" -#: src/readelf.c:5624 +#: src/readelf.c:5967 #, c-format msgid "" "\n" @@ -5457,12 +5456,12 @@ msgstr[1] "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n" -#: src/readelf.c:5655 +#: src/readelf.c:5998 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5657 +#: src/readelf.c:6000 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5470,7 +5469,7 @@ msgstr "" " Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5695 src/readelf.c:8638 +#: src/readelf.c:6038 src/readelf.c:8981 #, fuzzy, c-format msgid "" "\n" @@ -5479,140 +5478,140 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649 -#: src/readelf.c:9378 +#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992 +#: src/readelf.c:9721 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:5715 +#: src/readelf.c:6058 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5727 +#: src/readelf.c:6070 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5731 +#: src/readelf.c:6074 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5742 +#: src/readelf.c:6085 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5748 +#: src/readelf.c:6091 #, fuzzy, c-format msgid " Address size: %6<PRIu64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5759 +#: src/readelf.c:6102 #, fuzzy, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:5814 +#: src/readelf.c:6157 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5876 src/readelf.c:9384 +#: src/readelf.c:6219 src/readelf.c:9727 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5931 src/readelf.c:9439 +#: src/readelf.c:6274 src/readelf.c:9782 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5947 src/readelf.c:9455 +#: src/readelf.c:6290 src/readelf.c:9798 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5949 src/readelf.c:9457 +#: src/readelf.c:6292 src/readelf.c:9800 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5955 src/readelf.c:9463 +#: src/readelf.c:6298 src/readelf.c:9806 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5966 src/readelf.c:9474 +#: src/readelf.c:6309 src/readelf.c:9817 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5970 src/readelf.c:9478 +#: src/readelf.c:6313 src/readelf.c:9821 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:6022 +#: src/readelf.c:6365 #, fuzzy, c-format msgid "invalid range list data" msgstr "datos inválidos" -#: src/readelf.c:6207 src/readelf.c:9813 +#: src/readelf.c:6550 src/readelf.c:10156 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:6255 src/readelf.c:9862 +#: src/readelf.c:6598 src/readelf.c:10205 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6257 src/readelf.c:9864 +#: src/readelf.c:6600 src/readelf.c:10207 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916 +#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <DATOS INVÃLIDOS>\n" -#: src/readelf.c:6291 src/readelf.c:10000 +#: src/readelf.c:6634 src/readelf.c:10343 #, fuzzy msgid "base address" msgstr "Establecer dirección a %s\n" -#: src/readelf.c:6301 src/readelf.c:10010 +#: src/readelf.c:6644 src/readelf.c:10353 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] lista vacÃa\n" -#: src/readelf.c:6565 +#: src/readelf.c:6908 #, fuzzy msgid " <INVALID DATA>\n" msgstr " <DATOS INVÃLIDOS>\n" -#: src/readelf.c:6822 +#: src/readelf.c:7165 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:6846 +#: src/readelf.c:7189 #, c-format msgid "" "\n" @@ -5622,7 +5621,7 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación " "%#<PRIx64>:\n" -#: src/readelf.c:6896 +#: src/readelf.c:7239 #, c-format msgid "" "\n" @@ -5631,65 +5630,65 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:7000 src/readelf.c:7154 +#: src/readelf.c:7343 src/readelf.c:7497 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:7015 +#: src/readelf.c:7358 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:7021 +#: src/readelf.c:7364 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:7131 +#: src/readelf.c:7474 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:7138 +#: src/readelf.c:7481 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:7175 +#: src/readelf.c:7518 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "Puntero %-26sLSDA: %#<PRIx64>\n" -#: src/readelf.c:7260 +#: src/readelf.c:7603 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:7270 +#: src/readelf.c:7613 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:7292 +#: src/readelf.c:7635 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:7622 +#: src/readelf.c:7965 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "Archivo inválido" -#: src/readelf.c:7626 +#: src/readelf.c:7969 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:7630 +#: src/readelf.c:7973 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:7952 +#: src/readelf.c:8295 #, c-format msgid "" "\n" @@ -5700,12 +5699,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:8002 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:8022 +#: src/readelf.c:8365 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5718,7 +5717,7 @@ msgstr "" "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n" " Tipo de firma: %#<PRIx64>, Tipo de compensación: %#<PRIx64>\n" -#: src/readelf.c:8034 +#: src/readelf.c:8377 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5729,39 +5728,39 @@ msgstr "" " Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, " "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n" -#: src/readelf.c:8044 src/readelf.c:8205 +#: src/readelf.c:8387 src/readelf.c:8548 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:8071 +#: src/readelf.c:8414 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:8100 +#: src/readelf.c:8443 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:8109 +#: src/readelf.c:8452 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "no se ha podido obtener etiqueta de DIE en compensación%<PRIu64> en sección " "'%s': %s" -#: src/readelf.c:8145 +#: src/readelf.c:8488 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:8153 +#: src/readelf.c:8496 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:8197 +#: src/readelf.c:8540 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5772,7 +5771,7 @@ msgstr "" " Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, " "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n" -#: src/readelf.c:8249 +#: src/readelf.c:8592 #, fuzzy, c-format msgid "" "\n" @@ -5782,13 +5781,13 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" -#: src/readelf.c:8581 +#: src/readelf.c:8924 #, fuzzy, c-format msgid "unknown form: %s" msgstr "Forma %<PRIx64> desconocida" #. Print what we got so far. -#: src/readelf.c:8729 +#: src/readelf.c:9072 #, fuzzy, c-format msgid "" "\n" @@ -5819,34 +5818,34 @@ msgstr "" "\n" "Códigos operativos:\n" -#: src/readelf.c:8751 +#: src/readelf.c:9094 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "no se puede obtener versión de sÃmbolo: %s" -#: src/readelf.c:8759 +#: src/readelf.c:9102 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "no hay valor de dirección" -#: src/readelf.c:8767 +#: src/readelf.c:9110 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:8777 +#: src/readelf.c:9120 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "datos inválidos en compensación %tu en sección [%zu] '%s'" -#: src/readelf.c:8792 +#: src/readelf.c:9135 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] " [%*<PRIuFAST8>] argumento %hhu \n" msgstr[1] " [%*<PRIuFAST8>] argumento %hhu\n" -#: src/readelf.c:8803 +#: src/readelf.c:9146 msgid "" "\n" "Directory table:" @@ -5854,12 +5853,12 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:8809 src/readelf.c:8886 +#: src/readelf.c:9152 src/readelf.c:9229 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8880 +#: src/readelf.c:9223 #, fuzzy msgid "" "\n" @@ -5868,7 +5867,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:8941 +#: src/readelf.c:9284 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5876,7 +5875,7 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:8987 +#: src/readelf.c:9330 #, fuzzy msgid "" "\n" @@ -5885,7 +5884,7 @@ msgstr "" "\n" " Declaraciones de número de LÃnea:" -#: src/readelf.c:8991 +#: src/readelf.c:9334 msgid "" "\n" "Line number statements:" @@ -5893,132 +5892,132 @@ msgstr "" "\n" " Declaraciones de número de LÃnea:" -#: src/readelf.c:9006 +#: src/readelf.c:9349 #, fuzzy, c-format msgid "invalid maximum operations per instruction is zero" msgstr "longitud mÃnima inválida de tamaño de cadena coincidente" -#: src/readelf.c:9040 +#: src/readelf.c:9383 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " opcode especial %u: dirección+%u = %s, lÃnea%+d = %zu\n" -#: src/readelf.c:9044 +#: src/readelf.c:9387 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" " opcode especial %u: dirección+%u = %s, op_index = %u, lÃnea%+d = %zu\n" -#: src/readelf.c:9047 +#: src/readelf.c:9390 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:9065 +#: src/readelf.c:9408 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:9070 +#: src/readelf.c:9413 #, fuzzy msgid " end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:9088 +#: src/readelf.c:9431 #, fuzzy, c-format msgid " set address to " msgstr "Establecer dirección a %s\n" -#: src/readelf.c:9116 +#: src/readelf.c:9459 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, " "nombre=%s\n" -#: src/readelf.c:9130 +#: src/readelf.c:9473 #, c-format msgid " set discriminator to %u\n" msgstr " establecer discriminador a %u\n" -#: src/readelf.c:9157 +#: src/readelf.c:9500 #, c-format msgid " set inlined context %u, function name %s (0x%x)\n" msgstr "" -#: src/readelf.c:9181 +#: src/readelf.c:9524 #, fuzzy, c-format #| msgid "Also show function names" msgid " set function name %s (0x%x)\n" msgstr "También mostrar nombres de función" #. Unknown, ignore it. -#: src/readelf.c:9188 +#: src/readelf.c:9531 #, fuzzy msgid " unknown opcode" msgstr "código operativo desconocido " #. Takes no argument. -#: src/readelf.c:9200 +#: src/readelf.c:9543 msgid " copy" msgstr "Copiar" -#: src/readelf.c:9211 +#: src/readelf.c:9554 #, fuzzy, c-format msgid " advance address by %u to " msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:9215 src/readelf.c:9276 +#: src/readelf.c:9558 src/readelf.c:9619 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:9227 +#: src/readelf.c:9570 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " lÃnea de avance por la constante %d a %<PRId64>\n" -#: src/readelf.c:9237 +#: src/readelf.c:9580 #, c-format msgid " set file to %<PRIu64>\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:9248 +#: src/readelf.c:9591 #, c-format msgid " set column to %<PRIu64>\n" msgstr " Establecer columna a %<PRIu64>\n" -#: src/readelf.c:9255 +#: src/readelf.c:9598 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "Establecer '%s' a %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:9261 +#: src/readelf.c:9604 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:9272 +#: src/readelf.c:9615 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:9292 +#: src/readelf.c:9635 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr "dirección de avance por valor corregido %u a %s\n" #. Takes no argument. -#: src/readelf.c:9302 +#: src/readelf.c:9645 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" #. Takes no argument. -#: src/readelf.c:9307 +#: src/readelf.c:9650 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:9317 +#: src/readelf.c:9660 #, c-format msgid " set isa to %u\n" msgstr " establecer isa para %u\n" @@ -6026,95 +6025,95 @@ msgstr " establecer isa para %u\n" #. This is a new opcode the generator but not we know about. #. Read the parameters associated with it but then discard #. everything. Read all the parameters for this opcode. -#: src/readelf.c:9326 +#: src/readelf.c:9669 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:" msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:" -#: src/readelf.c:9527 +#: src/readelf.c:9870 #, fuzzy, c-format msgid " <INVALID DATA>\n" msgstr " <DATOS INVÃLIDOS>\n" -#: src/readelf.c:9567 +#: src/readelf.c:9910 #, fuzzy, c-format msgid "invalid loclists data" msgstr "datos inválidos" -#: src/readelf.c:10037 src/readelf.c:11082 +#: src/readelf.c:10380 src/readelf.c:11425 msgid " <INVALID DATA>\n" msgstr " <DATOS INVÃLIDOS>\n" -#: src/readelf.c:10168 +#: src/readelf.c:10511 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** cadena no finalizada al final de la sección" -#: src/readelf.c:10191 +#: src/readelf.c:10534 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** cadena no finalizada al final de la sección" -#: src/readelf.c:10286 +#: src/readelf.c:10629 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:10298 +#: src/readelf.c:10641 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10304 src/readelf.c:11202 +#: src/readelf.c:10647 src/readelf.c:11546 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:10311 +#: src/readelf.c:10654 #, fuzzy, c-format msgid " Flag: 0x%<PRIx8>" msgstr " Dirección de punto de entrada: %#<PRIx64>\n" -#: src/readelf.c:10340 +#: src/readelf.c:10683 #, fuzzy, c-format msgid " Offset length: %<PRIu8>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10348 +#: src/readelf.c:10691 #, fuzzy, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:10373 +#: src/readelf.c:10716 #, fuzzy, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " opcódigo con parámetro %<PRIu8> desconocido:" -#: src/readelf.c:10380 +#: src/readelf.c:10723 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:10392 +#: src/readelf.c:10735 #, fuzzy, c-format msgid " %<PRIu8> arguments:" msgstr " [%*<PRIuFAST8>] argumento %hhu \n" -#: src/readelf.c:10407 +#: src/readelf.c:10750 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10608 +#: src/readelf.c:10951 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" " Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, " "nombre: %s\n" -#: src/readelf.c:10663 +#: src/readelf.c:11006 #, c-format msgid "" "\n" @@ -6126,37 +6125,37 @@ msgstr "" " %*s String\n" #. TRANS: the debugstr| prefix makes the string unique. -#: src/readelf.c:10668 +#: src/readelf.c:11011 msgctxt "debugstr" msgid "Offset" msgstr "" -#: src/readelf.c:10678 +#: src/readelf.c:11021 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:10800 +#: src/readelf.c:11143 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10802 +#: src/readelf.c:11145 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10816 +#: src/readelf.c:11159 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10825 +#: src/readelf.c:11168 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10879 +#: src/readelf.c:11222 #, c-format msgid "" "\n" @@ -6165,7 +6164,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10981 +#: src/readelf.c:11324 #, c-format msgid "" "\n" @@ -6174,22 +6173,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:11004 +#: src/readelf.c:11347 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:11016 +#: src/readelf.c:11359 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:11033 +#: src/readelf.c:11376 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:11048 +#: src/readelf.c:11391 msgid "" "\n" " Call site table:" @@ -6197,7 +6196,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:11064 +#: src/readelf.c:11407 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -6210,12 +6209,12 @@ msgstr "" " Landing pad: %#<PRIx64>\n" " Action: %u\n" -#: src/readelf.c:11137 +#: src/readelf.c:11480 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:11164 +#: src/readelf.c:11507 #, fuzzy, c-format msgid "" "\n" @@ -6224,37 +6223,42 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:11193 +#: src/readelf.c:11536 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:11211 +#: src/readelf.c:11555 #, fuzzy, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:11218 +#: src/readelf.c:11562 #, fuzzy, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:11225 +#: src/readelf.c:11569 #, fuzzy, c-format msgid " address offset: %#<PRIx32>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:11232 +#: src/readelf.c:11576 #, fuzzy, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:11239 +#: src/readelf.c:11586 +#, fuzzy, c-format +msgid " shortcut offset: %#<PRIx32>\n" +msgstr " (fin de compensación: %#<PRIx64>)" + +#: src/readelf.c:11594 #, fuzzy, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:11253 +#: src/readelf.c:11608 #, fuzzy, c-format msgid "" "\n" @@ -6263,7 +6267,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:11278 +#: src/readelf.c:11633 #, fuzzy, c-format msgid "" "\n" @@ -6272,7 +6276,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:11307 +#: src/readelf.c:11662 #, fuzzy, c-format msgid "" "\n" @@ -6281,7 +6285,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:11339 +#: src/readelf.c:11705 #, fuzzy, c-format msgid "" "\n" @@ -6290,18 +6294,37 @@ msgstr "" "\n" "Tabla de sÃmbolos inválida en compensación %#0<PRIx64>\n" -#: src/readelf.c:11477 +#: src/readelf.c:11790 +#, fuzzy, c-format +msgid "" +"\n" +"Shortcut table at offset %#<PRIx32> contains %zu slots:\n" +msgstr "" +"\n" +"Tabla de sÃmbolos inválida en compensación %#0<PRIx64>\n" + +#: src/readelf.c:11802 +#, c-format +msgid "Language of main: %s\n" +msgstr "" + +#: src/readelf.c:11803 +#, c-format +msgid "Name of main: " +msgstr "" + +#: src/readelf.c:11886 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573 -#: src/readelf.c:12630 +#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982 +#: src/readelf.c:13039 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:12207 +#: src/readelf.c:12616 #, c-format msgid "" "\n" @@ -6310,21 +6333,21 @@ msgstr "" "\n" "%*s... <repeats %u more times> ..." -#: src/readelf.c:12709 +#: src/readelf.c:13118 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:12737 +#: src/readelf.c:13146 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12789 +#: src/readelf.c:13198 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "no se puede obtener el contenido de sección de nota: %s" -#: src/readelf.c:12822 +#: src/readelf.c:13231 #, c-format msgid "" "\n" @@ -6333,7 +6356,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:12845 +#: src/readelf.c:13254 #, c-format msgid "" "\n" @@ -6342,7 +6365,7 @@ msgstr "" "\n" "Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:12892 +#: src/readelf.c:13301 #, fuzzy, c-format msgid "" "\n" @@ -6351,12 +6374,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12919 src/readelf.c:12970 +#: src/readelf.c:13328 src/readelf.c:13379 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s" -#: src/readelf.c:12924 +#: src/readelf.c:13333 #, fuzzy, c-format msgid "" "\n" @@ -6366,7 +6389,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12929 +#: src/readelf.c:13338 #, fuzzy, c-format msgid "" "\n" @@ -6377,7 +6400,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12943 +#: src/readelf.c:13352 #, fuzzy, c-format msgid "" "\n" @@ -6386,7 +6409,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12975 +#: src/readelf.c:13384 #, fuzzy, c-format msgid "" "\n" @@ -6396,7 +6419,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12980 +#: src/readelf.c:13389 #, fuzzy, c-format msgid "" "\n" @@ -6407,7 +6430,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:13028 +#: src/readelf.c:13437 #, c-format msgid "" "\n" @@ -6416,7 +6439,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:13058 +#: src/readelf.c:13467 #, c-format msgid "" "\n" @@ -6425,12 +6448,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:13113 +#: src/readelf.c:13522 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "no se puede obtener el Ãndice de sÃmbolo de archivo '%s': %s" -#: src/readelf.c:13116 +#: src/readelf.c:13525 #, c-format msgid "" "\n" @@ -6439,7 +6462,7 @@ msgstr "" "\n" "Archivo '%s' no tiene Ãndice de sÃmbolo\n" -#: src/readelf.c:13120 +#: src/readelf.c:13529 #, fuzzy, c-format msgid "" "\n" @@ -6448,12 +6471,12 @@ msgstr "" "\n" "Ãndice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:13138 +#: src/readelf.c:13547 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s" -#: src/readelf.c:13143 +#: src/readelf.c:13552 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6938,7 +6961,7 @@ msgstr "%s: error al crear encabezamiento ELF: %s" msgid "%s: error while getting shdrstrndx: %s" msgstr "%s: error al crear encabezamiento ELF: %s" -#: src/strip.c:1712 src/strip.c:2553 +#: src/strip.c:1712 src/strip.c:2552 #, fuzzy, c-format msgid "%s: error updating shdrstrndx: %s" msgstr "%s: error al crear encabezamiento ELF: %s" @@ -6973,7 +6996,7 @@ msgstr "al crear tabla de cadenas de encabezamiento de sección: %s" msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2469 src/strip.c:2577 +#: src/strip.c:2469 src/strip.c:2574 #, c-format msgid "while writing '%s': %s" msgstr "al escribir '%s': %s" @@ -6993,22 +7016,22 @@ msgstr "al computar la suma de verificación para información de depuración" msgid "%s: error while creating ELF header: %s" msgstr "%s: error al crear encabezamiento ELF: %s" -#: src/strip.c:2562 +#: src/strip.c:2560 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: error al leer el fichero: %s" -#: src/strip.c:2602 src/strip.c:2622 +#: src/strip.c:2599 src/strip.c:2619 #, c-format msgid "while writing '%s'" msgstr "al escribir '%s'" -#: src/strip.c:2659 src/strip.c:2666 +#: src/strip.c:2656 src/strip.c:2663 #, c-format msgid "error while finishing '%s': %s" msgstr "Error al terminar '%s': %s" -#: src/strip.c:2683 src/strip.c:2759 +#: src/strip.c:2680 src/strip.c:2756 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "no es posible establecer acceso y fecha de modificación de '%s'" @@ -7494,7 +7517,7 @@ msgid "" "section PATH SECTION-NAME\n" msgstr "" -#: tests/backtrace.c:483 +#: tests/backtrace.c:491 msgid "Run executable" msgstr "" @@ -7507,6 +7530,12 @@ msgstr "También mostrar nombres de función" msgid "Show instances of inlined functions" msgstr "" +#, c-format +#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" +#~ msgstr "" +#~ "Sección [%2d] '%s': tamaño de entrada de sección no coincide con " +#~ "ElfXX_Rela\n" + #, fuzzy, c-format #~ msgid "cannot get .debug_addr section data: %s" #~ msgstr "no se pueden obtener datos de sección: %s" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-03-03 16:09+0100\n" +"POT-Creation-Date: 2023-11-03 17:36+0100\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n" "Language-Team: Japanese <jp@li.org>\n" @@ -42,7 +42,7 @@ msgid "" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793 +#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202 #: src/unstrip.c:311 #, c-format msgid "memory exhausted" @@ -525,7 +525,7 @@ msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒã‚ã‚Šã¾ã›ã‚“" #: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79 #: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 -#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81 +#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81 msgid "<unknown>" msgstr "<ä¸æ˜Ž>" @@ -619,7 +619,7 @@ msgstr "ソース演算åã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™" msgid "invalid size of destination operand" msgstr "宛先演算åã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™" -#: libelf/elf_error.c:86 src/readelf.c:6415 +#: libelf/elf_error.c:86 src/readelf.c:6758 #, c-format msgid "invalid encoding" msgstr "無効ãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã™" @@ -704,8 +704,8 @@ msgstr "データ/scnã®ä¸æ•´åˆã§ã™" msgid "invalid section header" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã§ã™" -#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899 -#: src/readelf.c:11000 src/readelf.c:11188 +#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242 +#: src/readelf.c:11343 src/readelf.c:11531 #, c-format msgid "invalid data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿ã§ã™" @@ -1357,8 +1357,8 @@ msgid "Suppress some error output (counterpart to --verbose)" msgstr "ã„ãã¤ã‹ã®ã‚¨ãƒ©ãƒ¼å‡ºåŠ›ã‚’ 抑制ã™ã‚‹ ( --verbose ã®å対)" #. Strings for arguments in help texts. -#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76 -#: src/readelf.c:160 +#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77 +#: src/readelf.c:161 msgid "FILE..." msgstr "" @@ -1646,21 +1646,21 @@ msgid "unknown compression type '%s'" msgstr "ä¸æ˜Žãªåœ§ç¸®ã‚¿ã‚¤ãƒ— '%s'" #. We need at least one input file. -#: src/elfcompress.c:162 src/elfcompress.c:1444 +#: src/elfcompress.c:162 src/elfcompress.c:1447 #, c-format msgid "No input file given" msgstr "入力ファイルãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“" -#: src/elfcompress.c:168 src/elfcompress.c:1448 +#: src/elfcompress.c:168 src/elfcompress.c:1451 #, c-format msgid "Only one input file allowed together with '-o'" msgstr "'-o' ã¨ä¸€ç·’ã®å ´åˆã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¯ 1 ã¤ã—ã‹èªã‚られã¾ã›ã‚“" -#: src/elfcompress.c:1405 +#: src/elfcompress.c:1408 msgid "Place (de)compressed output into FILE" msgstr "圧縮(展開)ã—ãŸå‡ºåŠ›ã‚’ FILE ã«ç½®ã" -#: src/elfcompress.c:1408 +#: src/elfcompress.c:1411 msgid "" "What type of compression to apply. TYPE can be 'none' (decompress), " "'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-" @@ -1668,7 +1668,7 @@ msgid "" "compression)" msgstr "" -#: src/elfcompress.c:1412 +#: src/elfcompress.c:1415 msgid "" "SECTION name to (de)compress, SECTION is an extended wildcard pattern " "(defaults to '.?(z)debug*')" @@ -1676,41 +1676,41 @@ msgstr "" "圧縮(展開)ã™ã‚‹ セクションå。 SECTION 㯠拡張 ワイルドカード パターン(デ" "フォルト㧠'.?(z)debug*')" -#: src/elfcompress.c:1415 +#: src/elfcompress.c:1418 msgid "Print a message for each section being (de)compressed" msgstr "圧縮(展開) ã•ã‚Œã¦ã„ã‚‹ å„セクション ã«å¯¾ã™ã‚‹ メッセージを 表示" -#: src/elfcompress.c:1418 +#: src/elfcompress.c:1421 msgid "" "Force compression of section even if it would become larger or update/" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1421 src/strip.c:92 +#: src/elfcompress.c:1424 src/strip.c:92 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "å°‘ã—壊れ㟠ELF ファイルをå–り扱ã†ãŸã‚ã«ãƒ«ãƒ¼ãƒ«ã‚’å°‘ã—ç·©å’Œã™ã‚‹" -#: src/elfcompress.c:1424 +#: src/elfcompress.c:1427 msgid "Be silent when a section cannot be compressed" msgstr "セクションを圧縮ã§ããªã„ã¨ãã«é™ã‹ã«ã™ã‚‹" -#: src/elfcompress.c:1434 +#: src/elfcompress.c:1437 msgid "Compress or decompress sections in an ELF file." msgstr "ELF ファイル㮠セクションを 圧縮 ã¾ãŸã¯ 展開ã™ã‚‹" -#: src/elflint.c:62 +#: src/elflint.c:63 msgid "Be extremely strict, flag level 2 features." msgstr "éžå¸¸ã«åŽ³æ ¼ã«ã™ã‚‹ã€‚ フラグレベル 2 機能。" -#: src/elflint.c:63 +#: src/elflint.c:64 msgid "Do not print anything if successful" msgstr "æˆåŠŸã—ãŸå ´åˆã¯ä½•ã‚‚表示ã—ãªã„" -#: src/elflint.c:64 +#: src/elflint.c:65 msgid "Binary is a separate debuginfo file" msgstr "ãƒã‚¤ãƒŠãƒªãƒ¼ã¯åˆ¥ã® debuginfo ファイルã§ã™" -#: src/elflint.c:66 +#: src/elflint.c:67 msgid "" "Binary has been created with GNU ld and is therefore known to be broken in " "certain ways" @@ -1719,171 +1719,171 @@ msgstr "" "ã‚‹" #. Short description of program. -#: src/elflint.c:72 +#: src/elflint.c:73 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "ELF ファイル㌠gABI/psABI 仕様ã¸æº–æ‹ ã—ã¦ã„ã‚‹ã‹ã®åŽ³å¯†ãªãƒã‚§ãƒƒã‚¯ã€‚" -#: src/elflint.c:153 src/readelf.c:391 +#: src/elflint.c:154 src/readelf.c:413 #, c-format msgid "cannot open input file '%s'" msgstr "入力ファイル '%s' ã‚’é–‹ã‘ã¾ã›ã‚“" -#: src/elflint.c:160 +#: src/elflint.c:161 #, c-format msgid "cannot generate Elf descriptor for '%s': %s\n" msgstr "'%s' ã«å¯¾ã™ã‚‹ Elf 記述åを生æˆã§ãã¾ã›ã‚“: %s\n" -#: src/elflint.c:179 +#: src/elflint.c:180 #, c-format msgid "error while closing Elf descriptor: %s\n" msgstr "Elf 記述åã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n" -#: src/elflint.c:183 +#: src/elflint.c:184 msgid "No errors" msgstr "エラーã¯ã‚ã‚Šã¾ã›ã‚“" -#: src/elflint.c:218 src/readelf.c:603 +#: src/elflint.c:219 src/readelf.c:625 msgid "Missing file name.\n" msgstr "ファイルåãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/elflint.c:283 +#: src/elflint.c:284 #, c-format msgid " error while freeing sub-ELF descriptor: %s\n" msgstr "sub-ELF 記述åを解放ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n" #. We cannot do anything. -#: src/elflint.c:291 +#: src/elflint.c:292 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "ELF ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“ - 最åˆã«èª¤ã£ãŸãƒžã‚¸ãƒƒã‚¯ãƒã‚¤ãƒˆãŒã‚ã‚Šã¾ã™\n" -#: src/elflint.c:357 +#: src/elflint.c:358 #, c-format msgid "e_ident[%d] == %d is no known class\n" msgstr "e_ident[%d] == %d ã¯æ—¢çŸ¥ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:362 +#: src/elflint.c:363 #, c-format msgid "e_ident[%d] == %d is no known data encoding\n" msgstr "e_ident[%d] == %d ã¯æ—¢çŸ¥ã®ãƒ‡ãƒ¼ã‚¿ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:366 +#: src/elflint.c:367 #, c-format msgid "unknown ELF header version number e_ident[%d] == %d\n" msgstr "ä¸æ˜Žãª ELF ヘッダーãƒãƒ¼ã‚¸ãƒ§ãƒ³æ•° e_ident[%d] == %d\n" -#: src/elflint.c:374 +#: src/elflint.c:375 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" msgstr "ä¸æ˜Žãª OS ABI e_ident[%d] == '%s'\n" -#: src/elflint.c:380 +#: src/elflint.c:381 #, c-format msgid "unsupported ABI version e_ident[%d] == %d\n" msgstr "ä¸æ˜Žãª ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³ e_ident[%d] == %d\n" -#: src/elflint.c:385 +#: src/elflint.c:386 #, c-format msgid "e_ident[%zu] is not zero\n" msgstr "e_ident[%zu] ãŒã‚¼ãƒã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:390 +#: src/elflint.c:391 #, c-format msgid "unknown object file type %d\n" msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルタイプ %d\n" -#: src/elflint.c:397 +#: src/elflint.c:398 #, c-format msgid "unknown machine type %d\n" msgstr "ä¸æ˜Žãªãƒžã‚·ãƒ³ã‚¿ã‚¤ãƒ— %d\n" -#: src/elflint.c:401 +#: src/elflint.c:402 #, c-format msgid "unknown object file version\n" msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³\n" -#: src/elflint.c:407 +#: src/elflint.c:408 #, c-format msgid "invalid program header offset\n" msgstr "ä¸å½“ãªãƒ—ãƒã‚°ãƒ©ãƒ ヘッダーオフセット\n" -#: src/elflint.c:409 +#: src/elflint.c:410 #, c-format msgid "executables and DSOs cannot have zero program header offset\n" msgstr "" "実行ファイル㨠DSO ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ヘッダーオフセット㌠0 ã§ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“\n" -#: src/elflint.c:413 +#: src/elflint.c:414 #, c-format msgid "invalid number of program header entries\n" msgstr "プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®æ•°ã¨ã—ã¦ä¸å½“ãªæ•°\n" -#: src/elflint.c:421 +#: src/elflint.c:422 #, c-format msgid "invalid section header table offset\n" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ†ãƒ¼ãƒ–ルオフセット\n" -#: src/elflint.c:424 +#: src/elflint.c:425 #, c-format msgid "section header table must be present\n" msgstr "セクションヘッダーテーブルãŒãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:438 +#: src/elflint.c:439 #, c-format msgid "invalid number of section header table entries\n" msgstr "ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ†ãƒ¼ãƒ–ãƒ«é …ç›®æ•°ã¨ã—ã¦ä¸å½“ãªæ•°\n" -#: src/elflint.c:455 +#: src/elflint.c:456 #, c-format msgid "invalid section header index\n" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:473 +#: src/elflint.c:474 #, c-format msgid "Can only check %u headers, shnum was %u\n" msgstr "" -#: src/elflint.c:487 +#: src/elflint.c:488 #, c-format msgid "invalid number of program header table entries\n" msgstr "プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®æ•°ã¨ã—ã¦ä¸å½“ãªæ•°\n" -#: src/elflint.c:504 +#: src/elflint.c:505 #, c-format msgid "Can only check %u headers, phnum was %u\n" msgstr "" -#: src/elflint.c:509 +#: src/elflint.c:510 #, c-format msgid "invalid machine flags: %s\n" msgstr "ä¸å½“ãªãƒžã‚·ãƒ³ãƒ•ãƒ©ã‚°: %s\n" -#: src/elflint.c:516 src/elflint.c:533 +#: src/elflint.c:517 src/elflint.c:534 #, c-format msgid "invalid ELF header size: %hd\n" msgstr "ä¸å½“㪠ELF ヘッダーサイズ: %hd\n" -#: src/elflint.c:519 src/elflint.c:536 +#: src/elflint.c:520 src/elflint.c:537 #, c-format msgid "invalid program header size: %hd\n" msgstr "ä¸å½“ãªãƒ—ãƒã‚°ãƒ©ãƒ ヘッダーサイズ: %hd\n" -#: src/elflint.c:522 src/elflint.c:539 +#: src/elflint.c:523 src/elflint.c:540 #, c-format msgid "invalid program header position or size\n" msgstr "ä¸å½“ãªãƒ—ãƒã‚°ãƒ©ãƒ ヘッダーä½ç½®ã‹ã‚µã‚¤ã‚º\n" -#: src/elflint.c:525 src/elflint.c:542 +#: src/elflint.c:526 src/elflint.c:543 #, c-format msgid "invalid section header size: %hd\n" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚µã‚¤ã‚º: %hd\n" -#: src/elflint.c:528 src/elflint.c:545 +#: src/elflint.c:529 src/elflint.c:546 #, c-format msgid "invalid section header position or size\n" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ä½ç½®ã‹ã‚µã‚¤ã‚º\n" -#: src/elflint.c:590 +#: src/elflint.c:591 #, c-format msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " @@ -1892,7 +1892,7 @@ msgstr "" "セクション [%2d] '%s': SHF_GROUP フラグã®ã‚るセクションã«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ—ã®" "一部分ãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" -#: src/elflint.c:594 +#: src/elflint.c:595 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" @@ -1900,14 +1900,14 @@ msgstr "" "セクション [%2d] '%s': セクショングループ [%2zu] '%s' ãŒã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã‚ˆã‚Š" "å‰ã«ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 -#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106 -#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4468 +#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610 +#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981 +#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:623 src/elflint.c:1662 +#: src/elflint.c:624 src/elflint.c:1699 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1916,7 +1916,7 @@ msgstr "" "セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ" "ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:646 +#: src/elflint.c:647 #, c-format msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " @@ -1925,45 +1925,45 @@ msgstr "" "セクション [%2d] '%s': シンボルテーブル㯠1 個を越ãˆã‚‹æ‹¡å¼µã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚»ã‚¯" "ションをæŒã¦ã¾ã›ã‚“\n" -#: src/elflint.c:658 +#: src/elflint.c:659 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" msgstr "セクション [%2u] '%s': é …ç›®ã‚µã‚¤ã‚ºãŒ ElfXX_Sym ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:662 +#: src/elflint.c:663 #, c-format msgid "" "section [%2u] '%s': number of local entries in 'st_info' larger than table " "size\n" msgstr "" -#: src/elflint.c:671 +#: src/elflint.c:672 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "セクション [%2d] '%s': シンボル %d を得られã¾ã›ã‚“: %s\n" -#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685 -#: src/elflint.c:688 src/elflint.c:691 +#: src/elflint.c:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686 +#: src/elflint.c:689 src/elflint.c:692 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "セクション [%2d] '%s': 0番目ã®é …ç›®ã«ã‚ã‚‹ '%s' ゼãƒã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:694 +#: src/elflint.c:695 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" msgstr "セクション [%2d] '%s': 0番目ã®é …目用㮠XINDEX ãŒã‚¼ãƒã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:704 +#: src/elflint.c:705 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" msgstr "セクション [%2d] '%s': シンボル %zu を得られã¾ã›ã‚“: %s\n" -#: src/elflint.c:713 +#: src/elflint.c:714 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" msgstr "セクション [%2d] '%s': シンボル %zu: ä¸å½“ãªåå‰ã®å€¤\n" -#: src/elflint.c:728 +#: src/elflint.c:729 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): too large section index but no extended " @@ -1972,7 +1972,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: 大ãã™ãŽã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã ãŒã€æ‹¡" "張セクションインデックスセクションãŒã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:734 +#: src/elflint.c:735 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit " @@ -1982,29 +1982,29 @@ msgstr "" "クス用ã«ä½¿ã‚れる XINDEX\n" #. || sym->st_shndx > SHN_HIRESERVE always false -#: src/elflint.c:746 +#: src/elflint.c:747 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n" msgstr "セクション [%2d] '%s': シンボル %zu: ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:754 +#: src/elflint.c:755 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n" msgstr "セクション [%2d] '%s': シンボル %zu: ä¸æ˜Žãªã‚¿ã‚¤ãƒ—\n" -#: src/elflint.c:760 +#: src/elflint.c:761 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n" msgstr "セクション [%2d] '%s': シンボル %zu: ä¸æ˜Žãªã‚·ãƒ³ãƒœãƒ«ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°\n" -#: src/elflint.c:765 +#: src/elflint.c:766 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n" msgstr "" "セクション [%2d] '%s': シンボル %zu: オブジェクトタイプã¨ç•°ãªã‚‹å›ºæœ‰ã®ã‚·ãƒ³ãƒœ" "ル\n" -#: src/elflint.c:773 +#: src/elflint.c:774 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable " @@ -2013,7 +2013,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: COMMON ã¯ãƒªãƒã‚±ãƒ¼ã‚¿ãƒ–ルファイル内ã®ã¿ã§" "許ã•ã‚Œã¾ã™\n" -#: src/elflint.c:777 +#: src/elflint.c:778 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n" @@ -2021,7 +2021,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: ãƒãƒ¼ã‚«ãƒ«ãª COMMON シンボルã¯æ„味ãŒã‚ã‚Šã¾" "ã›ã‚“\n" -#: src/elflint.c:781 +#: src/elflint.c:782 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n" @@ -2029,12 +2029,12 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: COMMON セクションã®æ©Ÿèƒ½ã¯æ„味ãŒã‚ã‚Šã¾ã›" "ã‚“\n" -#: src/elflint.c:832 +#: src/elflint.c:833 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n" msgstr "セクション [%2d] '%s': シンボル %zu: st_value 境界外\n" -#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912 +#: src/elflint.c:839 src/elflint.c:864 src/elflint.c:913 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced " @@ -2043,7 +2043,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu ã¯å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã¨ã¯å®Œ" "å…¨ã«ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:847 +#: src/elflint.c:848 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not " @@ -2052,7 +2052,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠" "SHF_TLS フラグãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" -#: src/elflint.c:857 src/elflint.c:905 +#: src/elflint.c:858 src/elflint.c:906 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced " @@ -2061,7 +2061,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: st_value å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] " "'%s' ã®å¢ƒç•Œå¤–\n" -#: src/elflint.c:884 +#: src/elflint.c:885 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header " @@ -2070,7 +2070,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: TLS プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ãŒãªã„ TLS ã‚·" "ンボル\n" -#: src/elflint.c:890 +#: src/elflint.c:891 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program " @@ -2079,7 +2079,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: TLS プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ãŒãªã„ TLS ã‚·" "ンボル\n" -#: src/elflint.c:898 +#: src/elflint.c:899 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value short of referenced section " @@ -2088,7 +2088,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã®" "st_value ä¸è¶³\n" -#: src/elflint.c:925 +#: src/elflint.c:926 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local symbol outside range described in " @@ -2097,7 +2097,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®ãƒãƒ¼ã‚«ãƒ«ã‚·ãƒ³" "ボル\n" -#: src/elflint.c:932 +#: src/elflint.c:933 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): non-local symbol outside range " @@ -2106,12 +2106,12 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®éžãƒãƒ¼ã‚«ãƒ«ã‚·" "ンボル\n" -#: src/elflint.c:939 +#: src/elflint.c:940 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n" msgstr "セクション [%2d] '%s': シンボル %zu: éžãƒãƒ¼ã‚«ãƒ«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚·ãƒ³ãƒœãƒ«\n" -#: src/elflint.c:989 +#: src/elflint.c:990 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -2120,7 +2120,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルãŒé–“é•ã£ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ " "[%2d] ã‚’å‚ç…§ã—ã¦ã„ã¾ã™\n" -#: src/elflint.c:996 +#: src/elflint.c:997 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -2132,7 +2132,7 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:1012 +#: src/elflint.c:1013 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " @@ -2141,7 +2141,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボル値 %#<PRIx64> 㯠%s ã®ã‚»" "クションアドレス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:1019 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " @@ -2150,7 +2150,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルサイズ %<PRIu64> 㯠%s " "ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚µã‚¤ã‚º %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:1027 +#: src/elflint.c:1028 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -2159,7 +2159,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルã¯ã‚ã‚Šã¾ã™ãŒã€.got セク" "ションãŒã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:1043 +#: src/elflint.c:1044 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " @@ -2168,7 +2168,7 @@ msgstr "" "セクション [%2d] '%s': _DYNAMIC_ シンボル値 %#<PRIx64> ã¯å‹•çš„セグメントアドレ" "ス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:1050 +#: src/elflint.c:1051 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " @@ -2177,7 +2177,7 @@ msgstr "" "セクション [%2d] '%s': _DYNAMIC シンボルサイズ %<PRIu64> ã¯å‹•çš„セグメントサイ" "ズ %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" -#: src/elflint.c:1063 +#: src/elflint.c:1064 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-" @@ -2186,29 +2186,29 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: çœç•¥ä»¥å¤–ã®å¯è¦–性をæŒã£ãŸå‹•çš„シンボルテー" "ブルä¸ã®ã‚·ãƒ³ãƒœãƒ«\n" -#: src/elflint.c:1067 +#: src/elflint.c:1068 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n" msgstr "" "セクション [%2d] '%s': シンボル %zu: st_other ä¸ã«è¨å®šã•ã‚ŒãŸä¸æ˜Žãªãƒ“ット\n" -#: src/elflint.c:1105 +#: src/elflint.c:1106 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:1121 +#: src/elflint.c:1122 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "セクション [%2d] '%s': ã“ã® RELA セクション用ã«ä½¿ã‚れる DT_RELCOUNT\n" -#: src/elflint.c:1132 src/elflint.c:1185 +#: src/elflint.c:1133 src/elflint.c:1186 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "セクション [%2d] '%s': ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ç”¨ã«ã¯é«˜ã™ãŽã‚‹ DT_RELCOUNT 値 %d\n" -#: src/elflint.c:1157 src/elflint.c:1210 +#: src/elflint.c:1158 src/elflint.c:1211 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -2217,7 +2217,7 @@ msgstr "" "セクション [%2d] '%s': UT_RELOCOUNT ã§æŒ‡å®šã•ã‚ŒãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ %d 後ã®ç›¸å¯¾ãƒªãƒ" "ケーション\n" -#: src/elflint.c:1163 src/elflint.c:1216 +#: src/elflint.c:1164 src/elflint.c:1217 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -2226,52 +2226,46 @@ msgstr "" "セクション [%2d] '%s': インデックス %zu ã§ã®éžç›¸å¯¾ãƒªãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³; %d 相対リ" "ãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã§æŒ‡å®šã•ã‚ŒãŸ DT_RELCOUNT\n" -#: src/elflint.c:1175 +#: src/elflint.c:1176 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "セクション [%2d] '%s': ã“ã® REL セクション用ã«ä½¿ã‚れる DT_RELACOUNT\n" -#: src/elflint.c:1258 +#: src/elflint.c:1259 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:1270 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—\n" -#: src/elflint.c:1278 +#: src/elflint.c:1279 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "セクション [%2d] '%s': sh_info ã¯ã‚¼ãƒã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:1286 +#: src/elflint.c:1287 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "セクション [%2d] '%s': マージã§ãるセクションã®ãƒªãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ä¸å¯èƒ½ã§ã™\n" -#: src/elflint.c:1294 -#, c-format -msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "" -"セクション [%2d] '%s': ã‚»ã‚¯ã‚·ãƒ§ãƒ³é …ç›®ã‚µã‚¤ã‚ºãŒ ElfXX_Rela ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" - -#: src/elflint.c:1354 +#: src/elflint.c:1365 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "テã‚ストリãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ãƒ©ã‚°ãŒè¨å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€èªè¾¼ã¿å°‚用セグメントãŒã‚ã‚Š" "ã¾ã›ã‚“\n" -#: src/elflint.c:1381 +#: src/elflint.c:1392 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: ä¸å½“ãªã‚¿ã‚¤ãƒ—\n" -#: src/elflint.c:1389 +#: src/elflint.c:1400 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -2280,13 +2274,13 @@ msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ç”¨ã®ãƒªãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¿ã‚¤" "プã¯ä¸å½“ã§ã™\n" -#: src/elflint.c:1397 +#: src/elflint.c:1408 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:1415 +#: src/elflint.c:1426 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -2295,12 +2289,12 @@ msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: シンボル '_GLOBAL_OFFSET_TABLE_' " "ã®ã¿ãŒ %s ã¨ä¸€ç·’ã«ä½¿ç”¨ã§ãã¾ã™\n" -#: src/elflint.c:1432 +#: src/elflint.c:1443 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: オフセット境界外\n" -#: src/elflint.c:1447 +#: src/elflint.c:1458 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -2309,7 +2303,7 @@ msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: タイプ %s ã®ã‚·ãƒ³ãƒœãƒ«ã«å¯¾ã™ã‚‹ã‚³ãƒ”ー" "リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³\n" -#: src/elflint.c:1468 +#: src/elflint.c:1479 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -2318,24 +2312,24 @@ msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: èªè¾¼ã¿å°‚用セクションãŒå¤‰æ›´ã•ã‚Œã¾ã—" "ãŸãŒã€ãƒ†ã‚ストリãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ãƒ©ã‚°ãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" -#: src/elflint.c:1483 +#: src/elflint.c:1494 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒãƒãƒ¼ãƒ‰ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã¨ãƒãƒ¼ãƒ‰ã•ã‚Œãªã‹ã£ãŸ" "データã«å¯¾ã—ã¦ã§ã™\n" -#: src/elflint.c:1523 src/elflint.c:1574 +#: src/elflint.c:1534 src/elflint.c:1585 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "" -#: src/elflint.c:1650 +#: src/elflint.c:1687 #, c-format msgid "more than one dynamic section present\n" msgstr "" -#: src/elflint.c:1668 +#: src/elflint.c:1705 #, fuzzy, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -2344,427 +2338,427 @@ msgstr "" "セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ" "ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:1676 +#: src/elflint.c:1713 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" -#: src/elflint.c:1681 src/elflint.c:1970 +#: src/elflint.c:1718 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "" -#: src/elflint.c:1691 +#: src/elflint.c:1728 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" -#: src/elflint.c:1699 +#: src/elflint.c:1736 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" -#: src/elflint.c:1706 +#: src/elflint.c:1743 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "" -#: src/elflint.c:1717 +#: src/elflint.c:1754 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "" -#: src/elflint.c:1727 +#: src/elflint.c:1764 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "" -#: src/elflint.c:1745 +#: src/elflint.c:1782 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -#: src/elflint.c:1758 +#: src/elflint.c:1795 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " "[%2d] '%s' referenced by sh_link\n" msgstr "" -#: src/elflint.c:1801 +#: src/elflint.c:1839 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -#: src/elflint.c:1816 +#: src/elflint.c:1854 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:1836 src/elflint.c:1864 +#: src/elflint.c:1874 src/elflint.c:1902 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "" -#: src/elflint.c:1848 +#: src/elflint.c:1886 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "" -#: src/elflint.c:1857 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "" -#: src/elflint.c:1872 src/elflint.c:1879 +#: src/elflint.c:1910 src/elflint.c:1917 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "" -#: src/elflint.c:1889 src/elflint.c:1893 +#: src/elflint.c:1927 src/elflint.c:1931 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -#: src/elflint.c:1899 +#: src/elflint.c:1937 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922 +#: src/elflint.c:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -#: src/elflint.c:1934 +#: src/elflint.c:1972 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -#: src/elflint.c:1944 +#: src/elflint.c:1982 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -#: src/elflint.c:1948 +#: src/elflint.c:1986 #, fuzzy, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:1953 +#: src/elflint.c:1991 #, c-format msgid "cannot get data for symbol section\n" msgstr "" -#: src/elflint.c:1956 +#: src/elflint.c:1994 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "" -#: src/elflint.c:1965 +#: src/elflint.c:2003 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -#: src/elflint.c:1980 +#: src/elflint.c:2018 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -#: src/elflint.c:1998 +#: src/elflint.c:2036 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "" -#: src/elflint.c:2010 +#: src/elflint.c:2048 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "" -#: src/elflint.c:2015 +#: src/elflint.c:2053 #, c-format msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n" msgstr "" -#: src/elflint.c:2032 src/elflint.c:2089 +#: src/elflint.c:2070 src/elflint.c:2127 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -#: src/elflint.c:2046 src/elflint.c:2103 +#: src/elflint.c:2084 src/elflint.c:2141 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "" -#: src/elflint.c:2060 src/elflint.c:2117 +#: src/elflint.c:2098 src/elflint.c:2155 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2070 +#: src/elflint.c:2108 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2127 +#: src/elflint.c:2165 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" -#: src/elflint.c:2140 +#: src/elflint.c:2178 #, fuzzy, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:2152 +#: src/elflint.c:2190 #, fuzzy, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "セクション [%2d] '%s': 0番目ã®é …ç›®ã«ã‚ã‚‹ '%s' ゼãƒã§ã¯ã‚ã‚Šã¾ã›ã‚“\n" -#: src/elflint.c:2168 +#: src/elflint.c:2206 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least %ld)\n" msgstr "" -#: src/elflint.c:2177 +#: src/elflint.c:2215 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -#: src/elflint.c:2211 +#: src/elflint.c:2249 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -#: src/elflint.c:2232 +#: src/elflint.c:2270 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -#: src/elflint.c:2245 +#: src/elflint.c:2283 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2254 +#: src/elflint.c:2292 #, fuzzy, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:2284 +#: src/elflint.c:2322 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2289 +#: src/elflint.c:2327 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2295 +#: src/elflint.c:2333 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -#: src/elflint.c:2308 +#: src/elflint.c:2346 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -#: src/elflint.c:2326 +#: src/elflint.c:2364 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -#: src/elflint.c:2330 +#: src/elflint.c:2368 #, fuzzy, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n" -#: src/elflint.c:2340 +#: src/elflint.c:2378 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" -#: src/elflint.c:2345 +#: src/elflint.c:2383 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "" -#: src/elflint.c:2350 +#: src/elflint.c:2388 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -#: src/elflint.c:2399 +#: src/elflint.c:2437 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" -#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523 +#: src/elflint.c:2461 src/elflint.c:2526 src/elflint.c:2561 #, fuzzy, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:2444 +#: src/elflint.c:2482 #, fuzzy, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "" "\n" "セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536 +#: src/elflint.c:2493 src/elflint.c:2537 src/elflint.c:2574 #, fuzzy, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:2470 +#: src/elflint.c:2508 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: " "%<PRIu32>, nentries: %<PRIu32>\n" msgstr "" -#: src/elflint.c:2557 +#: src/elflint.c:2595 #, fuzzy, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—\n" -#: src/elflint.c:2567 src/elflint.c:2571 +#: src/elflint.c:2605 src/elflint.c:2609 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "" -#: src/elflint.c:2578 +#: src/elflint.c:2616 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2590 +#: src/elflint.c:2628 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2606 +#: src/elflint.c:2644 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "" -#: src/elflint.c:2626 +#: src/elflint.c:2664 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -#: src/elflint.c:2637 +#: src/elflint.c:2675 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "" -#: src/elflint.c:2642 +#: src/elflint.c:2680 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -#: src/elflint.c:2648 +#: src/elflint.c:2686 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "" -#: src/elflint.c:2653 +#: src/elflint.c:2691 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "" -#: src/elflint.c:2660 +#: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "" -#: src/elflint.c:2664 +#: src/elflint.c:2702 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "セクション [%2d] '%s': シンボル %d を得られã¾ã›ã‚“: %s\n" -#: src/elflint.c:2669 +#: src/elflint.c:2707 #, fuzzy, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:2675 +#: src/elflint.c:2713 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "" -#: src/elflint.c:2681 +#: src/elflint.c:2719 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "" -#: src/elflint.c:2690 +#: src/elflint.c:2728 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -#: src/elflint.c:2696 +#: src/elflint.c:2734 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "" -#: src/elflint.c:2704 +#: src/elflint.c:2742 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "" -#: src/elflint.c:2708 +#: src/elflint.c:2746 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "" -#: src/elflint.c:2719 +#: src/elflint.c:2757 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "" -#: src/elflint.c:2731 +#: src/elflint.c:2769 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "セクション [%2d] '%s': リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ %zu: オフセット境界外\n" -#: src/elflint.c:2740 +#: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -#: src/elflint.c:2747 +#: src/elflint.c:2785 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "" -#: src/elflint.c:2753 +#: src/elflint.c:2791 #, fuzzy, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2773,770 +2767,770 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠" "SHF_TLS フラグãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" -#: src/elflint.c:2760 +#: src/elflint.c:2798 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "" -#: src/elflint.c:2957 +#: src/elflint.c:2995 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -#: src/elflint.c:2969 +#: src/elflint.c:3007 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:2985 +#: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" -#: src/elflint.c:3001 +#: src/elflint.c:3039 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" -#: src/elflint.c:3009 +#: src/elflint.c:3047 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "" -#: src/elflint.c:3023 +#: src/elflint.c:3061 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "" -#: src/elflint.c:3028 +#: src/elflint.c:3066 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -#: src/elflint.c:3038 +#: src/elflint.c:3076 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -#: src/elflint.c:3091 +#: src/elflint.c:3129 #, c-format msgid "more than one version reference section present\n" msgstr "" -#: src/elflint.c:3099 src/elflint.c:3246 +#: src/elflint.c:3137 src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "" -#: src/elflint.c:3124 src/elflint.c:3300 +#: src/elflint.c:3162 src/elflint.c:3338 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "" -#: src/elflint.c:3131 src/elflint.c:3307 +#: src/elflint.c:3169 src/elflint.c:3345 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" -#: src/elflint.c:3141 +#: src/elflint.c:3179 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "" -#: src/elflint.c:3149 +#: src/elflint.c:3187 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "" -#: src/elflint.c:3161 +#: src/elflint.c:3199 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3169 +#: src/elflint.c:3207 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -#: src/elflint.c:3178 +#: src/elflint.c:3216 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " "%#x, expected %#x\n" msgstr "" -#: src/elflint.c:3187 +#: src/elflint.c:3225 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -#: src/elflint.c:3198 +#: src/elflint.c:3236 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -#: src/elflint.c:3215 src/elflint.c:3391 +#: src/elflint.c:3253 src/elflint.c:3429 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" -#: src/elflint.c:3223 src/elflint.c:3399 +#: src/elflint.c:3261 src/elflint.c:3437 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " "there are more entries\n" msgstr "" -#: src/elflint.c:3238 +#: src/elflint.c:3276 #, c-format msgid "more than one version definition section present\n" msgstr "" -#: src/elflint.c:3285 +#: src/elflint.c:3323 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "" -#: src/elflint.c:3289 +#: src/elflint.c:3327 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" -#: src/elflint.c:3295 +#: src/elflint.c:3333 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3322 +#: src/elflint.c:3360 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" -#: src/elflint.c:3329 +#: src/elflint.c:3367 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" -#: src/elflint.c:3337 +#: src/elflint.c:3375 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" -#: src/elflint.c:3357 +#: src/elflint.c:3395 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -#: src/elflint.c:3374 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" -#: src/elflint.c:3407 +#: src/elflint.c:3445 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "" -#: src/elflint.c:3423 +#: src/elflint.c:3461 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "" -#: src/elflint.c:3448 +#: src/elflint.c:3486 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "" -#: src/elflint.c:3464 +#: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "" -#: src/elflint.c:3475 +#: src/elflint.c:3513 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" -#: src/elflint.c:3484 +#: src/elflint.c:3522 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" -#: src/elflint.c:3496 +#: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" -#: src/elflint.c:3513 +#: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" msgstr "" -#: src/elflint.c:3522 +#: src/elflint.c:3560 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "" -#: src/elflint.c:3531 +#: src/elflint.c:3569 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" -#: src/elflint.c:3546 +#: src/elflint.c:3584 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" #. Tag_File -#: src/elflint.c:3557 +#: src/elflint.c:3595 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" msgstr "" -#: src/elflint.c:3578 +#: src/elflint.c:3616 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" -#: src/elflint.c:3589 +#: src/elflint.c:3627 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" -#: src/elflint.c:3602 +#: src/elflint.c:3640 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" -#: src/elflint.c:3606 +#: src/elflint.c:3644 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" msgstr "" -#: src/elflint.c:3616 +#: src/elflint.c:3654 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "" -#: src/elflint.c:3622 +#: src/elflint.c:3660 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3719 +#: src/elflint.c:3758 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3723 +#: src/elflint.c:3762 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3725 +#: src/elflint.c:3764 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3727 +#: src/elflint.c:3766 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3729 +#: src/elflint.c:3768 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3731 +#: src/elflint.c:3770 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3733 +#: src/elflint.c:3772 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3735 +#: src/elflint.c:3774 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3738 +#: src/elflint.c:3777 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3742 +#: src/elflint.c:3781 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3746 +#: src/elflint.c:3785 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3764 +#: src/elflint.c:3803 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3773 +#: src/elflint.c:3812 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3800 +#: src/elflint.c:3839 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3817 +#: src/elflint.c:3856 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3835 +#: src/elflint.c:3874 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3852 +#: src/elflint.c:3891 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3858 src/elflint.c:3890 +#: src/elflint.c:3897 src/elflint.c:3929 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3863 src/elflint.c:3895 +#: src/elflint.c:3902 src/elflint.c:3934 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3871 +#: src/elflint.c:3910 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3914 +#: src/elflint.c:3953 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3919 +#: src/elflint.c:3958 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3929 +#: src/elflint.c:3968 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3949 +#: src/elflint.c:3988 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" msgstr "" -#: src/elflint.c:3959 +#: src/elflint.c:3998 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" msgstr "" -#: src/elflint.c:3967 +#: src/elflint.c:4006 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3977 +#: src/elflint.c:4016 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:3982 +#: src/elflint.c:4021 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" -#: src/elflint.c:3988 +#: src/elflint.c:4027 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "" -#: src/elflint.c:3994 +#: src/elflint.c:4033 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3999 +#: src/elflint.c:4038 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:4006 +#: src/elflint.c:4045 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:4011 +#: src/elflint.c:4050 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:4030 +#: src/elflint.c:4069 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:4039 +#: src/elflint.c:4078 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:4046 +#: src/elflint.c:4085 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:4077 +#: src/elflint.c:4116 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:4087 +#: src/elflint.c:4126 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4113 +#: src/elflint.c:4152 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4124 +#: src/elflint.c:4163 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4135 +#: src/elflint.c:4174 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4145 +#: src/elflint.c:4184 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4155 +#: src/elflint.c:4194 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4161 +#: src/elflint.c:4200 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4169 +#: src/elflint.c:4208 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4220 +#: src/elflint.c:4263 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4243 +#: src/elflint.c:4286 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4254 +#: src/elflint.c:4297 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4260 +#: src/elflint.c:4303 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4271 +#: src/elflint.c:4314 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4284 +#: src/elflint.c:4327 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4298 +#: src/elflint.c:4341 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4347 +#: src/elflint.c:4390 #, c-format msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n" msgstr "" -#: src/elflint.c:4351 +#: src/elflint.c:4394 #, c-format msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" msgstr "" -#: src/elflint.c:4407 +#: src/elflint.c:4450 #, c-format msgid "" "phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " "offset %zu\n" msgstr "" -#: src/elflint.c:4412 +#: src/elflint.c:4455 #, c-format msgid "" "section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " "'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4431 +#: src/elflint.c:4474 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4451 +#: src/elflint.c:4494 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4454 +#: src/elflint.c:4497 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4475 +#: src/elflint.c:4518 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4482 +#: src/elflint.c:4525 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4485 +#: src/elflint.c:4528 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4503 +#: src/elflint.c:4546 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4518 +#: src/elflint.c:4561 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4528 +#: src/elflint.c:4571 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" -#: src/elflint.c:4539 +#: src/elflint.c:4582 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4547 +#: src/elflint.c:4590 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4554 +#: src/elflint.c:4597 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4568 +#: src/elflint.c:4611 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4571 +#: src/elflint.c:4614 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4581 +#: src/elflint.c:4624 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4602 +#: src/elflint.c:4645 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4613 +#: src/elflint.c:4656 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4620 +#: src/elflint.c:4663 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4629 src/elflint.c:4652 +#: src/elflint.c:4672 src/elflint.c:4695 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4658 +#: src/elflint.c:4701 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4685 +#: src/elflint.c:4728 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4688 +#: src/elflint.c:4731 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4701 +#: src/elflint.c:4744 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4709 +#: src/elflint.c:4752 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4712 +#: src/elflint.c:4755 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4716 +#: src/elflint.c:4759 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4719 +#: src/elflint.c:4762 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4724 +#: src/elflint.c:4767 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4727 +#: src/elflint.c:4770 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4741 +#: src/elflint.c:4784 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4748 +#: src/elflint.c:4791 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4751 +#: src/elflint.c:4794 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4764 +#: src/elflint.c:4807 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " "program header entry" msgstr "" -#: src/elflint.c:4798 +#: src/elflint.c:4841 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4810 +#: src/elflint.c:4853 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "æ–°ã—ã„ファイルを生æˆã§ãã¾ã›ã‚“" -#: src/elflint.c:4831 +#: src/elflint.c:4874 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3752,7 +3746,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: 内部エラー %d (%s-%s): %s" #: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307 -#: src/strip.c:2766 +#: src/strip.c:2763 #, c-format msgid "while closing '%s'" msgstr "'%s' ã‚’é–‰ã˜ã¦ã„る最ä¸" @@ -3796,13 +3790,13 @@ msgstr "%s%s%s: ファイル形å¼ã‚’èªè˜ã§ãã¾ã›ã‚“" msgid "cannot create search tree" msgstr "検索ツリーを生æˆã§ãã¾ã›ã‚“" -#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663 -#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097 -#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809 -#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613 -#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803 -#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467 -#: src/strip.c:1093 +#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685 +#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123 +#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854 +#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896 +#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029 +#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396 +#: src/size.c:467 src/strip.c:1093 #, c-format msgid "cannot get section header string table index" msgstr "セクションヘッダー文å—列テーブル索引ãŒå¾—られã¾ã›ã‚“" @@ -3909,7 +3903,7 @@ msgstr "NAME セクションã®æƒ…å ±ã®ã¿ã‚’表示" msgid "Show information from FILEs (a.out by default)." msgstr "FILE ã‹ã‚‰æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ (デフォルトã§ã¯ a.out)" -#: src/objdump.c:217 src/readelf.c:608 +#: src/objdump.c:217 src/readelf.c:630 msgid "No operation specified.\n" msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n" @@ -3918,11 +3912,11 @@ msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383 +#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409 msgid "INVALID SYMBOL" msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«" -#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419 +#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445 msgid "INVALID SECTION" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³" @@ -3976,87 +3970,87 @@ msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ã‚ã‚Šã¾ã›ã‚“" msgid "error while freeing sub-ELF descriptor: %s" msgstr "" -#: src/readelf.c:96 +#: src/readelf.c:97 msgid "ELF input selection:" msgstr "ELF入力é¸æŠžï¼š" -#: src/readelf.c:98 +#: src/readelf.c:99 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" "ELF 入力データã¨ã—㦠SECTION (デフォルトã§ã¯ .gnu_debugdata) を使用ã™ã‚‹" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "" "Used with -w to find the skeleton Compile Units in FILE associated with the " "Split Compile units in a .dwo input file" msgstr "" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "ELF output selection:" msgstr "ELF出力é¸æŠžï¼š" -#: src/readelf.c:105 +#: src/readelf.c:106 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the dynamic segment" msgstr "動的セグメントを表示" -#: src/readelf.c:107 +#: src/readelf.c:108 msgid "Display the ELF file header" msgstr "ELF ファイルヘッダーを表示" -#: src/readelf.c:109 +#: src/readelf.c:110 msgid "Display histogram of bucket list lengths" msgstr "ãƒã‚±ãƒƒãƒˆãƒªã‚¹ãƒˆé•·ã®ãƒ’ストグラムを表示" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Display the program headers" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダーを表示" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "Display relocations" msgstr "リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示" -#: src/readelf.c:113 +#: src/readelf.c:114 msgid "Display the section groups" msgstr "セクショングループを表示" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Display the sections' headers" msgstr "セクションヘッダーを表示" -#: src/readelf.c:117 +#: src/readelf.c:118 msgid "Display the symbol table sections" msgstr "シンボルテーブルセクションを表示" -#: src/readelf.c:120 +#: src/readelf.c:121 msgid "Display (only) the dynamic symbol table" msgstr "動的シンボルテーブル(ã®ã¿ï¼‰ã‚’表示" -#: src/readelf.c:121 +#: src/readelf.c:122 msgid "Display versioning information" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ‹ãƒ³ã‚°æƒ…å ±ã‚’è¡¨ç¤º" -#: src/readelf.c:122 +#: src/readelf.c:123 msgid "Display the ELF notes" msgstr "ELF notes を表示" -#: src/readelf.c:124 +#: src/readelf.c:125 msgid "Display architecture specific information, if any" msgstr "(ã‚‚ã—ã‚ã‚Œã°)アーã‚テクãƒãƒ£ãƒ¼å›ºæœ‰ã®æƒ…å ±ã‚’è¡¨ç¤º" -#: src/readelf.c:126 +#: src/readelf.c:127 msgid "Display sections for exception handling" msgstr "例外ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’表示" -#: src/readelf.c:128 +#: src/readelf.c:129 msgid "Additional output selection:" msgstr "è¿½åŠ ã®å‡ºåŠ›é¸æŠžï¼š" -#: src/readelf.c:130 +#: src/readelf.c:131 #, fuzzy msgid "" "Display DWARF section content. SECTION can be one of abbrev, addr, aranges, " @@ -4066,81 +4060,81 @@ msgstr "" "DWARF セクションã®å†…容を表示。SECTION 㯠addrevã‹ã€arangesã€frameã€infoã€" "locã€rangesã€pubnamesã€strã€macinfoã€exception ã®ã„ãšã‚Œã‹ã§ã™" -#: src/readelf.c:134 +#: src/readelf.c:135 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "SECTION 㮠未解釈㮠内容を ダンプã™ã‚‹ã€‚ ç•ªå· ã¾ãŸã¯ åå‰ã§æŒ‡å®šã™ã‚‹" -#: src/readelf.c:136 +#: src/readelf.c:137 msgid "Print string contents of sections" msgstr "セクションã®æ–‡å—列内容を表示" -#: src/readelf.c:139 +#: src/readelf.c:140 msgid "Display the symbol index of an archive" msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ã‚’表示" -#: src/readelf.c:141 +#: src/readelf.c:142 msgid "Use the dynamic segment when possible for displaying info" msgstr "" -#: src/readelf.c:143 +#: src/readelf.c:144 msgid "Output control:" msgstr "出力制御:" -#: src/readelf.c:145 +#: src/readelf.c:146 msgid "Do not find symbol names for addresses in DWARF data" msgstr "DWARFデータä¸ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„" -#: src/readelf.c:147 +#: src/readelf.c:148 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "DWARFデータä¸ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„" -#: src/readelf.c:149 +#: src/readelf.c:150 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:151 +#: src/readelf.c:152 msgid "" "Show compression information for compressed sections (when used with -S); " "decompress section before dumping data (when used with -p or -x)" msgstr "" #. Short description of program. -#: src/readelf.c:156 +#: src/readelf.c:157 msgid "Print information from ELF file in human-readable form." msgstr "ELF ファイルã‹ã‚‰äººé–“ãŒèªã‚ã‚‹å½¢ã§æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ã€‚" #. Look up once. -#: src/readelf.c:373 +#: src/readelf.c:395 msgid "yes" msgstr "ã¯ã„" -#: src/readelf.c:374 +#: src/readelf.c:396 msgid "no" msgstr "ã„ã„ãˆ" -#: src/readelf.c:576 +#: src/readelf.c:598 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n" -#: src/readelf.c:647 src/readelf.c:758 +#: src/readelf.c:669 src/readelf.c:780 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "Elf 記述åを生æˆã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188 +#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188 #, c-format msgid "cannot determine number of sections: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508 +#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530 #, c-format msgid "cannot get section: %s" msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033 +#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442 #: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610 #: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222 #: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470 @@ -4149,120 +4143,120 @@ msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s" msgid "cannot get section header: %s" msgstr "セクションヘッダーをå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:689 +#: src/readelf.c:711 #, c-format msgid "cannot get section name" msgstr "セクションåã‚’å–å¾—ã§ãã¾ã›ã‚“" -#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989 -#: src/readelf.c:11173 +#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332 +#: src/readelf.c:11516 #, c-format msgid "cannot get %s content: %s" msgstr "%s ã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:714 +#: src/readelf.c:736 #, c-format msgid "cannot create temp file '%s'" msgstr "一時ファイル '%s' を作æˆã§ãã¾ã›ã‚“" -#: src/readelf.c:723 +#: src/readelf.c:745 #, c-format msgid "cannot write section data" msgstr "セクションデータを書ãè¾¼ã¿ã§ãã¾ã›ã‚“" -#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775 +#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "Elf 記述åã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/readelf.c:736 +#: src/readelf.c:758 #, c-format msgid "error while rewinding file descriptor" msgstr "ファイル記述åã‚’å·»ã戻ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼" -#: src/readelf.c:770 +#: src/readelf.c:792 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ãªãã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–索引を表示ã§ãã¾ã›ã‚“" -#: src/readelf.c:874 +#: src/readelf.c:896 #, c-format msgid "cannot stat input file" msgstr "入力ファイルを stat ã§ãã¾ã›ã‚“" -#: src/readelf.c:876 +#: src/readelf.c:898 #, c-format msgid "input file is empty" msgstr "入力ファイルãŒç©ºã§ã™" -#: src/readelf.c:878 +#: src/readelf.c:900 #, c-format msgid "failed reading '%s': %s" msgstr "'%s' ã®èªè¾¼ã¿ã«å¤±æ•—: %s" -#: src/readelf.c:907 +#: src/readelf.c:929 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s" -#: src/readelf.c:966 +#: src/readelf.c:988 #, c-format msgid "cannot read ELF header: %s" msgstr "ELF ヘッダーをèªã¿è¾¼ã‚ã¾ã›ã‚“: %s" -#: src/readelf.c:974 +#: src/readelf.c:996 #, c-format msgid "cannot create EBL handle" msgstr "EBL ãƒãƒ³ãƒ‰ãƒ«ã‚’作æˆã§ãã¾ã›ã‚“" -#: src/readelf.c:985 +#: src/readelf.c:1007 #, c-format msgid "cannot determine number of program headers: %s" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダã®æ•°ã‚’決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1017 +#: src/readelf.c:1039 #, c-format msgid "cannot read ELF: %s" msgstr "ELFã‚’èªã¿è¾¼ã‚ã¾ã›ã‚“: %s" -#: src/readelf.c:1050 +#: src/readelf.c:1072 #, fuzzy #| msgid "cannot get section: %s" msgid "cannot find section" msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1087 +#: src/readelf.c:1109 msgid "NONE (None)" msgstr "ãªã— (ãªã—)" -#: src/readelf.c:1088 +#: src/readelf.c:1110 msgid "REL (Relocatable file)" msgstr "REL (リãƒã‚±ãƒ¼ã‚¿ãƒ–ルファイル)" -#: src/readelf.c:1089 +#: src/readelf.c:1111 msgid "EXEC (Executable file)" msgstr "(EXEC (実行ファイル)" -#: src/readelf.c:1090 +#: src/readelf.c:1112 msgid "DYN (Shared object file)" msgstr "DYN (共用オブジェクトファイル)" -#: src/readelf.c:1091 +#: src/readelf.c:1113 msgid "CORE (Core file)" msgstr "CORE (コアファイル)" -#: src/readelf.c:1096 +#: src/readelf.c:1118 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS 固有: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1098 +#: src/readelf.c:1120 #, c-format msgid "Processor Specific: (%x)\n" msgstr "プãƒã‚»ãƒƒã‚µãƒ¼å›ºæœ‰: (%x)\n" -#: src/readelf.c:1108 +#: src/readelf.c:1130 msgid "" "ELF Header:\n" " Magic: " @@ -4270,7 +4264,7 @@ msgstr "" "ELF ヘッダー:\n" " マジック: " -#: src/readelf.c:1112 +#: src/readelf.c:1134 #, c-format msgid "" "\n" @@ -4279,123 +4273,123 @@ msgstr "" "\n" " クラス: %s\n" -#: src/readelf.c:1117 +#: src/readelf.c:1139 #, c-format msgid " Data: %s\n" msgstr " データ: %s\n" -#: src/readelf.c:1123 +#: src/readelf.c:1145 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " è˜åˆ¥ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n" -#: src/readelf.c:1125 src/readelf.c:1147 +#: src/readelf.c:1147 src/readelf.c:1169 msgid "(current)" msgstr "(ç¾åœ¨)" -#: src/readelf.c:1129 +#: src/readelf.c:1151 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:1132 +#: src/readelf.c:1154 #, c-format msgid " ABI Version: %hhd\n" msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n" -#: src/readelf.c:1135 +#: src/readelf.c:1157 msgid " Type: " msgstr " タイプ: " -#: src/readelf.c:1140 +#: src/readelf.c:1162 #, c-format msgid " Machine: %s\n" msgstr " マシン : %s\n" -#: src/readelf.c:1142 +#: src/readelf.c:1164 #, fuzzy, c-format msgid " Machine: <unknown>: 0x%x\n" msgstr " マシン : %s\n" -#: src/readelf.c:1145 +#: src/readelf.c:1167 #, c-format msgid " Version: %d %s\n" msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n" -#: src/readelf.c:1149 +#: src/readelf.c:1171 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n" -#: src/readelf.c:1152 +#: src/readelf.c:1174 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " プãƒã‚°ãƒ©ãƒ ヘッダーã®é–‹å§‹: %<PRId64> %s\n" -#: src/readelf.c:1153 src/readelf.c:1156 +#: src/readelf.c:1175 src/readelf.c:1178 msgid "(bytes into file)" msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)" -#: src/readelf.c:1155 +#: src/readelf.c:1177 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n" -#: src/readelf.c:1158 +#: src/readelf.c:1180 #, c-format msgid " Flags: %s\n" msgstr " フラグ: %s\n" -#: src/readelf.c:1161 +#: src/readelf.c:1183 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " ã“ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã®å¤§ãã•: %<PRId16> %s\n" -#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182 +#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204 msgid "(bytes)" msgstr "(ãƒã‚¤ãƒˆ)" -#: src/readelf.c:1164 +#: src/readelf.c:1186 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®å¤§ãã•:%<PRId16> %s\n" -#: src/readelf.c:1167 +#: src/readelf.c:1189 #, fuzzy, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®æ•° : %<PRId16>\n" -#: src/readelf.c:1174 +#: src/readelf.c:1196 #, fuzzy, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "([0].sh_link ã® %<PRIu32>)" -#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208 +#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230 msgid " ([0] not available)" msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)" -#: src/readelf.c:1181 +#: src/readelf.c:1203 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®å¤§ãã•:%<PRId16> %s\n" -#: src/readelf.c:1184 +#: src/readelf.c:1206 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®æ•° : %<PRId16>" -#: src/readelf.c:1191 +#: src/readelf.c:1213 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " ([0].sh_size ã® %<PRIu32>)" #. We managed to get the zeroth section. -#: src/readelf.c:1204 +#: src/readelf.c:1226 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "([0].sh_link ã® %<PRIu32>)" -#: src/readelf.c:1212 +#: src/readelf.c:1234 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4404,7 +4398,7 @@ msgstr "" " セクションヘッダー文å—列テーブル索引: XINDEX%s\n" "\n" -#: src/readelf.c:1216 +#: src/readelf.c:1238 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4413,12 +4407,12 @@ msgstr "" " セクションヘッダー文å—列テーブル索引: %<PRId16>\n" "\n" -#: src/readelf.c:1266 src/readelf.c:1474 +#: src/readelf.c:1288 src/readelf.c:1496 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1269 +#: src/readelf.c:1291 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4427,16 +4421,16 @@ msgstr "" "オフセット %2$#<PRIx64> ã‹ã‚‰å§‹ã¾ã‚‹ %1$d 個ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚Šã¾ã™:\n" "\n" -#: src/readelf.c:1277 +#: src/readelf.c:1299 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "セクションヘッダー文å—列テーブル索引ãŒå¾—られã¾ã›ã‚“" -#: src/readelf.c:1280 +#: src/readelf.c:1302 msgid "Section Headers:" msgstr "セクションヘッダー:" -#: src/readelf.c:1283 +#: src/readelf.c:1305 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4444,7 +4438,7 @@ msgstr "" "[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES フラグLk " "Inf Al" -#: src/readelf.c:1285 +#: src/readelf.c:1307 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4452,35 +4446,35 @@ msgstr "" "[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES " "フラグLk Inf Al" -#: src/readelf.c:1290 +#: src/readelf.c:1312 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1292 +#: src/readelf.c:1314 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1370 +#: src/readelf.c:1392 #, fuzzy, c-format msgid "bad compression header for section %zd: %s" msgstr "セクションヘッダー文å—列セクションを生æˆã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1381 +#: src/readelf.c:1403 #, fuzzy, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" -#: src/readelf.c:1399 +#: src/readelf.c:1421 msgid "Program Headers:" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダー:" -#: src/readelf.c:1401 +#: src/readelf.c:1423 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 " -#: src/readelf.c:1404 +#: src/readelf.c:1426 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4488,12 +4482,12 @@ msgstr "" " タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢" "é‡ Flg 調整 " -#: src/readelf.c:1461 +#: src/readelf.c:1483 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[プãƒã‚°ãƒ©ãƒ 割込ã¿ã‚’è¦æ±‚: %s]\n" -#: src/readelf.c:1486 +#: src/readelf.c:1508 msgid "" "\n" " Section to Segment mapping:\n" @@ -4503,12 +4497,12 @@ msgstr "" " セクションã‹ã‚‰ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ãƒžãƒƒãƒ“ング:\n" " セグメント セクション..." -#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 +#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 #, c-format msgid "cannot get program header: %s" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダーを得られã¾ã›ã‚“: %s" -#: src/readelf.c:1641 +#: src/readelf.c:1663 #, c-format msgid "" "\n" @@ -4521,7 +4515,7 @@ msgstr[0] "" "ç½²å '%3$s' ã‚’æŒã¤ COMDAT セクショングループ [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®" "é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:1646 +#: src/readelf.c:1668 #, c-format msgid "" "\n" @@ -4534,32 +4528,32 @@ msgstr[0] "" "ç½²å '%3$s' ã‚’æŒã¤ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ— [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …ç›®ãŒã‚" "ã‚Šã¾ã™:\n" -#: src/readelf.c:1654 +#: src/readelf.c:1676 msgid "<INVALID SYMBOL>" msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>" -#: src/readelf.c:1668 +#: src/readelf.c:1690 msgid "<INVALID SECTION>" msgstr "<ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³>" -#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881 -#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956 -#: src/readelf.c:12963 +#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212 +#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365 +#: src/readelf.c:13372 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585 +#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s" -#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890 -#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619 +#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221 +#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ä¸å½“㪠.debug_line セクション" -#: src/readelf.c:1867 +#: src/readelf.c:1889 #, c-format msgid "" "\n" @@ -4575,7 +4569,7 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:1880 +#: src/readelf.c:1902 #, fuzzy, c-format #| msgid "" #| "\n" @@ -4599,42 +4593,42 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:1890 +#: src/readelf.c:1912 msgid " Type Value\n" msgstr " タイプ 値\n" -#: src/readelf.c:1899 +#: src/readelf.c:1921 #, fuzzy #| msgid "cannot get string section data: %s" msgid "cannot get string table by using dynamic segment" msgstr "æ–‡å—列セクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1938 +#: src/readelf.c:1960 #, c-format msgid "Shared library: [%s]\n" msgstr "共用ライブラリー: [%s]\n" -#: src/readelf.c:1942 +#: src/readelf.c:1964 #, c-format msgid "Library soname: [%s]\n" msgstr "ライブラリー so å: [%s]\n" -#: src/readelf.c:1946 +#: src/readelf.c:1968 #, c-format msgid "Library rpath: [%s]\n" msgstr "ライブラリー rパス: [%s]\n" -#: src/readelf.c:1950 +#: src/readelf.c:1972 #, c-format msgid "Library runpath: [%s]\n" msgstr "ライブラリー run パス: [%s]\n" -#: src/readelf.c:1969 +#: src/readelf.c:1993 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n" -#: src/readelf.c:2083 src/readelf.c:2272 +#: src/readelf.c:2109 src/readelf.c:2298 #, c-format msgid "" "\n" @@ -4643,7 +4637,7 @@ msgstr "" "\n" "オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n" -#: src/readelf.c:2100 src/readelf.c:2289 +#: src/readelf.c:2126 src/readelf.c:2315 #, c-format msgid "" "\n" @@ -4664,7 +4658,8 @@ msgstr[0] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:2115 src/readelf.c:2304 +#. A .relr.dyn section does not refer to a specific section. +#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485 #, c-format msgid "" "\n" @@ -4677,29 +4672,39 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> ã®ãƒªãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2u] '%2$s' ã«ã¯ %4$d " "個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:2125 +#: src/readelf.c:2151 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 åå‰\n" -#: src/readelf.c:2127 +#: src/readelf.c:2153 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 åå‰\n" -#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225 -#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396 -#: src/readelf.c:2418 src/readelf.c:2431 +#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251 +#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422 +#: src/readelf.c:2444 src/readelf.c:2457 msgid "<INVALID RELOC>" msgstr "<ä¸å½“ãªRELOC>" -#: src/readelf.c:2314 +#: src/readelf.c:2340 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 ä»˜åŠ å\n" -#: src/readelf.c:2316 +#: src/readelf.c:2342 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 ä»˜åŠ å\n" -#: src/readelf.c:2558 +#: src/readelf.c:2654 +#, c-format +msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" +msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" + +#: src/readelf.c:2750 +#, c-format +msgid "bad dynamic symbol" +msgstr "ä¸æ£ãªå‹•çš„シンボル" + +#: src/readelf.c:2868 #, c-format msgid "" "\n" @@ -4711,39 +4716,33 @@ msgstr[0] "" "\n" "シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:2563 +#: src/readelf.c:2873 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] " %lu ãƒãƒ¼ã‚«ãƒ«ã‚·ãƒ³ãƒœãƒ«æ–‡å—列テーブル: [%2u] '%s'\n" -#: src/readelf.c:2571 +#: src/readelf.c:2881 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n" -#: src/readelf.c:2573 +#: src/readelf.c:2883 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n" -#: src/readelf.c:2593 -#, c-format -msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" - -#: src/readelf.c:2686 -#, c-format -msgid "bad dynamic symbol" -msgstr "ä¸æ£ãªå‹•çš„シンボル" +#: src/readelf.c:3002 +msgid "Dynamic symbol information is not available for displaying symbols." +msgstr "" -#: src/readelf.c:2771 +#: src/readelf.c:3102 msgid "none" msgstr "ãªã—" -#: src/readelf.c:2788 +#: src/readelf.c:3119 msgid "| <unknown>" msgstr "| <ä¸æ˜Ž>" -#: src/readelf.c:2818 +#: src/readelf.c:3149 #, c-format msgid "" "\n" @@ -4759,17 +4758,17 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:2839 +#: src/readelf.c:3170 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n" -#: src/readelf.c:2852 +#: src/readelf.c:3183 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n" -#: src/readelf.c:2894 +#: src/readelf.c:3225 #, c-format msgid "" "\n" @@ -4785,18 +4784,18 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:2922 +#: src/readelf.c:3253 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hd フラグ: %s 索引: %hd æ•°: %hd åå‰: %s\n" -#: src/readelf.c:2937 +#: src/readelf.c:3268 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: 親 %d: %s\n" #. Print the header. -#: src/readelf.c:3197 +#: src/readelf.c:3528 #, c-format msgid "" "\n" @@ -4812,15 +4811,15 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'" -#: src/readelf.c:3225 +#: src/readelf.c:3556 msgid " 0 *local* " msgstr " 0 *ãƒãƒ¼ã‚«ãƒ«* " -#: src/readelf.c:3230 +#: src/readelf.c:3561 msgid " 1 *global* " msgstr " 1 *ã‚°ãƒãƒ¼ãƒãƒ«* " -#: src/readelf.c:3272 +#: src/readelf.c:3603 #, c-format msgid "" "\n" @@ -4838,22 +4837,22 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:3294 +#: src/readelf.c:3625 #, fuzzy, no-c-format msgid " Length Number % of total Coverage\n" msgstr " é•·ã• æ•° 全体ã®% 範囲 \n" -#: src/readelf.c:3296 +#: src/readelf.c:3627 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3303 +#: src/readelf.c:3634 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3316 +#: src/readelf.c:3647 #, fuzzy, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4862,37 +4861,37 @@ msgstr "" " テストã®å¹³å‡æ•°: 検索æˆåŠŸ: %f\n" " 検索失敗: %f\n" -#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464 +#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795 #, c-format msgid "cannot get data for section %d: %s" msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" -#: src/readelf.c:3342 +#: src/readelf.c:3673 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3371 +#: src/readelf.c:3702 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3406 +#: src/readelf.c:3737 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3437 +#: src/readelf.c:3768 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3473 +#: src/readelf.c:3804 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3539 +#: src/readelf.c:3870 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4902,7 +4901,7 @@ msgstr "" " ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビットè¨å®š 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•" "ト: %u\n" -#: src/readelf.c:3624 +#: src/readelf.c:3955 #, c-format msgid "" "\n" @@ -4915,7 +4914,7 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> ã®ãƒ©ã‚¤ãƒ–ラリー一覧セクション [%1$2zu] '%2$s' ã«ã¯ " "%4$d 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:3638 +#: src/readelf.c:3969 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4923,7 +4922,7 @@ msgstr "" " ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãƒãƒ¼" "ジョン フラグ" -#: src/readelf.c:3698 +#: src/readelf.c:4029 #, c-format msgid "" "\n" @@ -4934,107 +4933,107 @@ msgstr "" "オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ã‚ªãƒ–ジェクト属性セクション " "[%1$2zu] '%2$s':\n" -#: src/readelf.c:3715 +#: src/readelf.c:4046 msgid " Owner Size\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:3739 +#: src/readelf.c:4070 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3778 +#: src/readelf.c:4109 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3783 +#: src/readelf.c:4114 #, c-format msgid " File: %11<PRIu32>\n" msgstr " ファイル: %11<PRIu32>\n" -#: src/readelf.c:3833 +#: src/readelf.c:4164 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>ã€%s\n" -#: src/readelf.c:3836 +#: src/readelf.c:4167 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3839 +#: src/readelf.c:4170 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3849 +#: src/readelf.c:4180 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3852 +#: src/readelf.c:4183 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3890 +#: src/readelf.c:4221 #, fuzzy #| msgid "couldn't get shdr for group section: %s" msgid "Couldn't get data from section" msgstr "グループセクションã«å¯¾ã™ã‚‹ shdr ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: src/readelf.c:3955 +#: src/readelf.c:4286 msgid "sprintf failure" msgstr "" -#: src/readelf.c:4439 +#: src/readelf.c:4770 msgid "empty block" msgstr "空ブãƒãƒƒã‚¯" -#: src/readelf.c:4442 +#: src/readelf.c:4773 #, c-format msgid "%zu byte block:" msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ãƒãƒƒã‚¯:" -#: src/readelf.c:4920 +#: src/readelf.c:5251 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:5080 +#: src/readelf.c:5423 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "" -#: src/readelf.c:5087 +#: src/readelf.c:5430 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "" -#: src/readelf.c:5094 +#: src/readelf.c:5437 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "" -#: src/readelf.c:5101 +#: src/readelf.c:5444 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "" -#: src/readelf.c:5201 +#: src/readelf.c:5544 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr "" -#: src/readelf.c:5209 +#: src/readelf.c:5552 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr "" -#: src/readelf.c:5315 +#: src/readelf.c:5658 #, c-format msgid "" "\n" @@ -5045,7 +5044,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" " [ コード]\n" -#: src/readelf.c:5323 +#: src/readelf.c:5666 #, c-format msgid "" "\n" @@ -5054,20 +5053,20 @@ msgstr "" "\n" "オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n" -#: src/readelf.c:5336 +#: src/readelf.c:5679 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** 略語をèªã‚“ã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n" -#: src/readelf.c:5352 +#: src/readelf.c:5695 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %<PRId64>ã€å: %sã€ã‚¿ã‚°: %s\n" -#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224 -#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829 -#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627 -#: src/readelf.c:10698 +#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567 +#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172 +#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970 +#: src/readelf.c:11041 #, c-format msgid "" "\n" @@ -5076,47 +5075,47 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397 +#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410 +#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419 +#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429 +#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820 +#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163 #, fuzzy, c-format msgid "Unknown version" msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³" -#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424 +#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767 #, fuzzy, c-format msgid "unsupported address size" msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434 +#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5952 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:5624 +#: src/readelf.c:5967 #, c-format msgid "" "\n" @@ -5129,19 +5128,19 @@ msgstr[0] "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:5655 +#: src/readelf.c:5998 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5657 +#: src/readelf.c:6000 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" " [%*zu] 開始: %0#*<PRIx64>ã€é•·ã•: %5<PRIu64>ã€CU DIE オフセット: %6<PRId64>\n" -#: src/readelf.c:5695 src/readelf.c:8638 +#: src/readelf.c:6038 src/readelf.c:8981 #, fuzzy, c-format msgid "" "\n" @@ -5150,142 +5149,142 @@ msgstr "" "\n" "オフセット %Zu ã®ãƒ†ãƒ¼ãƒ–ル:\n" -#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649 -#: src/readelf.c:9378 +#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992 +#: src/readelf.c:9721 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:5715 +#: src/readelf.c:6058 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5727 +#: src/readelf.c:6070 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5731 +#: src/readelf.c:6074 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5742 +#: src/readelf.c:6085 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5748 +#: src/readelf.c:6091 #, fuzzy, c-format msgid " Address size: %6<PRIu64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5759 +#: src/readelf.c:6102 #, fuzzy, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:5814 +#: src/readelf.c:6157 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5876 src/readelf.c:9384 +#: src/readelf.c:6219 src/readelf.c:9727 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5931 src/readelf.c:9439 +#: src/readelf.c:6274 src/readelf.c:9782 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5947 src/readelf.c:9455 +#: src/readelf.c:6290 src/readelf.c:9798 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5949 src/readelf.c:9457 +#: src/readelf.c:6292 src/readelf.c:9800 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5955 src/readelf.c:9463 +#: src/readelf.c:6298 src/readelf.c:9806 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5966 src/readelf.c:9474 +#: src/readelf.c:6309 src/readelf.c:9817 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5970 src/readelf.c:9478 +#: src/readelf.c:6313 src/readelf.c:9821 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:6022 +#: src/readelf.c:6365 #, fuzzy, c-format msgid "invalid range list data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:6207 src/readelf.c:9813 +#: src/readelf.c:6550 src/readelf.c:10156 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:6255 src/readelf.c:9862 +#: src/readelf.c:6598 src/readelf.c:10205 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6257 src/readelf.c:9864 +#: src/readelf.c:6600 src/readelf.c:10207 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916 +#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:6291 src/readelf.c:10000 +#: src/readelf.c:6634 src/readelf.c:10343 #, fuzzy msgid "base address" msgstr "アドレスを %s ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:6301 src/readelf.c:10010 +#: src/readelf.c:6644 src/readelf.c:10353 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr "" "\n" " [%6tx] ゼãƒçµ‚端\n" -#: src/readelf.c:6565 +#: src/readelf.c:6908 #, fuzzy msgid " <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:6822 +#: src/readelf.c:7165 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:6846 +#: src/readelf.c:7189 #, c-format msgid "" "\n" @@ -5294,7 +5293,7 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® ãƒ•ãƒ¬ãƒ¼ãƒ æƒ…å ±å‘¼å‡ºã—セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:6896 +#: src/readelf.c:7239 #, c-format msgid "" "\n" @@ -5303,65 +5302,65 @@ msgstr "" "\n" " [%6tx] ゼãƒçµ‚端\n" -#: src/readelf.c:7000 src/readelf.c:7154 +#: src/readelf.c:7343 src/readelf.c:7497 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰" -#: src/readelf.c:7015 +#: src/readelf.c:7358 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:7021 +#: src/readelf.c:7364 msgid "LSDA pointer encoding: " msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:7131 +#: src/readelf.c:7474 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:7138 +#: src/readelf.c:7481 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:7175 +#: src/readelf.c:7518 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n" -#: src/readelf.c:7260 +#: src/readelf.c:7603 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "属性コードを得られã¾ã›ã‚“: %s" -#: src/readelf.c:7270 +#: src/readelf.c:7613 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s" -#: src/readelf.c:7292 +#: src/readelf.c:7635 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "属性値を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7622 +#: src/readelf.c:7965 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«" -#: src/readelf.c:7626 +#: src/readelf.c:7969 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:7630 +#: src/readelf.c:7973 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7952 +#: src/readelf.c:8295 #, c-format msgid "" "\n" @@ -5372,12 +5371,12 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:8002 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:8022 +#: src/readelf.c:8365 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5389,7 +5388,7 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:8034 +#: src/readelf.c:8377 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5400,39 +5399,39 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:8044 src/readelf.c:8205 +#: src/readelf.c:8387 src/readelf.c:8548 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:8071 +#: src/readelf.c:8414 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:8100 +#: src/readelf.c:8443 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られã¾ã›ã‚“: %s" -#: src/readelf.c:8109 +#: src/readelf.c:8452 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "セクション '%2$s' ä¸ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$<PRIu64> ã® DIE ã®ã‚¿ã‚°ã‚’得られã¾ã›ã‚“: " "%3$s" -#: src/readelf.c:8145 +#: src/readelf.c:8488 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n" -#: src/readelf.c:8153 +#: src/readelf.c:8496 #, c-format msgid "cannot get next DIE: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:8197 +#: src/readelf.c:8540 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5443,7 +5442,7 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:8249 +#: src/readelf.c:8592 #, fuzzy, c-format msgid "" "\n" @@ -5453,13 +5452,13 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:8581 +#: src/readelf.c:8924 #, fuzzy, c-format msgid "unknown form: %s" msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>" #. Print what we got so far. -#: src/readelf.c:8729 +#: src/readelf.c:9072 #, fuzzy, c-format msgid "" "\n" @@ -5489,33 +5488,33 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:8751 +#: src/readelf.c:9094 #, c-format msgid "cannot handle .debug_line version: %u\n" msgstr ".debug_line ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’扱ãˆã¾ã›ã‚“: %u\n" -#: src/readelf.c:8759 +#: src/readelf.c:9102 #, c-format msgid "cannot handle address size: %u\n" msgstr "アドレスサイズを扱ãˆã¾ã›ã‚“: %u\n" -#: src/readelf.c:8767 +#: src/readelf.c:9110 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "セグメントセレクタサイズを扱ãˆã¾ã›ã‚“: %u\n" -#: src/readelf.c:8777 +#: src/readelf.c:9120 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' ä¸ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$tu ã«ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:8792 +#: src/readelf.c:9135 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n" -#: src/readelf.c:8803 +#: src/readelf.c:9146 msgid "" "\n" "Directory table:" @@ -5523,12 +5522,12 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:8809 src/readelf.c:8886 +#: src/readelf.c:9152 src/readelf.c:9229 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8880 +#: src/readelf.c:9223 #, fuzzy msgid "" "\n" @@ -5537,7 +5536,7 @@ msgstr "" "\n" " 呼出ã—サイトテーブル:" -#: src/readelf.c:8941 +#: src/readelf.c:9284 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5545,7 +5544,7 @@ msgstr "" "ファイルåテーブル:\n" " Entry Dir 時刻 大ãã• åå‰" -#: src/readelf.c:8987 +#: src/readelf.c:9330 #, fuzzy msgid "" "\n" @@ -5554,7 +5553,7 @@ msgstr "" "\n" "è¡Œ ç•ªå· æ–‡:" -#: src/readelf.c:8991 +#: src/readelf.c:9334 msgid "" "\n" "Line number statements:" @@ -5562,129 +5561,129 @@ msgstr "" "\n" "è¡Œ ç•ªå· æ–‡:" -#: src/readelf.c:9006 +#: src/readelf.c:9349 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:9040 +#: src/readelf.c:9383 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " 特殊命令コード %u: アドレス+%u = %s, è¡Œ%+d = %zu\n" -#: src/readelf.c:9044 +#: src/readelf.c:9387 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, è¡Œ%+d = %zu\n" -#: src/readelf.c:9047 +#: src/readelf.c:9390 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:9065 +#: src/readelf.c:9408 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:9070 +#: src/readelf.c:9413 #, fuzzy msgid " end of sequence" msgstr "列ã®çµ‚ã‚ã‚Š" -#: src/readelf.c:9088 +#: src/readelf.c:9431 #, fuzzy, c-format msgid " set address to " msgstr "アドレスを %s ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:9116 +#: src/readelf.c:9459 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "新ファイルを定義ã™ã‚‹: dir=%uã€mtime=%<PRIu64>ã€é•·ã•h=%<PRIu64>ã€åå‰=%s\n" -#: src/readelf.c:9130 +#: src/readelf.c:9473 #, fuzzy, c-format msgid " set discriminator to %u\n" msgstr "カラムを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:9157 +#: src/readelf.c:9500 #, c-format msgid " set inlined context %u, function name %s (0x%x)\n" msgstr "" -#: src/readelf.c:9181 +#: src/readelf.c:9524 #, fuzzy, c-format #| msgid "Also show function names" msgid " set function name %s (0x%x)\n" msgstr "関数åも表示" #. Unknown, ignore it. -#: src/readelf.c:9188 +#: src/readelf.c:9531 msgid " unknown opcode" msgstr "ä¸æ˜Žãªã‚ªãƒšã‚³ãƒ¼ãƒ‰" #. Takes no argument. -#: src/readelf.c:9200 +#: src/readelf.c:9543 msgid " copy" msgstr "複写" -#: src/readelf.c:9211 +#: src/readelf.c:9554 #, fuzzy, c-format msgid " advance address by %u to " msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n" -#: src/readelf.c:9215 src/readelf.c:9276 +#: src/readelf.c:9558 src/readelf.c:9619 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:9227 +#: src/readelf.c:9570 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n" -#: src/readelf.c:9237 +#: src/readelf.c:9580 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:9248 +#: src/readelf.c:9591 #, c-format msgid " set column to %<PRIu64>\n" msgstr "カラムを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:9255 +#: src/readelf.c:9598 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨å®šã™ã‚‹\n" #. Takes no argument. -#: src/readelf.c:9261 +#: src/readelf.c:9604 msgid " set basic block flag" msgstr "基本ブãƒãƒƒã‚¯ãƒ•ãƒ©ã‚°ã‚’è¨å®šã™ã‚‹" -#: src/readelf.c:9272 +#: src/readelf.c:9615 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n" -#: src/readelf.c:9292 +#: src/readelf.c:9635 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr "アドレスを固定値 %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n" #. Takes no argument. -#: src/readelf.c:9302 +#: src/readelf.c:9645 msgid " set prologue end flag" msgstr "プãƒãƒãƒ¼ã‚°çµ‚了フラグをè¨å®šã™ã‚‹" #. Takes no argument. -#: src/readelf.c:9307 +#: src/readelf.c:9650 msgid " set epilogue begin flag" msgstr "エピãƒãƒ¼ã‚°é–‹å§‹ãƒ•ãƒ©ã‚°ã‚’è¨å®šã™ã‚‹" -#: src/readelf.c:9317 +#: src/readelf.c:9660 #, fuzzy, c-format msgid " set isa to %u\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" @@ -5692,88 +5691,88 @@ msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" #. This is a new opcode the generator but not we know about. #. Read the parameters associated with it but then discard #. everything. Read all the parameters for this opcode. -#: src/readelf.c:9326 +#: src/readelf.c:9669 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:9527 +#: src/readelf.c:9870 #, fuzzy, c-format msgid " <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:9567 +#: src/readelf.c:9910 #, fuzzy, c-format msgid "invalid loclists data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:10037 src/readelf.c:11082 +#: src/readelf.c:10380 src/readelf.c:11425 #, fuzzy msgid " <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:10168 +#: src/readelf.c:10511 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„æ–‡å—列" -#: src/readelf.c:10191 +#: src/readelf.c:10534 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„æ–‡å—列" -#: src/readelf.c:10286 +#: src/readelf.c:10629 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:10298 +#: src/readelf.c:10641 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10304 src/readelf.c:11202 +#: src/readelf.c:10647 src/readelf.c:11546 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:10311 +#: src/readelf.c:10654 #, fuzzy, c-format msgid " Flag: 0x%<PRIx8>" msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n" -#: src/readelf.c:10340 +#: src/readelf.c:10683 #, fuzzy, c-format msgid " Offset length: %<PRIu8>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10348 +#: src/readelf.c:10691 #, fuzzy, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:10373 +#: src/readelf.c:10716 #, fuzzy, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:10380 +#: src/readelf.c:10723 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:10392 +#: src/readelf.c:10735 #, fuzzy, c-format msgid " %<PRIu8> arguments:" msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n" -#: src/readelf.c:10407 +#: src/readelf.c:10750 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10608 +#: src/readelf.c:10951 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" @@ -5781,7 +5780,7 @@ msgstr "" # # "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s æ–‡å—列\n" ãŒã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ä½•æ•…? å–ã‚Šæ•¢ãˆãš fuzzy扱ㄠ-#: src/readelf.c:10663 +#: src/readelf.c:11006 #, fuzzy, c-format msgid "" "\n" @@ -5793,37 +5792,37 @@ msgstr "" " %4$*s æ–‡å—列\n" #. TRANS: the debugstr| prefix makes the string unique. -#: src/readelf.c:10668 +#: src/readelf.c:11011 msgctxt "debugstr" msgid "Offset" msgstr "" -#: src/readelf.c:10678 +#: src/readelf.c:11021 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** æ–‡å—列ã®èªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s\n" -#: src/readelf.c:10800 +#: src/readelf.c:11143 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10802 +#: src/readelf.c:11145 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10816 +#: src/readelf.c:11159 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10825 +#: src/readelf.c:11168 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10879 +#: src/readelf.c:11222 #, c-format msgid "" "\n" @@ -5832,7 +5831,7 @@ msgstr "" "\n" "呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10981 +#: src/readelf.c:11324 #, c-format msgid "" "\n" @@ -5841,22 +5840,22 @@ msgstr "" "\n" "例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:11004 +#: src/readelf.c:11347 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:11016 +#: src/readelf.c:11359 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:11033 +#: src/readelf.c:11376 #, c-format msgid " Call site encoding: %#x " msgstr "呼出ã—サイトコード化: %#x " -#: src/readelf.c:11048 +#: src/readelf.c:11391 msgid "" "\n" " Call site table:" @@ -5864,7 +5863,7 @@ msgstr "" "\n" " 呼出ã—サイトテーブル:" -#: src/readelf.c:11064 +#: src/readelf.c:11407 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5877,12 +5876,12 @@ msgstr "" " 離ç€é™¸å ´: %#<PRIx64>\n" " 行動: %u\n" -#: src/readelf.c:11137 +#: src/readelf.c:11480 #, c-format msgid "invalid TType encoding" msgstr "ä¸å½“㪠TType コード化" -#: src/readelf.c:11164 +#: src/readelf.c:11507 #, fuzzy, c-format msgid "" "\n" @@ -5892,37 +5891,42 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:11193 +#: src/readelf.c:11536 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:11211 +#: src/readelf.c:11555 #, fuzzy, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:11218 +#: src/readelf.c:11562 #, fuzzy, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:11225 +#: src/readelf.c:11569 #, fuzzy, c-format msgid " address offset: %#<PRIx32>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:11232 +#: src/readelf.c:11576 #, fuzzy, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:11239 +#: src/readelf.c:11586 +#, fuzzy, c-format +msgid " shortcut offset: %#<PRIx32>\n" +msgstr " (終了オフセット: %#<PRIx64>)" + +#: src/readelf.c:11594 #, fuzzy, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:11253 +#: src/readelf.c:11608 #, fuzzy, c-format msgid "" "\n" @@ -5932,7 +5936,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:11278 +#: src/readelf.c:11633 #, fuzzy, c-format msgid "" "\n" @@ -5942,7 +5946,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:11307 +#: src/readelf.c:11662 #, fuzzy, c-format msgid "" "\n" @@ -5952,7 +5956,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:11339 +#: src/readelf.c:11705 #, fuzzy, c-format msgid "" "\n" @@ -5961,18 +5965,37 @@ msgstr "" "\n" "オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n" -#: src/readelf.c:11477 +#: src/readelf.c:11790 +#, fuzzy, c-format +msgid "" +"\n" +"Shortcut table at offset %#<PRIx32> contains %zu slots:\n" +msgstr "" +"\n" +"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n" + +#: src/readelf.c:11802 +#, c-format +msgid "Language of main: %s\n" +msgstr "" + +#: src/readelf.c:11803 +#, c-format +msgid "Name of main: " +msgstr "" + +#: src/readelf.c:11886 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デãƒãƒƒã‚°å†…容記述åを得られã¾ã›ã‚“: %s" -#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573 -#: src/readelf.c:12630 +#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982 +#: src/readelf.c:13039 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:12207 +#: src/readelf.c:12616 #, c-format msgid "" "\n" @@ -5981,21 +6004,21 @@ msgstr "" "\n" "%*s... < %u 回ã®ç¹°è¿”ã—> ..." -#: src/readelf.c:12709 +#: src/readelf.c:13118 msgid " Owner Data size Type\n" msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n" -#: src/readelf.c:12737 +#: src/readelf.c:13146 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12789 +#: src/readelf.c:13198 #, c-format msgid "cannot get content of note: %s" msgstr "ノートセクションã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:12822 +#: src/readelf.c:13231 #, c-format msgid "" "\n" @@ -6005,7 +6028,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2zu] " "'%2$s':\n" -#: src/readelf.c:12845 +#: src/readelf.c:13254 #, c-format msgid "" "\n" @@ -6014,7 +6037,7 @@ msgstr "" "\n" "オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n" -#: src/readelf.c:12892 +#: src/readelf.c:13301 #, fuzzy, c-format msgid "" "\n" @@ -6023,12 +6046,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/readelf.c:12919 src/readelf.c:12970 +#: src/readelf.c:13328 src/readelf.c:13379 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s" -#: src/readelf.c:12924 +#: src/readelf.c:13333 #, fuzzy, c-format msgid "" "\n" @@ -6038,7 +6061,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン" "プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n" -#: src/readelf.c:12929 +#: src/readelf.c:13338 #, fuzzy, c-format msgid "" "\n" @@ -6049,7 +6072,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン" "プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n" -#: src/readelf.c:12943 +#: src/readelf.c:13352 #, fuzzy, c-format msgid "" "\n" @@ -6058,7 +6081,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/readelf.c:12975 +#: src/readelf.c:13384 #, fuzzy, c-format msgid "" "\n" @@ -6068,7 +6091,7 @@ msgstr "" "オフセット %4$#0<PRIx64> æ–‡å—列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ" "イトã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:12980 +#: src/readelf.c:13389 #, fuzzy, c-format msgid "" "\n" @@ -6079,7 +6102,7 @@ msgstr "" "オフセット %4$#0<PRIx64> æ–‡å—列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ" "イトã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:13028 +#: src/readelf.c:13437 #, c-format msgid "" "\n" @@ -6088,7 +6111,7 @@ msgstr "" "\n" "セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:13058 +#: src/readelf.c:13467 #, c-format msgid "" "\n" @@ -6097,12 +6120,12 @@ msgstr "" "\n" "セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:13113 +#: src/readelf.c:13522 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s" -#: src/readelf.c:13116 +#: src/readelf.c:13525 #, c-format msgid "" "\n" @@ -6111,7 +6134,7 @@ msgstr "" "\n" "アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n" -#: src/readelf.c:13120 +#: src/readelf.c:13529 #, c-format msgid "" "\n" @@ -6120,12 +6143,12 @@ msgstr "" "\n" "アーカイブ '%s' ã®ç´¢å¼•ã¯ %zu 個ã®é …目をæŒã¡ã¾ã™:\n" -#: src/readelf.c:13138 +#: src/readelf.c:13547 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "'%2$s' 㮠オフセット %1$zu ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’抽出ã§ãã¾ã›ã‚“: %3$s" -#: src/readelf.c:13143 +#: src/readelf.c:13552 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンãƒãƒ¼ '%s' ã«ã¯ä»¥ä¸‹ãŒã‚ã‚Šã¾ã™:\n" @@ -6609,7 +6632,7 @@ msgstr "%s: ELF ヘッダーã®æ›´æ–°ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" msgid "%s: error while getting shdrstrndx: %s" msgstr "%s: shdrstrndx ã®å–å¾—ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:1712 src/strip.c:2553 +#: src/strip.c:1712 src/strip.c:2552 #, c-format msgid "%s: error updating shdrstrndx: %s" msgstr "%s: shdrstrndx ã®æ›´æ–°ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" @@ -6643,7 +6666,7 @@ msgstr "セクションヘッダー文å—列テーブルを作æˆã™ã‚‹ãƒ¡ãƒ¢ãƒª msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2469 src/strip.c:2577 +#: src/strip.c:2469 src/strip.c:2574 #, c-format msgid "while writing '%s': %s" msgstr "'%s' を書込ã¿ä¸: %s" @@ -6663,22 +6686,22 @@ msgstr "デãƒãƒƒã‚°æƒ…å ±ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ を計算ä¸" msgid "%s: error while creating ELF header: %s" msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:2562 +#: src/strip.c:2560 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:2602 src/strip.c:2622 +#: src/strip.c:2599 src/strip.c:2619 #, c-format msgid "while writing '%s'" msgstr "書ãè¾¼ã¿ä¸ '%s'" -#: src/strip.c:2659 src/strip.c:2666 +#: src/strip.c:2656 src/strip.c:2663 #, c-format msgid "error while finishing '%s': %s" msgstr "'%s' ã®çµ‚了ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:2683 src/strip.c:2759 +#: src/strip.c:2680 src/strip.c:2756 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "'%s' ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨å¤‰æ›´æ—¥ä»˜ã‚’è¨å®šã§ãã¾ã›ã‚“" @@ -7127,7 +7150,7 @@ msgid "" "section PATH SECTION-NAME\n" msgstr "" -#: tests/backtrace.c:483 +#: tests/backtrace.c:491 msgid "Run executable" msgstr "" @@ -7139,6 +7162,11 @@ msgstr "関数åã‚’ ã•ã‚‰ã« 表示" msgid "Show instances of inlined functions" msgstr "インライン関数ã®å®Ÿä½“を表示" +#, c-format +#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" +#~ msgstr "" +#~ "セクション [%2d] '%s': ã‚»ã‚¯ã‚·ãƒ§ãƒ³é …ç›®ã‚µã‚¤ã‚ºãŒ ElfXX_Rela ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" + #, fuzzy, c-format #~ msgid "cannot get .debug_addr section data: %s" #~ msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-03-03 16:09+0100\n" +"POT-Creation-Date: 2023-11-03 17:36+0100\n" "PO-Revision-Date: 2021-02-22 16:25+0100\n" "Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n" "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n" @@ -54,7 +54,7 @@ msgstr "" "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyÅ›lnej gwarancji PRZYDATNOÅšCI\n" "HANDLOWEJ albo PRZYDATNOÅšCI DO OKREÅšLONYCH ZASTOSOWAŃ.\n" -#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793 +#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202 #: src/unstrip.c:311 #, c-format msgid "memory exhausted" @@ -537,7 +537,7 @@ msgstr "Brak zaplecza" #: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79 #: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 -#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81 +#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81 msgid "<unknown>" msgstr "<nieznany>" @@ -631,7 +631,7 @@ msgstr "nieprawidÅ‚owy rozmiar operandu źródÅ‚owego" msgid "invalid size of destination operand" msgstr "nieprawidÅ‚owy rozmiar operandu docelowego" -#: libelf/elf_error.c:86 src/readelf.c:6415 +#: libelf/elf_error.c:86 src/readelf.c:6758 #, c-format msgid "invalid encoding" msgstr "nieprawidÅ‚owe kodowanie" @@ -716,8 +716,8 @@ msgstr "dane/scn nie zgadzajÄ… siÄ™" msgid "invalid section header" msgstr "nieprawidÅ‚owy nagłówek sekcji" -#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899 -#: src/readelf.c:11000 src/readelf.c:11188 +#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242 +#: src/readelf.c:11343 src/readelf.c:11531 #, c-format msgid "invalid data" msgstr "nieprawidÅ‚owe dane" @@ -1374,8 +1374,8 @@ msgid "Suppress some error output (counterpart to --verbose)" msgstr "Zmniejsza wyjÅ›cie bÅ‚Ä™dów (odpowiednik opcji --verbose)" #. Strings for arguments in help texts. -#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76 -#: src/readelf.c:160 +#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77 +#: src/readelf.c:161 msgid "FILE..." msgstr "PLIK…" @@ -1699,21 +1699,21 @@ msgid "unknown compression type '%s'" msgstr "nieznany typ kompresji „%sâ€" #. We need at least one input file. -#: src/elfcompress.c:162 src/elfcompress.c:1444 +#: src/elfcompress.c:162 src/elfcompress.c:1447 #, c-format msgid "No input file given" msgstr "Nie podano pliku wejÅ›ciowego" -#: src/elfcompress.c:168 src/elfcompress.c:1448 +#: src/elfcompress.c:168 src/elfcompress.c:1451 #, c-format msgid "Only one input file allowed together with '-o'" msgstr "Tylko jeden plik wejÅ›ciowy jest dozwolony z „-oâ€" -#: src/elfcompress.c:1405 +#: src/elfcompress.c:1408 msgid "Place (de)compressed output into FILE" msgstr "Umieszcza zdekompresowane wyjÅ›cie w PLIKU" -#: src/elfcompress.c:1408 +#: src/elfcompress.c:1411 #, fuzzy #| msgid "" #| "What type of compression to apply. TYPE can be 'none' (decompress), " @@ -1729,7 +1729,7 @@ msgstr "" "„zlib†(kompresja zlib ELF, domyÅ›lna, „zlib-gabi†to alias) lub „zlib-" "gnu†(kompresja .zdebug w stylu GNU, „gnu†to alias)" -#: src/elfcompress.c:1412 +#: src/elfcompress.c:1415 msgid "" "SECTION name to (de)compress, SECTION is an extended wildcard pattern " "(defaults to '.?(z)debug*')" @@ -1737,11 +1737,11 @@ msgstr "" "Nazwa SEKCJI do (de)kompresowania, SEKCJA jest rozszerzonym wzorem " "(domyÅ›lnie „.?(z)debug*â€)" -#: src/elfcompress.c:1415 +#: src/elfcompress.c:1418 msgid "Print a message for each section being (de)compressed" msgstr "WyÅ›wietla komunikat dla każdej (de)kompresowanej sekcji" -#: src/elfcompress.c:1418 +#: src/elfcompress.c:1421 msgid "" "Force compression of section even if it would become larger or update/" "rewrite the file even if no section would be (de)compressed" @@ -1750,31 +1750,31 @@ msgstr "" "zaktualizowanie/przepisanie pliku, nawet jeÅ›li żadna sekcja nie zostaÅ‚aby " "(zde)kompresowana" -#: src/elfcompress.c:1421 src/strip.c:92 +#: src/elfcompress.c:1424 src/strip.c:92 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Åagodzi kilka reguÅ‚, aby obsÅ‚użyć lekko uszkodzone pliki ELF" -#: src/elfcompress.c:1424 +#: src/elfcompress.c:1427 msgid "Be silent when a section cannot be compressed" msgstr "Bez zgÅ‚aszania, kiedy nie można zdekompresować sekcji" -#: src/elfcompress.c:1434 +#: src/elfcompress.c:1437 msgid "Compress or decompress sections in an ELF file." msgstr "Kompresuje lub dekompresuje sekcje w pliku ELF." -#: src/elflint.c:62 +#: src/elflint.c:63 msgid "Be extremely strict, flag level 2 features." msgstr "Bardzo Å›cisÅ‚e sprawdzanie, cechy poziomu 2 flag." -#: src/elflint.c:63 +#: src/elflint.c:64 msgid "Do not print anything if successful" msgstr "Nie wypisywanie niczego w przypadku powodzenia" -#: src/elflint.c:64 +#: src/elflint.c:65 msgid "Binary is a separate debuginfo file" msgstr "Plik binarny jest oddzielnym plikiem debuginfo" -#: src/elflint.c:66 +#: src/elflint.c:67 msgid "" "Binary has been created with GNU ld and is therefore known to be broken in " "certain ways" @@ -1783,172 +1783,172 @@ msgstr "" "w pewien sposób" #. Short description of program. -#: src/elflint.c:72 +#: src/elflint.c:73 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" "Szczegółowe sprawdzanie zgodnoÅ›ci plików ELF ze specyfikacjÄ… gABI/psABI." -#: src/elflint.c:153 src/readelf.c:391 +#: src/elflint.c:154 src/readelf.c:413 #, c-format msgid "cannot open input file '%s'" msgstr "nie można otworzyć pliku wejÅ›ciowego „%sâ€" -#: src/elflint.c:160 +#: src/elflint.c:161 #, c-format msgid "cannot generate Elf descriptor for '%s': %s\n" msgstr "nie można utworzyć deskryptora ELF dla „%sâ€: %s\n" -#: src/elflint.c:179 +#: src/elflint.c:180 #, c-format msgid "error while closing Elf descriptor: %s\n" msgstr "bÅ‚Ä…d podczas zamykania deskryptora ELF: %s\n" -#: src/elflint.c:183 +#: src/elflint.c:184 msgid "No errors" msgstr "Brak bÅ‚Ä™dów" -#: src/elflint.c:218 src/readelf.c:603 +#: src/elflint.c:219 src/readelf.c:625 msgid "Missing file name.\n" msgstr "Brak nazwy pliku.\n" -#: src/elflint.c:283 +#: src/elflint.c:284 #, c-format msgid " error while freeing sub-ELF descriptor: %s\n" msgstr " bÅ‚Ä…d podczas zwalniania deskryptora pod-ELF: %s\n" #. We cannot do anything. -#: src/elflint.c:291 +#: src/elflint.c:292 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "To nie jest plik ELF — ma bÅ‚Ä™dne bajty magiczne na poczÄ…tku\n" -#: src/elflint.c:357 +#: src/elflint.c:358 #, c-format msgid "e_ident[%d] == %d is no known class\n" msgstr "e_ident[%d] == %d nie jest znanÄ… klasÄ…\n" -#: src/elflint.c:362 +#: src/elflint.c:363 #, c-format msgid "e_ident[%d] == %d is no known data encoding\n" msgstr "e_ident[%d] == %d nie jest znanym kodowaniem danych\n" -#: src/elflint.c:366 +#: src/elflint.c:367 #, c-format msgid "unknown ELF header version number e_ident[%d] == %d\n" msgstr "nieznany numer wersji nagłówka ELF e_ident[%d] == %d\n" -#: src/elflint.c:374 +#: src/elflint.c:375 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" msgstr "nieobsÅ‚ugiwane ABI systemu operacyjnego e_ident[%d] == „%sâ€\n" -#: src/elflint.c:380 +#: src/elflint.c:381 #, c-format msgid "unsupported ABI version e_ident[%d] == %d\n" msgstr "nieobsÅ‚ugiwana wersja ABI e_ident[%d] == %d\n" -#: src/elflint.c:385 +#: src/elflint.c:386 #, c-format msgid "e_ident[%zu] is not zero\n" msgstr "e_ident[%zu] nie wynosi zero\n" -#: src/elflint.c:390 +#: src/elflint.c:391 #, c-format msgid "unknown object file type %d\n" msgstr "nieznany typ pliku obiektu %d\n" -#: src/elflint.c:397 +#: src/elflint.c:398 #, c-format msgid "unknown machine type %d\n" msgstr "nieznany typ komputera %d\n" -#: src/elflint.c:401 +#: src/elflint.c:402 #, c-format msgid "unknown object file version\n" msgstr "nieznana wersja pliku obiektu\n" -#: src/elflint.c:407 +#: src/elflint.c:408 #, c-format msgid "invalid program header offset\n" msgstr "nieprawidÅ‚owy offset nagłówka programu\n" -#: src/elflint.c:409 +#: src/elflint.c:410 #, c-format msgid "executables and DSOs cannot have zero program header offset\n" msgstr "" "pliki wykonywalne i DSO nie mogÄ… mieć zerowego offsetu nagłówka programu\n" -#: src/elflint.c:413 +#: src/elflint.c:414 #, c-format msgid "invalid number of program header entries\n" msgstr "nieprawidÅ‚owa liczba wpisów nagłówka programu\n" -#: src/elflint.c:421 +#: src/elflint.c:422 #, c-format msgid "invalid section header table offset\n" msgstr "nieprawidÅ‚owy offset tabeli nagłówków sekcji\n" -#: src/elflint.c:424 +#: src/elflint.c:425 #, c-format msgid "section header table must be present\n" msgstr "tabela nagłówków sekcji musi istnieć\n" -#: src/elflint.c:438 +#: src/elflint.c:439 #, c-format msgid "invalid number of section header table entries\n" msgstr "nieprawidÅ‚owa liczba wpisów tabeli nagłówków sekcji\n" -#: src/elflint.c:455 +#: src/elflint.c:456 #, c-format msgid "invalid section header index\n" msgstr "nieprawidÅ‚owy indeks nagłówka sekcji\n" -#: src/elflint.c:473 +#: src/elflint.c:474 #, c-format msgid "Can only check %u headers, shnum was %u\n" msgstr "Można sprawdzić tylko nagłówki %u, shnum wynosiÅ‚o %u\n" -#: src/elflint.c:487 +#: src/elflint.c:488 #, c-format msgid "invalid number of program header table entries\n" msgstr "nieprawidÅ‚owa liczba wpisów tabeli nagłówka programu\n" -#: src/elflint.c:504 +#: src/elflint.c:505 #, c-format msgid "Can only check %u headers, phnum was %u\n" msgstr "Można sprawdzić tylko nagłówki %u, phnum wynosiÅ‚o %u\n" -#: src/elflint.c:509 +#: src/elflint.c:510 #, c-format msgid "invalid machine flags: %s\n" msgstr "nieprawidÅ‚owe flagi komputera: %s\n" -#: src/elflint.c:516 src/elflint.c:533 +#: src/elflint.c:517 src/elflint.c:534 #, c-format msgid "invalid ELF header size: %hd\n" msgstr "nieprawidÅ‚owy rozmiar nagłówka ELF: %hd\n" -#: src/elflint.c:519 src/elflint.c:536 +#: src/elflint.c:520 src/elflint.c:537 #, c-format msgid "invalid program header size: %hd\n" msgstr "nieprawidÅ‚owa rozmiar nagłówka programu: %hd\n" -#: src/elflint.c:522 src/elflint.c:539 +#: src/elflint.c:523 src/elflint.c:540 #, c-format msgid "invalid program header position or size\n" msgstr "nieprawidÅ‚owe poÅ‚ożenie lub rozmiar nagłówka programu\n" -#: src/elflint.c:525 src/elflint.c:542 +#: src/elflint.c:526 src/elflint.c:543 #, c-format msgid "invalid section header size: %hd\n" msgstr "nieprawidÅ‚owy rozmiar nagłówka sekcji: %hd\n" -#: src/elflint.c:528 src/elflint.c:545 +#: src/elflint.c:529 src/elflint.c:546 #, c-format msgid "invalid section header position or size\n" msgstr "nieprawidÅ‚owe poÅ‚ożenie lub rozmiar nagłówka sekcji\n" -#: src/elflint.c:590 +#: src/elflint.c:591 #, c-format msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " @@ -1956,21 +1956,21 @@ msgid "" msgstr "" "sekcja [%2d] „%sâ€: sekcja z flagÄ… SHF_GROUP nie jest częściÄ… grupy sekcji\n" -#: src/elflint.c:594 +#: src/elflint.c:595 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" msgstr "" "sekcja [%2d] „%sâ€: grupa sekcji [%2zu] „%s†nie poprzedza elementu grupy\n" -#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 -#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106 -#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4468 +#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610 +#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981 +#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać danych sekcji\n" -#: src/elflint.c:623 src/elflint.c:1662 +#: src/elflint.c:624 src/elflint.c:1699 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1979,7 +1979,7 @@ msgstr "" "sekcja [%2d] „%sâ€: użyta jako tabela ciÄ…gów dla sekcji [%2d] „%sâ€, ale nie " "jest typu SHT_STRTAB\n" -#: src/elflint.c:646 +#: src/elflint.c:647 #, c-format msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " @@ -1988,12 +1988,12 @@ msgstr "" "sekcja [%2d] „%sâ€: tabela symboli nie może mieć wiÄ™cej niż jednej " "rozszerzonej sekcji indeksów\n" -#: src/elflint.c:658 +#: src/elflint.c:659 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" msgstr "sekcja [%2u] „%sâ€: rozmiar wpisu nie zgadza siÄ™ z ElfXX_Sym\n" -#: src/elflint.c:662 +#: src/elflint.c:663 #, c-format msgid "" "section [%2u] '%s': number of local entries in 'st_info' larger than table " @@ -2002,33 +2002,33 @@ msgstr "" "sekcja [%2u] „%sâ€: liczba lokalnych wpisów w „st_info†jest wiÄ™ksza niż " "rozmiar tabeli\n" -#: src/elflint.c:671 +#: src/elflint.c:672 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać symbolu %d: %s\n" -#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685 -#: src/elflint.c:688 src/elflint.c:691 +#: src/elflint.c:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686 +#: src/elflint.c:689 src/elflint.c:692 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "sekcja [%2d] „%sâ€: „%s†w zerowym wpisie nie jest zerem\n" -#: src/elflint.c:694 +#: src/elflint.c:695 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" msgstr "sekcja [%2d] „%sâ€: XINDEX dla zerowego wpisu nie jest zerem\n" -#: src/elflint.c:704 +#: src/elflint.c:705 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać symbolu %zu: %s\n" -#: src/elflint.c:713 +#: src/elflint.c:714 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu: nieprawidÅ‚owa wartość nazwy\n" -#: src/elflint.c:728 +#: src/elflint.c:729 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): too large section index but no extended " @@ -2037,7 +2037,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): za duży indeks sekcji, ale nie ma sekcji " "rozszerzonych indeksów sekcji\n" -#: src/elflint.c:734 +#: src/elflint.c:735 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit " @@ -2047,28 +2047,28 @@ msgstr "" "zmieÅ›ciÅ‚by siÄ™ w st_shndx (%<PRIu32>)\n" #. || sym->st_shndx > SHN_HIRESERVE always false -#: src/elflint.c:746 +#: src/elflint.c:747 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieprawidÅ‚owy indeks sekcji\n" -#: src/elflint.c:754 +#: src/elflint.c:755 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieznany typ\n" -#: src/elflint.c:760 +#: src/elflint.c:761 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieznane dowiÄ…zanie symbolu\n" -#: src/elflint.c:765 +#: src/elflint.c:766 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): unikalny symbol nie jest typem obiektu\n" -#: src/elflint.c:773 +#: src/elflint.c:774 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable " @@ -2077,26 +2077,26 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): COMMON jest dozwolone tylko w plikach " "relokowalnych\n" -#: src/elflint.c:777 +#: src/elflint.c:778 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): lokalne symbole COMMON to nonsens\n" -#: src/elflint.c:781 +#: src/elflint.c:782 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): funkcja w sekcji COMMON to nonsens\n" -#: src/elflint.c:832 +#: src/elflint.c:833 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): st_value spoza zakresu\n" -#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912 +#: src/elflint.c:839 src/elflint.c:864 src/elflint.c:913 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced " @@ -2105,7 +2105,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s) nie mieÅ›ci siÄ™ w caÅ‚oÅ›ci we wskazywanej " "sekcji [%2d] „%sâ€\n" -#: src/elflint.c:847 +#: src/elflint.c:848 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not " @@ -2114,7 +2114,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): wskazywana sekcja [%2d] „%s†nie ma " "ustawionej flagi SHF_TLS\n" -#: src/elflint.c:857 src/elflint.c:905 +#: src/elflint.c:858 src/elflint.c:906 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced " @@ -2123,7 +2123,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): st_value spoza zakresu wskazywanej " "sekcji [%2d] „%sâ€\n" -#: src/elflint.c:884 +#: src/elflint.c:885 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header " @@ -2132,7 +2132,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): symbol TLS, ale brak wpisu TLS nagłówka " "programu\n" -#: src/elflint.c:890 +#: src/elflint.c:891 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program " @@ -2141,7 +2141,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): symbol TLS, ale nie można uzyskać wpisu " "TLS nagłówka programu\n" -#: src/elflint.c:898 +#: src/elflint.c:899 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value short of referenced section " @@ -2150,7 +2150,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): st_value pomija wskazywanÄ… sekcjÄ™ [%2d] " "„%sâ€\n" -#: src/elflint.c:925 +#: src/elflint.c:926 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local symbol outside range described in " @@ -2159,7 +2159,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): lokalny symbol spoza zakresu okreÅ›lonego " "w sh_info\n" -#: src/elflint.c:932 +#: src/elflint.c:933 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): non-local symbol outside range " @@ -2168,12 +2168,12 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): nielokalny symbol spoza zakresu " "okreÅ›lonego w sh_info\n" -#: src/elflint.c:939 +#: src/elflint.c:940 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n" msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nielokalny symbol sekcji\n" -#: src/elflint.c:989 +#: src/elflint.c:990 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -2182,7 +2182,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ odnosi siÄ™ do bÅ‚Ä™dnej sekcji " "[%2d]\n" -#: src/elflint.c:996 +#: src/elflint.c:997 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -2194,7 +2194,7 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:1012 +#: src/elflint.c:1013 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " @@ -2203,7 +2203,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie " "pasuje do adresu sekcji %s %#<PRIx64>\n" -#: src/elflint.c:1019 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " @@ -2212,7 +2212,7 @@ msgstr "" "sekcja [%2d] „%sâ€: rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie " "pasuje do rozmiaru sekcji %s %<PRIu64>\n" -#: src/elflint.c:1027 +#: src/elflint.c:1028 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -2221,7 +2221,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." "got\n" -#: src/elflint.c:1043 +#: src/elflint.c:1044 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " @@ -2230,7 +2230,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do adresu " "segmentu dynamicznego %#<PRIx64>\n" -#: src/elflint.c:1050 +#: src/elflint.c:1051 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " @@ -2239,7 +2239,7 @@ msgstr "" "sekcja [%2d] „%sâ€: rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do " "rozmiaru segmentu dynamicznego %<PRIu64>\n" -#: src/elflint.c:1063 +#: src/elflint.c:1064 #, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-" @@ -2248,28 +2248,28 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): symbol w dynamicznej tabeli symboli " "z niedomyÅ›lnÄ… widocznoÅ›ciÄ…\n" -#: src/elflint.c:1067 +#: src/elflint.c:1068 #, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %zu (%s): ustawiono nieznany bit w st_other\n" -#: src/elflint.c:1105 +#: src/elflint.c:1106 #, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać danych sekcji.\n" -#: src/elflint.c:1121 +#: src/elflint.c:1122 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "sekcja [%2d] „%sâ€: DT_RELCOUNT użyte dla tej sekcji RELA\n" -#: src/elflint.c:1132 src/elflint.c:1185 +#: src/elflint.c:1133 src/elflint.c:1186 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "sekcja [%2d] „%sâ€: DT_RELCOUNT %d za duże dla tej sekcji\n" -#: src/elflint.c:1157 src/elflint.c:1210 +#: src/elflint.c:1158 src/elflint.c:1211 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -2278,7 +2278,7 @@ msgstr "" "sekcja [%2d] „%sâ€: relokacje wzglÄ™dne po indeksie %d podanym przez " "DT_RELCOUNT\n" -#: src/elflint.c:1163 src/elflint.c:1216 +#: src/elflint.c:1164 src/elflint.c:1217 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -2287,50 +2287,45 @@ msgstr "" "sekcja [%2d] „%sâ€: relokacja bezwzglÄ™dna pod indeksem %zu; DT_RELCOUNT podaÅ‚ " "%d relokacji wzglÄ™dnych\n" -#: src/elflint.c:1175 +#: src/elflint.c:1176 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "sekcja [%2d] „%sâ€: DT_RELACOUNT użyte dla tej sekcji REL\n" -#: src/elflint.c:1258 +#: src/elflint.c:1259 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "sekcja [%2d] „%sâ€: nieprawidÅ‚owy indeks sekcji docelowej\n" -#: src/elflint.c:1270 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "sekcja [%2d] „%sâ€: nieprawidÅ‚owy typ sekcji docelowej\n" -#: src/elflint.c:1278 +#: src/elflint.c:1279 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "sekcja [%2d] „%sâ€: sh_info musi wynosić zero\n" -#: src/elflint.c:1286 +#: src/elflint.c:1287 #, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "sekcja [%2d] „%sâ€: relokacje dla sekcji zÅ‚Ä…czalnych ciÄ…gów sÄ… niemożliwe\n" -#: src/elflint.c:1294 -#, c-format -msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "sekcja [%2d] „%sâ€: rozmiar wpisu sekcji nie zgadza siÄ™ z ElfXX_Rela\n" - -#: src/elflint.c:1354 +#: src/elflint.c:1365 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "flaga relokacji tekstu jest ustawiona, ale nie ma segmentu tylko do odczytu\n" -#: src/elflint.c:1381 +#: src/elflint.c:1392 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "sekcja [%2d] „%sâ€: relokacja %zu: nieprawidÅ‚owy typ\n" -#: src/elflint.c:1389 +#: src/elflint.c:1400 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -2339,12 +2334,12 @@ msgstr "" "sekcja [%2d] „%sâ€: relokacja %zu: typ relokacji nieprawidÅ‚owy dla tego typu " "pliku\n" -#: src/elflint.c:1397 +#: src/elflint.c:1408 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "sekcja [%2d] „%sâ€: relokacja %zu: nieprawidÅ‚owy indeks symbolu\n" -#: src/elflint.c:1415 +#: src/elflint.c:1426 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -2353,12 +2348,12 @@ msgstr "" "sekcja [%2d] „%sâ€: relokacja %zu: z %s można użyć tylko symbolu " "„_GLOBAL_OFFSET_TABLE_â€\n" -#: src/elflint.c:1432 +#: src/elflint.c:1443 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "sekcja [%2d] „%sâ€: relokacja %zu: offset spoza zakresu\n" -#: src/elflint.c:1447 +#: src/elflint.c:1458 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -2366,7 +2361,7 @@ msgid "" msgstr "" "sekcja [%2d] „%sâ€: relokacja %zu: relokacja kopii wzglÄ™dem symbolu typu %s\n" -#: src/elflint.c:1468 +#: src/elflint.c:1479 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -2375,23 +2370,23 @@ msgstr "" "sekcja [%2d] „%sâ€: relokacja %zu: sekcja tylko do odczytu zostaÅ‚a " "zmodyfikowana, ale nie ustawiono flagi relokacji tekstu\n" -#: src/elflint.c:1483 +#: src/elflint.c:1494 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "sekcja [%2d] „%sâ€: relokacje wzglÄ™dem wczytanych i niewczytanych danych\n" -#: src/elflint.c:1523 src/elflint.c:1574 +#: src/elflint.c:1534 src/elflint.c:1585 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać relokacji %zu: %s\n" -#: src/elflint.c:1650 +#: src/elflint.c:1687 #, c-format msgid "more than one dynamic section present\n" msgstr "obecna jest wiÄ™cej niż jedna sekcja dynamiczna\n" -#: src/elflint.c:1668 +#: src/elflint.c:1705 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -2400,43 +2395,43 @@ msgstr "" "sekcja [%2d]: wskazane jako tabela ciÄ…gów dla sekcji [%2d] „%sâ€, ale wartość " "dowiÄ…zania sekcji jest nieprawidÅ‚owa\n" -#: src/elflint.c:1676 +#: src/elflint.c:1713 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "sekcja [%2d] „%sâ€: rozmiar wpisu sekcji nie zgadza siÄ™ z ElfXX_Dyn\n" -#: src/elflint.c:1681 src/elflint.c:1970 +#: src/elflint.c:1718 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "sekcja [%2d] „%sâ€: sh_info nie wynosi zero\n" -#: src/elflint.c:1691 +#: src/elflint.c:1728 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "sekcja [%2d] „%sâ€: nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n" -#: src/elflint.c:1699 +#: src/elflint.c:1736 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "sekcja [%2d] „%sâ€: wpisy nie-DT_NULL wystÄ™pujÄ… po wpisie DT_NULL\n" -#: src/elflint.c:1706 +#: src/elflint.c:1743 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "sekcja [%2d] „%sâ€: wpis %zu: nieznany znacznik\n" -#: src/elflint.c:1717 +#: src/elflint.c:1754 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "sekcja [%2d] „%sâ€: wpis %zu: wiÄ™cej niż jeden wpis ze znacznikiem %s\n" -#: src/elflint.c:1727 +#: src/elflint.c:1764 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "sekcja [%2d] „%sâ€: wpis %zu: użyto znacznika %s poziomu 2\n" -#: src/elflint.c:1745 +#: src/elflint.c:1782 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -2444,7 +2439,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub " "DT_RELA\n" -#: src/elflint.c:1758 +#: src/elflint.c:1795 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -2453,14 +2448,14 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] „%s†" "wskazywanej przez sh_link\n" -#: src/elflint.c:1801 +#: src/elflint.c:1839 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" "sekcja [%2d] „%sâ€: wpis %zu: wartość %s musi wskazywać na wczytany segment\n" -#: src/elflint.c:1816 +#: src/elflint.c:1854 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -2469,48 +2464,48 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis %zu: wartość %s musi być prawidÅ‚owym offsetem " "w sekcji [%2d] „%sâ€\n" -#: src/elflint.c:1836 src/elflint.c:1864 +#: src/elflint.c:1874 src/elflint.c:1902 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "sekcja [%2d] „%sâ€: zawiera wpis %s, ale nie %s\n" -#: src/elflint.c:1848 +#: src/elflint.c:1886 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "sekcja [%2d] „%sâ€: brak obowiÄ…zkowego znacznika %s\n" -#: src/elflint.c:1857 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "sekcja [%2d] „%sâ€: brak sekcji skrótów\n" -#: src/elflint.c:1872 src/elflint.c:1879 +#: src/elflint.c:1910 src/elflint.c:1917 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "sekcja [%2d] „%sâ€: nie wszystkie z %s, %s i %s sÄ… obecne\n" -#: src/elflint.c:1889 src/elflint.c:1893 +#: src/elflint.c:1927 src/elflint.c:1931 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "sekcja [%2d] „%sâ€: brak znacznika %s w DSO oznaczonym podczas wstÄ™pnej " "konsolidacji\n" -#: src/elflint.c:1899 +#: src/elflint.c:1937 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "sekcja [%2d] „%sâ€: plik nie-DSO oznaczony jako zależność podczas wstÄ™pnej " "konsolidacji\n" -#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922 +#: src/elflint.c:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" "sekcja [%2d] „%sâ€: brak znacznika %s we wstÄ™pnie konsolidowanym pliku " "wykonywalnym\n" -#: src/elflint.c:1934 +#: src/elflint.c:1972 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2518,7 +2513,7 @@ msgstr "" "sekcja [%2d] „%sâ€: tylko pliki relokowalne mogÄ… mieć rozszerzonÄ… sekcjÄ™ " "indeksów\n" -#: src/elflint.c:1944 +#: src/elflint.c:1982 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" @@ -2526,31 +2521,31 @@ msgstr "" "sekcja [%2d] „%sâ€: sekcja rozszerzonych indeksów sekcji nie dla tabeli " "symboli\n" -#: src/elflint.c:1948 +#: src/elflint.c:1986 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "sekcja [%2d] „%sâ€: rozszerzony indeks sekcji sh_link [%2d] jest " "nieprawidÅ‚owy\n" -#: src/elflint.c:1953 +#: src/elflint.c:1991 #, c-format msgid "cannot get data for symbol section\n" msgstr "nie można uzyskać danych dla sekcji symboli\n" -#: src/elflint.c:1956 +#: src/elflint.c:1994 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "sekcja [%2d] „%sâ€: rozmiar wpisu nie zgadza siÄ™ z Elf32_Word\n" -#: src/elflint.c:1965 +#: src/elflint.c:2003 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "sekcja [%2d] „%sâ€: tabela rozszerzonych indeksów jest za maÅ‚a dla tabeli " "symboli\n" -#: src/elflint.c:1980 +#: src/elflint.c:2018 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2559,24 +2554,24 @@ msgstr "" "sekcja [%2d] „%sâ€: rozszerzony indeks sekcji w sekcji [%2zu] „%s†odwoÅ‚uje " "siÄ™ do tej samej tabeli symboli\n" -#: src/elflint.c:1998 +#: src/elflint.c:2036 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "symbol 0 musi mieć zerowy rozszerzony indeks sekcji\n" -#: src/elflint.c:2010 +#: src/elflint.c:2048 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "nie można uzyskać danych dla symbolu %zu\n" -#: src/elflint.c:2015 +#: src/elflint.c:2053 #, c-format msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n" msgstr "" "rozszerzony indeks sekcji wynosi %<PRIu32>, ale indeks symbolu nie wynosi " "XINDEX\n" -#: src/elflint.c:2032 src/elflint.c:2089 +#: src/elflint.c:2070 src/elflint.c:2127 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2584,43 +2579,43 @@ msgstr "" "sekcja [%2d] „%sâ€: sekcja tabeli mieszajÄ…cej jest za maÅ‚a (%ld, oczekiwano " "%ld)\n" -#: src/elflint.c:2046 src/elflint.c:2103 +#: src/elflint.c:2084 src/elflint.c:2141 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "sekcja [%2d] „%sâ€: tabela Å‚aÅ„cuchowa jest za duża\n" -#: src/elflint.c:2060 src/elflint.c:2117 +#: src/elflint.c:2098 src/elflint.c:2155 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "sekcja [%2d] „%sâ€: odwoÅ‚anie do kubeÅ‚ka skrótu %zu jest spoza zakresu\n" -#: src/elflint.c:2070 +#: src/elflint.c:2108 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "sekcja [%2d] „%sâ€: odwoÅ‚anie do Å‚aÅ„cucha skrótu %zu jest spoza zakresu\n" -#: src/elflint.c:2127 +#: src/elflint.c:2165 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" "sekcja [%2d] „%sâ€: odwoÅ‚anie do Å‚aÅ„cucha skrótu %<PRIu64> jest spoza " "zakresu\n" -#: src/elflint.c:2140 +#: src/elflint.c:2178 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "sekcja [%2d] „%sâ€: brak wystarczajÄ…cej iloÅ›ci danych\n" -#: src/elflint.c:2152 +#: src/elflint.c:2190 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" "sekcja [%2d] „%sâ€: rozmiar maski bitowej wynosi zero lub nie jest potÄ™gÄ… 2: " "%u\n" -#: src/elflint.c:2168 +#: src/elflint.c:2206 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2629,13 +2624,13 @@ msgstr "" "sekcja [%2d] „%sâ€: sekcja tabeli mieszajÄ…cej jest za maÅ‚a (wynosi %ld, " "oczekiwano co najmniej %ld)\n" -#: src/elflint.c:2177 +#: src/elflint.c:2215 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" "sekcja [%2d] „%sâ€: drugie przesuniÄ™cie funkcji mieszajÄ…cej jest za duże: %u\n" -#: src/elflint.c:2211 +#: src/elflint.c:2249 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2643,7 +2638,7 @@ msgstr "" "sekcja [%2d] „%sâ€: Å‚aÅ„cuch mieszajÄ…cy dla kubeÅ‚ka %zu jest mniejszy niż " "przesuniÄ™cie indeksu symboli\n" -#: src/elflint.c:2232 +#: src/elflint.c:2270 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2652,7 +2647,7 @@ msgstr "" "sekcja [%2d] „%sâ€: symbol %u wskazywany w łaÅ„cuchu dla kubeÅ‚ka %zu jest " "nieokreÅ›lony\n" -#: src/elflint.c:2245 +#: src/elflint.c:2283 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2660,7 +2655,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wartość skrótu dla symbolu %u w łaÅ„cuchu dla kubeÅ‚ka %zu " "jest bÅ‚Ä™dna\n" -#: src/elflint.c:2254 +#: src/elflint.c:2292 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2668,12 +2663,12 @@ msgstr "" "sekcja [%2d] „%sâ€: indeks maski dla symbolu %u w łaÅ„cuchu dla kubeÅ‚ka %zu " "jest bÅ‚Ä™dny\n" -#: src/elflint.c:2284 +#: src/elflint.c:2322 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "sekcja [%2d] „%sâ€: Å‚aÅ„cuch skrótu dla kubeÅ‚ka %zu jest spoza zakresu\n" -#: src/elflint.c:2289 +#: src/elflint.c:2327 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2681,41 +2676,41 @@ msgstr "" "sekcja [%2d] „%sâ€: odwoÅ‚anie do symbolu w łaÅ„cuchu dla kubeÅ‚ka %zu jest " "spoza zakresu\n" -#: src/elflint.c:2295 +#: src/elflint.c:2333 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" "sekcja [%2d] „%sâ€: maska bitowa nie pasuje do nazw w tabeli mieszajÄ…cej\n" -#: src/elflint.c:2308 +#: src/elflint.c:2346 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "sekcja [%2d] „%sâ€: pliki relokowalne nie mogÄ… mieć tabeli mieszajÄ…cych\n" -#: src/elflint.c:2326 +#: src/elflint.c:2364 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "sekcja [%2d] „%sâ€: tabela mieszajÄ…ca nie dla tabeli dynamicznych symboli\n" -#: src/elflint.c:2330 +#: src/elflint.c:2368 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" "sekcja [%2d] „%sâ€: nieprawidÅ‚owy indeks sekcji tabeli symboli sh_link [%2d]\n" -#: src/elflint.c:2340 +#: src/elflint.c:2378 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "sekcja [%2d] „%sâ€: niepoprawny rozmiar wpisu tabeli mieszajÄ…cej\n" -#: src/elflint.c:2345 +#: src/elflint.c:2383 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "sekcja [%2d] „%sâ€: nieoznaczona do przydzielenia\n" -#: src/elflint.c:2350 +#: src/elflint.c:2388 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2724,29 +2719,29 @@ msgstr "" "sekcja [%2d] „%sâ€: tabela mieszajÄ…ca nie ma miejsca nawet na poczÄ…tkowe " "wpisy administracyjne\n" -#: src/elflint.c:2399 +#: src/elflint.c:2437 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" "sh_link w sekcjach skrótu [%2zu] „%s†i [%2zu] „%s†nie sÄ… identyczne\n" -#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523 +#: src/elflint.c:2461 src/elflint.c:2526 src/elflint.c:2561 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "" "sekcja mieszania [%2zu] „%s†nie zawiera wystarczajÄ…cej iloÅ›ci danych\n" -#: src/elflint.c:2444 +#: src/elflint.c:2482 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "sekcja mieszania [%2zu] „%s†ma zerowe sÅ‚owa maski bitów\n" -#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536 +#: src/elflint.c:2493 src/elflint.c:2537 src/elflint.c:2574 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "sekcja mieszania [%2zu] „%s†używa za dużo danych\n" -#: src/elflint.c:2470 +#: src/elflint.c:2508 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: " @@ -2755,17 +2750,17 @@ msgstr "" "sekcja mieszajÄ…ca [%2zu] „%s†nieprawidÅ‚owy indeks symboli %<PRIu32> " "(max_nsyms: %<PRIu32>, nentries: %<PRIu32>\n" -#: src/elflint.c:2557 +#: src/elflint.c:2595 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "sekcja mieszania [%2zu] „%s†nieprawidÅ‚owe sh_entsize\n" -#: src/elflint.c:2567 src/elflint.c:2571 +#: src/elflint.c:2605 src/elflint.c:2609 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "sekcja [%2zu] „%sâ€: odwoÅ‚anie do symbolu o indeksie 0\n" -#: src/elflint.c:2578 +#: src/elflint.c:2616 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2774,7 +2769,7 @@ msgstr "" "symbol %d wymieniony w nowej tabeli mieszajÄ…cej w [%2zu] „%sâ€, ale nie " "w poprzedniej tabeli mieszajÄ…cej [%2zu] „%sâ€\n" -#: src/elflint.c:2590 +#: src/elflint.c:2628 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2783,12 +2778,12 @@ msgstr "" "symbol %d wymieniony w poprzedniej tabeli mieszajÄ…cej w [%2zu] „%sâ€, ale nie " "w nowej tabeli mieszajÄ…cej w [%2zu] „%sâ€\n" -#: src/elflint.c:2606 +#: src/elflint.c:2644 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "sekcja [%2d] „%sâ€: niezerowe sh_%s dla sekcji NULL\n" -#: src/elflint.c:2626 +#: src/elflint.c:2664 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2796,96 +2791,96 @@ msgstr "" "sekcja [%2d] „%sâ€: w plikach obiektów relokowalnych dozwolone sÄ… tylko grupy " "sekcji\n" -#: src/elflint.c:2637 +#: src/elflint.c:2675 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać tabeli symboli: %s\n" -#: src/elflint.c:2642 +#: src/elflint.c:2680 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "sekcja [%2d] „%sâ€: odwoÅ‚anie do sekcji w sh_link nie ma tabeli symboli\n" -#: src/elflint.c:2648 +#: src/elflint.c:2686 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "sekcja [%2d] „%sâ€: nieprawidÅ‚owy indeks symbolu w sh_info\n" -#: src/elflint.c:2653 +#: src/elflint.c:2691 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "sekcja [%2d] „%sâ€: niezerowe sh_flags\n" -#: src/elflint.c:2660 +#: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać symbolu dla podpisu\n" -#: src/elflint.c:2664 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać nazwy symbolu dla podpisu\n" -#: src/elflint.c:2669 +#: src/elflint.c:2707 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "sekcja [%2d] „%sâ€: symbol podpisu nie można być pustym ciÄ…giem\n" -#: src/elflint.c:2675 +#: src/elflint.c:2713 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "sekcja [%2d] „%sâ€: sh_flags nie ustawione poprawnie\n" -#: src/elflint.c:2681 +#: src/elflint.c:2719 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać danych: %s\n" -#: src/elflint.c:2690 +#: src/elflint.c:2728 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" "sekcja [%2d] „%sâ€: rozmiar sekcji nie jest wielokrotnoÅ›ciÄ… " "sizeof(Elf32_Word)\n" -#: src/elflint.c:2696 +#: src/elflint.c:2734 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "sekcja [%2d] „%sâ€: grupa sekcji bez sÅ‚owa flag\n" -#: src/elflint.c:2704 +#: src/elflint.c:2742 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "sekcja [%2d] „%sâ€: grupa sekcji bez elementów\n" -#: src/elflint.c:2708 +#: src/elflint.c:2746 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "sekcja [%2d] „%sâ€: grupa sekcji z tylko jednym elementem\n" -#: src/elflint.c:2719 +#: src/elflint.c:2757 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "sekcja [%2d] „%sâ€: nieznane flagi grupy sekcji\n" -#: src/elflint.c:2731 +#: src/elflint.c:2769 #, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "sekcja [%2d] „%sâ€: indeks sekcji %zu jest spoza zakresu\n" -#: src/elflint.c:2740 +#: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "sekcja [%2d] „%sâ€: nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n" -#: src/elflint.c:2747 +#: src/elflint.c:2785 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "sekcja [%2d] „%sâ€: grupa sekcji zawiera innÄ… grupÄ™ [%2d] „%sâ€\n" -#: src/elflint.c:2753 +#: src/elflint.c:2791 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2894,12 +2889,12 @@ msgstr "" "sekcja [%2d] „%sâ€: element %zu odwoÅ‚uje siÄ™ do sekcji [%2d] „%s†bez flagi " "SHF_GROUP\n" -#: src/elflint.c:2760 +#: src/elflint.c:2798 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "sekcja [%2d] „%s†jest zawarta w wiÄ™cej niż jednej grupie sekcji\n" -#: src/elflint.c:2957 +#: src/elflint.c:2995 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2908,7 +2903,7 @@ msgstr "" "sekcja [%2d] „%s†odwoÅ‚uje siÄ™ w sh_link do sekcji [%2d] „%sâ€, która nie " "jest tabelÄ… symboli dynamicznych\n" -#: src/elflint.c:2969 +#: src/elflint.c:3007 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2916,76 +2911,76 @@ msgid "" msgstr "" "sekcja [%2d] „%s†ma innÄ… liczbÄ™ wpisów niż tabela symboli [%2d] „%sâ€\n" -#: src/elflint.c:2985 +#: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "sekcja [%2d] „%sâ€: symbol %d: nie można odczytać danych wersji\n" -#: src/elflint.c:3001 +#: src/elflint.c:3039 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "sekcja [%2d] „%sâ€: symbol %d: symbol lokalny z zakresem globalnym\n" -#: src/elflint.c:3009 +#: src/elflint.c:3047 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "sekcja [%2d] „%sâ€: symbol %d: symbol lokalny z wersjÄ…\n" -#: src/elflint.c:3023 +#: src/elflint.c:3061 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "sekcja [%2d] „%sâ€: symbol %d: nieprawidÅ‚owy indeks wersji %d\n" -#: src/elflint.c:3028 +#: src/elflint.c:3066 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %d: indeks wersji %d jest dla wersji okreÅ›lonej\n" -#: src/elflint.c:3038 +#: src/elflint.c:3076 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" "sekcja [%2d] „%sâ€: symbol %d: indeks wersji %d jest dla wersji żądanej\n" -#: src/elflint.c:3091 +#: src/elflint.c:3129 #, c-format msgid "more than one version reference section present\n" msgstr "obecna jest wiÄ™cej niż jedna sekcja odniesienia wersji\n" -#: src/elflint.c:3099 src/elflint.c:3246 +#: src/elflint.c:3137 src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "sekcja [%2d] „%sâ€: sh_link nie Å‚Ä…czy siÄ™ z tabelÄ… ciÄ…gów\n" -#: src/elflint.c:3124 src/elflint.c:3300 +#: src/elflint.c:3162 src/elflint.c:3338 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dnÄ… wersjÄ™ %d\n" -#: src/elflint.c:3131 src/elflint.c:3307 +#: src/elflint.c:3169 src/elflint.c:3345 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dny offset dla danych dodatkowych\n" -#: src/elflint.c:3141 +#: src/elflint.c:3179 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "sekcja [%2d] „%sâ€: symbol %d ma bÅ‚Ä™dne odniesienie do pliku\n" -#: src/elflint.c:3149 +#: src/elflint.c:3187 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "sekcja [%2d] „%sâ€: wpis %d odnosi siÄ™ do nieznanej zależnoÅ›ci\n" -#: src/elflint.c:3161 +#: src/elflint.c:3199 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma nieznanÄ… flagÄ™\n" -#: src/elflint.c:3169 +#: src/elflint.c:3207 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2994,7 +2989,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma nieprawidÅ‚owe " "odniesienie do nazwy\n" -#: src/elflint.c:3178 +#: src/elflint.c:3216 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -3003,7 +2998,7 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma bÅ‚Ä™dnÄ… wartość skrótu: " "%#x, oczekiwano %#x\n" -#: src/elflint.c:3187 +#: src/elflint.c:3225 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -3012,19 +3007,19 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma powtórzonÄ… nazwÄ™ wersji " "„%sâ€\n" -#: src/elflint.c:3198 +#: src/elflint.c:3236 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma bÅ‚Ä™dne nastÄ™pne pole\n" -#: src/elflint.c:3215 src/elflint.c:3391 +#: src/elflint.c:3253 src/elflint.c:3429 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dny offset do nastÄ™pnego wpisu\n" -#: src/elflint.c:3223 src/elflint.c:3399 +#: src/elflint.c:3261 src/elflint.c:3437 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -3033,43 +3028,43 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis %d ma zerowy offset do nastÄ™pnego wpisu, ale sh_info " "zawiera informacje o wiÄ™kszej liczbie wpisów\n" -#: src/elflint.c:3238 +#: src/elflint.c:3276 #, c-format msgid "more than one version definition section present\n" msgstr "obecna jest wiÄ™cej niż jedna sekcja definicji wersji\n" -#: src/elflint.c:3285 +#: src/elflint.c:3323 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "sekcja [%2d] „%sâ€: jest wiÄ™cej niż jedna definicja BASE\n" -#: src/elflint.c:3289 +#: src/elflint.c:3327 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "sekcja [%2d] „%sâ€: definicja BASE musi mieć indeks VER_NDX_GLOBAL\n" -#: src/elflint.c:3295 +#: src/elflint.c:3333 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma nieznanÄ… flagÄ™\n" -#: src/elflint.c:3322 +#: src/elflint.c:3360 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma nieprawidÅ‚owe odniesienie do nazwy\n" -#: src/elflint.c:3329 +#: src/elflint.c:3367 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dnÄ… wartość skrótu: %#x, oczekiwano %#x\n" -#: src/elflint.c:3337 +#: src/elflint.c:3375 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "sekcja [%2d] „%sâ€: wpis %d ma powtórzonÄ… nazwÄ™ wersji „%sâ€\n" -#: src/elflint.c:3357 +#: src/elflint.c:3395 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -3077,51 +3072,51 @@ msgstr "" "sekcja [%2d] „%sâ€: wpis %d ma nieprawidÅ‚owe odniesienie do nazwy w danych " "dodatkowych\n" -#: src/elflint.c:3374 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dne nastÄ™pne pole w danych dodatkowych\n" -#: src/elflint.c:3407 +#: src/elflint.c:3445 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "sekcja [%2d] „%sâ€: brak definicji BASE\n" -#: src/elflint.c:3423 +#: src/elflint.c:3461 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "sekcja [%2d] „%sâ€: nieznana wersja rodzica „%sâ€\n" -#: src/elflint.c:3448 +#: src/elflint.c:3486 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "sekcja [%2d] „%sâ€: pusta sekcja atrybutów obiektu\n" -#: src/elflint.c:3464 +#: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "sekcja [%2d] „%sâ€: nierozpoznany format atrybutu\n" -#: src/elflint.c:3475 +#: src/elflint.c:3513 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" "sekcja [%2d] „%sâ€: offset %zu: pole o zerowej dÅ‚ugoÅ›ci w sekcji atrybutów\n" -#: src/elflint.c:3484 +#: src/elflint.c:3522 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "sekcja [%2d] „%sâ€: offset %zu: nieprawidÅ‚owa dÅ‚ugość w sekcji atrybutów\n" -#: src/elflint.c:3496 +#: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "sekcja [%2d] „%sâ€: offset %zu: niezakoÅ„czony ciÄ…g nazwy producenta\n" -#: src/elflint.c:3513 +#: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -3129,19 +3124,19 @@ msgstr "" "sekcja [%2d] „%sâ€: offset %zu: niekoÅ„czÄ…ce siÄ™ ULEB128 w znaczniku podsekcji " "atrybutów\n" -#: src/elflint.c:3522 +#: src/elflint.c:3560 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "sekcja [%2d] „%sâ€: offset %zu: skrócona sekcja atrybutów\n" -#: src/elflint.c:3531 +#: src/elflint.c:3569 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" "sekcja [%2d] „%sâ€: offset %zu: zerowej dÅ‚ugoÅ›ci pole w podsekcji atrybutów\n" -#: src/elflint.c:3546 +#: src/elflint.c:3584 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" @@ -3149,7 +3144,7 @@ msgstr "" "sekcja [%2d] „%sâ€: offset %zu: nieprawidÅ‚owa dÅ‚ugość w podsekcji atrybutów\n" #. Tag_File -#: src/elflint.c:3557 +#: src/elflint.c:3595 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -3157,23 +3152,23 @@ msgstr "" "sekcja [%2d] „%sâ€: offset %zu: podsekcja atrybutów ma nieoczekiwany znacznik " "%u\n" -#: src/elflint.c:3578 +#: src/elflint.c:3616 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "sekcja [%2d] „%sâ€: offset %zu: niekoÅ„czÄ…ce siÄ™ ULEB128 w znaczniku atrybutu\n" -#: src/elflint.c:3589 +#: src/elflint.c:3627 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "sekcja [%2d] „%sâ€: offset %zu: niezakoÅ„czony ciÄ…g w atrybucie\n" -#: src/elflint.c:3602 +#: src/elflint.c:3640 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "sekcja [%2d] „%sâ€: offset %zu: nierozpoznany znacznik atrybutu %u\n" -#: src/elflint.c:3606 +#: src/elflint.c:3644 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" @@ -3181,12 +3176,12 @@ msgstr "" "sekcja [%2d] „%sâ€: offset %zu: atrybut %s ma nierozpoznanÄ… wartość " "%<PRIu64>\n" -#: src/elflint.c:3616 +#: src/elflint.c:3654 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "sekcja [%2d] „%sâ€: offset %zu: producent „%s†jest nieznany\n" -#: src/elflint.c:3622 +#: src/elflint.c:3660 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -3194,47 +3189,47 @@ msgstr "" "sekcja [%2d] „%sâ€: offset %zu: dodatkowe bajty po ostatniej sekcji " "atrybutów\n" -#: src/elflint.c:3719 +#: src/elflint.c:3758 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "nie można uzyskać nagłówka sekcji zerowej\n" -#: src/elflint.c:3723 +#: src/elflint.c:3762 #, c-format msgid "zeroth section has nonzero name\n" msgstr "sekcja zerowa ma niezerowÄ… nazwÄ™\n" -#: src/elflint.c:3725 +#: src/elflint.c:3764 #, c-format msgid "zeroth section has nonzero type\n" msgstr "sekcja zerowa ma niezerowy typ\n" -#: src/elflint.c:3727 +#: src/elflint.c:3766 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "sekcja zerowa ma niezerowe flagi\n" -#: src/elflint.c:3729 +#: src/elflint.c:3768 #, c-format msgid "zeroth section has nonzero address\n" msgstr "sekcja zerowa ma niezerowy adres\n" -#: src/elflint.c:3731 +#: src/elflint.c:3770 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "sekcja zerowa ma niezerowy offset\n" -#: src/elflint.c:3733 +#: src/elflint.c:3772 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "sekcja zerowa ma niezerowÄ… wartość wyrównania\n" -#: src/elflint.c:3735 +#: src/elflint.c:3774 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "sekcja zerowa ma niezerowÄ… wartość rozmiaru wpisu\n" -#: src/elflint.c:3738 +#: src/elflint.c:3777 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -3243,7 +3238,7 @@ msgstr "" "sekcja zerowa ma niezerowÄ… wartość rozmiaru, a nagłówek ELF ma niezerowÄ… " "wartość shnum\n" -#: src/elflint.c:3742 +#: src/elflint.c:3781 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3252,7 +3247,7 @@ msgstr "" "sekcja zerowa ma niezerowÄ… wartość dowiÄ…zaÅ„, a nagłówek ELF nie wskazuje " "przepeÅ‚nienia w shstrndx\n" -#: src/elflint.c:3746 +#: src/elflint.c:3785 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3261,46 +3256,46 @@ msgstr "" "sekcja zerowa ma niezerowÄ… wartość dowiÄ…zaÅ„, a nagłówek ELF nie wskazuje " "przepeÅ‚nienia w phnum\n" -#: src/elflint.c:3764 +#: src/elflint.c:3803 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] „%sâ€: %s\n" -#: src/elflint.c:3773 +#: src/elflint.c:3812 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "sekcja [%2zu]: nieprawidÅ‚owa nazwa\n" -#: src/elflint.c:3800 +#: src/elflint.c:3839 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "sekcja [%2d] „%s†ma bÅ‚Ä™dny typ: oczekiwano %s, jest %s\n" -#: src/elflint.c:3817 +#: src/elflint.c:3856 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "sekcja [%2zu] „%s†ma bÅ‚Ä™dne flagi: oczekiwano %s, jest %s\n" -#: src/elflint.c:3835 +#: src/elflint.c:3874 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" "sekcja [%2zu] „%s†ma bÅ‚Ä™dne flagi: oczekiwano %s i być może %s, jest %s\n" -#: src/elflint.c:3852 +#: src/elflint.c:3891 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "sekcja [%2zu] „%s†jest obecna w pliku obiektu\n" -#: src/elflint.c:3858 src/elflint.c:3890 +#: src/elflint.c:3897 src/elflint.c:3929 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" "sekcja [%2zu] „%s†ma flagÄ™ SHF_ALLOC, ale nie ma segmentu wczytywalnego\n" -#: src/elflint.c:3863 src/elflint.c:3895 +#: src/elflint.c:3902 src/elflint.c:3934 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3308,7 +3303,7 @@ msgid "" msgstr "" "sekcja [%2zu] „%s†nie ma flagi SHF_ALLOC, ale sÄ… segmenty wczytywalne\n" -#: src/elflint.c:3871 +#: src/elflint.c:3910 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3316,22 +3311,22 @@ msgstr "" "sekcja [%2zu] „%s†jest tabelÄ… indeksów sekcji rozszerzeÅ„ w pliku " "nieobiektowym\n" -#: src/elflint.c:3914 +#: src/elflint.c:3953 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "sekcja [%2zu] „%sâ€: rozmiar nie jest wielokrotnoÅ›ciÄ… rozmiaru wpisu\n" -#: src/elflint.c:3919 +#: src/elflint.c:3958 #, c-format msgid "cannot get section header\n" msgstr "nie można uzyskać nagłówka sekcji\n" -#: src/elflint.c:3929 +#: src/elflint.c:3968 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sekcja [%2zu] „%s†ma nieobsÅ‚ugiwany typ %d\n" -#: src/elflint.c:3949 +#: src/elflint.c:3988 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" @@ -3339,74 +3334,74 @@ msgstr "" "sekcja [%2zu] „%s†zawiera nieprawidÅ‚owe flagi dla konkretnego procesora " "%#<PRIx64>\n" -#: src/elflint.c:3959 +#: src/elflint.c:3998 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" msgstr "sekcja [%2zu] „%s†zawiera nieznane flagi %#<PRIx64>\n" -#: src/elflint.c:3967 +#: src/elflint.c:4006 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "sekcja [%2zu] „%sâ€: adres sekcji danych lokalnych dla wÄ…tków nie jest zerem\n" -#: src/elflint.c:3977 +#: src/elflint.c:4016 #, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "sekcja [%2zu] „%sâ€: nie można skompresować przydzielonej sekcji\n" -#: src/elflint.c:3982 +#: src/elflint.c:4021 #, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "sekcja [%2zu] „%sâ€: nie można skompresować sekcji „nobitsâ€\n" -#: src/elflint.c:3988 +#: src/elflint.c:4027 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "sekcja [%2zu] „%sâ€: skompresowana sekcja bez nagłówka kompresji: %s\n" -#: src/elflint.c:3994 +#: src/elflint.c:4033 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "sekcja [%2zu] „%sâ€: nieprawidÅ‚owe odwoÅ‚anie do sekcji w wartoÅ›ci dowiÄ…zania\n" -#: src/elflint.c:3999 +#: src/elflint.c:4038 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "sekcja [%2zu] „%sâ€: nieprawidÅ‚owe odwoÅ‚anie do sekcji w wartoÅ›ci " "informacyjnej\n" -#: src/elflint.c:4006 +#: src/elflint.c:4045 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "sekcja [%2zu] „%sâ€: flaga ciÄ…gów jest ustawiona bez flagi merge\n" -#: src/elflint.c:4011 +#: src/elflint.c:4050 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "sekcja [%2zu] „%sâ€: flaga merge jest ustawiona, ale rozmiar wpisu jest " "zerowy\n" -#: src/elflint.c:4030 +#: src/elflint.c:4069 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "sekcja [%2zu] „%s†ma nieoczekiwany typ %d dla sekcji wykonywalnej\n" -#: src/elflint.c:4039 +#: src/elflint.c:4078 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sekcja [%2zu] „%s†musi być typu NOBITS w plikach debuginfo\n" -#: src/elflint.c:4046 +#: src/elflint.c:4085 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "sekcja [%2zu] „%s†jest wykonywalne i zapisywalne\n" -#: src/elflint.c:4077 +#: src/elflint.c:4116 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3415,7 +3410,7 @@ msgstr "" "sekcja [%2zu] „%s†nie jest w caÅ‚oÅ›ci zawarta w segmencie wpisu %d nagłówka " "programu\n" -#: src/elflint.c:4087 +#: src/elflint.c:4126 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3424,7 +3419,7 @@ msgstr "" "sekcja [%2zu] „%s†ma typ NOBITS, a jest odczytywana z pliku w segmencie " "wpisu %d nagłówka programu\n" -#: src/elflint.c:4113 +#: src/elflint.c:4152 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3433,7 +3428,7 @@ msgstr "" "sekcja [%2zu] „%s†ma typ NOBITS, ale jest odczytywana z pliku w segmencie " "wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n" -#: src/elflint.c:4124 +#: src/elflint.c:4163 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3442,17 +3437,17 @@ msgstr "" "sekcja [%2zu] „%s†nie ma typu NOBITS, a nie jest odczytywana z pliku " "w segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4135 +#: src/elflint.c:4174 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "sekcja [%2zu] „%s†jest wykonywalne w segmencie niewykonywalnym %d\n" -#: src/elflint.c:4145 +#: src/elflint.c:4184 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "sekcja [%2zu] „%s†jest zapisywalne w niezapisywalnym segmencie %d\n" -#: src/elflint.c:4155 +#: src/elflint.c:4194 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3460,7 +3455,7 @@ msgstr "" "sekcja [%2zu] „%sâ€: ma flagÄ™ alloc, ale sekcja nie jest w żadnym segmencie " "wczytywalnym\n" -#: src/elflint.c:4161 +#: src/elflint.c:4200 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3469,7 +3464,7 @@ msgstr "" "sekcja [%2zu] „%sâ€: wedÅ‚ug nagłówka ELF to jest tabela ciÄ…gów nagłówków " "sekcji, ale typ nie jest SHT_TYPE\n" -#: src/elflint.c:4169 +#: src/elflint.c:4208 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3477,17 +3472,17 @@ msgstr "" "sekcja [%2zu] „%sâ€: pliki relokowalne nie mogÄ… mieć tabeli symboli " "dynamicznych\n" -#: src/elflint.c:4220 +#: src/elflint.c:4263 #, c-format msgid "more than one version symbol table present\n" msgstr "obecna jest wiÄ™cej niż jedna tabela symboli wersji\n" -#: src/elflint.c:4243 +#: src/elflint.c:4286 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "jest wpis nagłówka programu INTERP, ale nie ma sekcji .interp\n" -#: src/elflint.c:4254 +#: src/elflint.c:4297 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3495,14 +3490,14 @@ msgstr "" "wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych " "sekcji\n" -#: src/elflint.c:4260 +#: src/elflint.c:4303 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych " "sekcji\n" -#: src/elflint.c:4271 +#: src/elflint.c:4314 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3511,23 +3506,23 @@ msgstr "" "brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu." "versym_r\n" -#: src/elflint.c:4284 +#: src/elflint.c:4327 #, c-format msgid "duplicate version index %d\n" msgstr "powtórzony indeks wersji %d\n" -#: src/elflint.c:4298 +#: src/elflint.c:4341 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n" -#: src/elflint.c:4347 +#: src/elflint.c:4390 #, c-format msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku core %<PRIu32> pod offsetem %<PRIu64>\n" -#: src/elflint.c:4351 +#: src/elflint.c:4394 #, c-format msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" @@ -3535,7 +3530,7 @@ msgstr "" "sekcja [%2d]: „%sâ€: nieznany typ notatki pliku core %<PRIu32> pod offsetem " "%zu\n" -#: src/elflint.c:4407 +#: src/elflint.c:4450 #, c-format msgid "" "phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " @@ -3544,7 +3539,7 @@ msgstr "" "phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie wÅ‚aÅ›ciciela " "„%s†pod offsetem %zu\n" -#: src/elflint.c:4412 +#: src/elflint.c:4455 #, c-format msgid "" "section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " @@ -3553,37 +3548,37 @@ msgstr "" "sekcja [%2d] „%sâ€: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie " "wÅ‚aÅ›ciciela „%s†pod offsetem %zu\n" -#: src/elflint.c:4431 +#: src/elflint.c:4474 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: brak okreÅ›lonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4451 +#: src/elflint.c:4494 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: nie można uzyskać zawartoÅ›ci sekcji notatki: %s\n" -#: src/elflint.c:4454 +#: src/elflint.c:4497 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "phdr[%d]: dodatkowe %<PRIu64> B po ostatniej notatce\n" -#: src/elflint.c:4475 +#: src/elflint.c:4518 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "sekcja [%2d] „%sâ€: brak okreÅ›lonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4482 +#: src/elflint.c:4525 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać zawartoÅ›ci sekcji notatek\n" -#: src/elflint.c:4485 +#: src/elflint.c:4528 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "sekcja [%2d] „%sâ€: dodatkowe %<PRIu64> B po ostatniej notatce\n" -#: src/elflint.c:4503 +#: src/elflint.c:4546 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3591,135 +3586,135 @@ msgstr "" "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogÄ… mieć " "nagłówki programu\n" -#: src/elflint.c:4518 +#: src/elflint.c:4561 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "nie można uzyskać wpisu nagłówka programu %d: %s\n" -#: src/elflint.c:4528 +#: src/elflint.c:4571 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" "wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#<PRIx64>\n" -#: src/elflint.c:4539 +#: src/elflint.c:4582 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "wiÄ™cej niż jeden wpis INTERP w nagłówku programu\n" -#: src/elflint.c:4547 +#: src/elflint.c:4590 #, c-format msgid "more than one TLS entry in program header\n" msgstr "wiÄ™cej niż jeden wpis TLS w nagłówku programu\n" -#: src/elflint.c:4554 +#: src/elflint.c:4597 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n" -#: src/elflint.c:4568 +#: src/elflint.c:4611 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "odniesienie sekcji dynamicznej w nagłówku programu ma bÅ‚Ä™dny offset\n" -#: src/elflint.c:4571 +#: src/elflint.c:4614 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "różne rozmiary sekcji dynamicznej w nagłówku programu i sekcji\n" -#: src/elflint.c:4581 +#: src/elflint.c:4624 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "wiÄ™cej niż jeden wpis GNU_RELRO w nagłówku programu\n" -#: src/elflint.c:4602 +#: src/elflint.c:4645 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "wczytywalny segment wskazywany przez GNU_RELRO nie jest zapisywalny\n" -#: src/elflint.c:4613 +#: src/elflint.c:4656 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "flagi wczytywalnego segmentu [%u] nie pasujÄ… do flag GNU_RELRO [%u]\n" -#: src/elflint.c:4620 +#: src/elflint.c:4663 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" "flagi GNU_RELRO [%u] nie sÄ… podzbiorem flag wczytywalnego segmentu [%u]\n" -#: src/elflint.c:4629 src/elflint.c:4652 +#: src/elflint.c:4672 src/elflint.c:4695 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "segment %s nie zawiera siÄ™ we wczytywalnym segmencie\n" -#: src/elflint.c:4658 +#: src/elflint.c:4701 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" "offsety nagłówka programu w nagłówku ELF i wpisie PHDR nie zgadzajÄ… siÄ™" -#: src/elflint.c:4685 +#: src/elflint.c:4728 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "odniesienie tabeli wyszukiwania ramki wywoÅ‚ania w nagłówku programu ma " "bÅ‚Ä™dny offset\n" -#: src/elflint.c:4688 +#: src/elflint.c:4731 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "różne rozmiary tabel wyszukiwania ramki wywoÅ‚ania w nagłówku programu " "i sekcji\n" -#: src/elflint.c:4701 +#: src/elflint.c:4744 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "PT_GNU_EH_FRAME jest obecne, ale brak sekcji .eh_frame_hdr\n" -#: src/elflint.c:4709 +#: src/elflint.c:4752 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabela wyszukiwania ramki wywoÅ‚ania musi być przydzielona\n" -#: src/elflint.c:4712 +#: src/elflint.c:4755 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sekcja [%2zu] „%sâ€: musi być przydzielona\n" -#: src/elflint.c:4716 +#: src/elflint.c:4759 #, c-format msgid "call frame search table must not be writable\n" msgstr "tabela wyszukiwania ramki wywoÅ‚ania nie może być zapisywalna\n" -#: src/elflint.c:4719 +#: src/elflint.c:4762 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sekcja [%2zu] „%s†nie może być zapisywalna\n" -#: src/elflint.c:4724 +#: src/elflint.c:4767 #, c-format msgid "call frame search table must not be executable\n" msgstr "tabela wyszukiwania ramki wywoÅ‚ania nie może być wykonywalna\n" -#: src/elflint.c:4727 +#: src/elflint.c:4770 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sekcja [%2zu] „%s†nie może być wykonywalna\n" -#: src/elflint.c:4741 +#: src/elflint.c:4784 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "wpis nagłówka programu %d: rozmiar pliku wiÄ™kszy niż rozmiar pamiÄ™ci\n" -#: src/elflint.c:4748 +#: src/elflint.c:4791 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "wpis nagłówka programu %d: wyrównanie nie jest potÄ™gÄ… 2\n" -#: src/elflint.c:4751 +#: src/elflint.c:4794 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3728,7 +3723,7 @@ msgstr "" "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie sÄ… " "wielokrotnoÅ›ciÄ… wyrównania\n" -#: src/elflint.c:4764 +#: src/elflint.c:4807 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3737,17 +3732,17 @@ msgstr "" "plik wykonywalny/DSO z sekcjÄ… .eh_frame_hdr nie ma wpisu nagłówka programu " "PT_GNU_EH_FRAME" -#: src/elflint.c:4798 +#: src/elflint.c:4841 #, c-format msgid "cannot read ELF header: %s\n" msgstr "nie można odczytać nagłówka ELF: %s\n" -#: src/elflint.c:4810 +#: src/elflint.c:4853 #, c-format msgid "cannot create backend for ELF file\n" msgstr "nie można utworzyć zaplecza dla pliku ELF\n" -#: src/elflint.c:4831 +#: src/elflint.c:4874 #, c-format msgid "text relocation flag set but not needed\n" msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n" @@ -3960,7 +3955,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: BÅÄ„D WEWNĘTRZNY %d (%s): %s" #: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307 -#: src/strip.c:2766 +#: src/strip.c:2763 #, c-format msgid "while closing '%s'" msgstr "podczas zamykania „%sâ€" @@ -4003,13 +3998,13 @@ msgstr "%s%s%s: nie rozpoznano formatu pliku" msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" -#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663 -#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097 -#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809 -#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613 -#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803 -#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467 -#: src/strip.c:1093 +#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685 +#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123 +#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854 +#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896 +#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029 +#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396 +#: src/size.c:467 src/strip.c:1093 #, c-format msgid "cannot get section header string table index" msgstr "nie można uzyskać indeksu tabeli ciÄ…gów nagłówków sekcji" @@ -4118,7 +4113,7 @@ msgstr "WyÅ›wietla tylko informacje o sekcji NAZWA." msgid "Show information from FILEs (a.out by default)." msgstr "WyÅ›wietla informacje z PLIKÓW (domyÅ›lnie a.out)." -#: src/objdump.c:217 src/readelf.c:608 +#: src/objdump.c:217 src/readelf.c:630 msgid "No operation specified.\n" msgstr "Nie podano dziaÅ‚ania.\n" @@ -4127,11 +4122,11 @@ msgstr "Nie podano dziaÅ‚ania.\n" msgid "while close `%s'" msgstr "podczas zamykania „%sâ€" -#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383 +#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409 msgid "INVALID SYMBOL" msgstr "NIEPRAWIDÅOWY SYMBOL" -#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419 +#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445 msgid "INVALID SECTION" msgstr "NIEPRAWIDÅOWA SEKCJA" @@ -4188,18 +4183,18 @@ msgstr "„%s†nie jest archiwum" msgid "error while freeing sub-ELF descriptor: %s" msgstr "bÅ‚Ä…d podczas zwalniania deskryptora pod-ELF: %s" -#: src/readelf.c:96 +#: src/readelf.c:97 msgid "ELF input selection:" msgstr "Wybór wyjÅ›cia ELF:" -#: src/readelf.c:98 +#: src/readelf.c:99 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" "Używa podanej SEKCJI (domyÅ›lnie .gnu_debugdata) jako (skompresowanych) " "danych wejÅ›ciowych ELF" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "" "Used with -w to find the skeleton Compile Units in FILE associated with the " "Split Compile units in a .dwo input file" @@ -4207,71 +4202,71 @@ msgstr "" "Używane z opcjÄ… -w do wyszukiwania szkieletów jednostek kompilacji w PLIKU " "powiÄ…zanych z jednostkami podzielonej kompilacji w pliku wejÅ›ciowym .dwo" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "ELF output selection:" msgstr "Wybór wyjÅ›cia ELF:" -#: src/readelf.c:105 +#: src/readelf.c:106 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Wszystkie te plus -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the dynamic segment" msgstr "WyÅ›wietla segment dynamiczny" -#: src/readelf.c:107 +#: src/readelf.c:108 msgid "Display the ELF file header" msgstr "WyÅ›wietla nagłówek pliku ELF" -#: src/readelf.c:109 +#: src/readelf.c:110 msgid "Display histogram of bucket list lengths" msgstr "WyÅ›wietla histogram dÅ‚ugoÅ›ci list kubeÅ‚ków" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Display the program headers" msgstr "WyÅ›wietla nagłówki programu" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "Display relocations" msgstr "WyÅ›wietla relokacje" -#: src/readelf.c:113 +#: src/readelf.c:114 msgid "Display the section groups" msgstr "WyÅ›wietla grupy sekcji" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Display the sections' headers" msgstr "WyÅ›wietla nagłówki sekcji" -#: src/readelf.c:117 +#: src/readelf.c:118 msgid "Display the symbol table sections" msgstr "WyÅ›wietla sekcje tabeli symboli" -#: src/readelf.c:120 +#: src/readelf.c:121 msgid "Display (only) the dynamic symbol table" msgstr "WyÅ›wietla (tylko) tabelÄ™ symboli dynamicznych" -#: src/readelf.c:121 +#: src/readelf.c:122 msgid "Display versioning information" msgstr "WyÅ›wietla informacje o wersji" -#: src/readelf.c:122 +#: src/readelf.c:123 msgid "Display the ELF notes" msgstr "WyÅ›wietla notatki ELF" -#: src/readelf.c:124 +#: src/readelf.c:125 msgid "Display architecture specific information, if any" msgstr "WyÅ›wietla informacje dla konkretnej architektury, jeÅ›li sÄ…" -#: src/readelf.c:126 +#: src/readelf.c:127 msgid "Display sections for exception handling" msgstr "WyÅ›wietla sekcje do obsÅ‚ugi wyjÄ…tków" -#: src/readelf.c:128 +#: src/readelf.c:129 msgid "Additional output selection:" msgstr "Dodatkowy wybór wyjÅ›cia:" -#: src/readelf.c:130 +#: src/readelf.c:131 msgid "" "Display DWARF section content. SECTION can be one of abbrev, addr, aranges, " "decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, " @@ -4281,42 +4276,42 @@ msgstr "" "aranges, decodedaranges, frame, gdb_index, info, info+, loc, line, " "decodedline, ranges, pubnames, str, macinfo, macro lub exception" -#: src/readelf.c:134 +#: src/readelf.c:135 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "Zrzuca niezinterpretowanÄ… zawartość SEKCJI, wedÅ‚ug liczny lub nazwy" -#: src/readelf.c:136 +#: src/readelf.c:137 msgid "Print string contents of sections" msgstr "WyÅ›wietla zawartość ciÄ…gów sekcji" -#: src/readelf.c:139 +#: src/readelf.c:140 msgid "Display the symbol index of an archive" msgstr "WyÅ›wietla indeks symboli archiwum" -#: src/readelf.c:141 +#: src/readelf.c:142 msgid "Use the dynamic segment when possible for displaying info" msgstr "" -#: src/readelf.c:143 +#: src/readelf.c:144 msgid "Output control:" msgstr "Kontrola wyjÅ›cia:" -#: src/readelf.c:145 +#: src/readelf.c:146 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Bez odnajdywania nazw symboli dla adresów w danych DWARF" -#: src/readelf.c:147 +#: src/readelf.c:148 msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "" "WyÅ›wietla tylko offsety zamiast rozwiÄ…zywania wartoÅ›ci na adresy w danych " "DWARF" -#: src/readelf.c:149 +#: src/readelf.c:150 msgid "Ignored for compatibility (lines always wide)" msgstr "Ignorowane dla zgodnoÅ›ci (wiersze sÄ… zawsze szerokie)" -#: src/readelf.c:151 +#: src/readelf.c:152 msgid "" "Show compression information for compressed sections (when used with -S); " "decompress section before dumping data (when used with -p or -x)" @@ -4326,40 +4321,40 @@ msgstr "" "używane z opcjÄ… -p lub -x)" #. Short description of program. -#: src/readelf.c:156 +#: src/readelf.c:157 msgid "Print information from ELF file in human-readable form." msgstr "WyÅ›wietla informacje z pliku ELF w postaci czytelnej dla czÅ‚owieka." #. Look up once. -#: src/readelf.c:373 +#: src/readelf.c:395 msgid "yes" msgstr "tak" -#: src/readelf.c:374 +#: src/readelf.c:396 msgid "no" msgstr "nie" -#: src/readelf.c:576 +#: src/readelf.c:598 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Nieznana sekcja debugowania DWARF „%sâ€.\n" -#: src/readelf.c:647 src/readelf.c:758 +#: src/readelf.c:669 src/readelf.c:780 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188 +#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188 #, c-format msgid "cannot determine number of sections: %s" msgstr "nie można okreÅ›lić liczby sekcji: %s" -#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508 +#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530 #, c-format msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033 +#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442 #: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610 #: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222 #: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470 @@ -4368,120 +4363,120 @@ msgstr "nie można uzyskać sekcji: %s" msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" -#: src/readelf.c:689 +#: src/readelf.c:711 #, c-format msgid "cannot get section name" msgstr "nie można uzyskać nazwy sekcji" -#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989 -#: src/readelf.c:11173 +#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332 +#: src/readelf.c:11516 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartoÅ›ci %s: %s" -#: src/readelf.c:714 +#: src/readelf.c:736 #, c-format msgid "cannot create temp file '%s'" msgstr "nie można utworzyć pliku tymczasowego „%sâ€" -#: src/readelf.c:723 +#: src/readelf.c:745 #, c-format msgid "cannot write section data" msgstr "nie można zapisać danych sekcji" -#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775 +#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "bÅ‚Ä…d podczas zamykania deskryptora ELF: %s" -#: src/readelf.c:736 +#: src/readelf.c:758 #, c-format msgid "error while rewinding file descriptor" msgstr "bÅ‚Ä…d podczas przewijania deskryptora pliku" -#: src/readelf.c:770 +#: src/readelf.c:792 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "„%s†nie jest archiwum, nie można wyÅ›wietlić indeksu archiwum" -#: src/readelf.c:874 +#: src/readelf.c:896 #, c-format msgid "cannot stat input file" msgstr "nie można wykonać stat na pliku wejÅ›ciowym" -#: src/readelf.c:876 +#: src/readelf.c:898 #, c-format msgid "input file is empty" msgstr "plik wejÅ›ciowy jest pusty" -#: src/readelf.c:878 +#: src/readelf.c:900 #, c-format msgid "failed reading '%s': %s" msgstr "odczytanie „%s†siÄ™ nie powiodÅ‚o: %s" -#: src/readelf.c:907 +#: src/readelf.c:929 #, c-format msgid "No such section '%s' in '%s'" msgstr "Brak sekcji „%s†w „%sâ€" -#: src/readelf.c:966 +#: src/readelf.c:988 #, c-format msgid "cannot read ELF header: %s" msgstr "nie można odczytać nagłówka ELF: %s" -#: src/readelf.c:974 +#: src/readelf.c:996 #, c-format msgid "cannot create EBL handle" msgstr "nie można utworzyć uchwytu EBL" -#: src/readelf.c:985 +#: src/readelf.c:1007 #, c-format msgid "cannot determine number of program headers: %s" msgstr "nie można okreÅ›lić liczby nagłówków programu: %s" -#: src/readelf.c:1017 +#: src/readelf.c:1039 #, c-format msgid "cannot read ELF: %s" msgstr "nie można odczytać danych ELF: %s" -#: src/readelf.c:1050 +#: src/readelf.c:1072 #, fuzzy #| msgid "cannot get section: %s" msgid "cannot find section" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:1087 +#: src/readelf.c:1109 msgid "NONE (None)" msgstr "NONE (żaden)" -#: src/readelf.c:1088 +#: src/readelf.c:1110 msgid "REL (Relocatable file)" msgstr "REL (plik relokowalny)" -#: src/readelf.c:1089 +#: src/readelf.c:1111 msgid "EXEC (Executable file)" msgstr "EXEC (plik wykonywalny)" -#: src/readelf.c:1090 +#: src/readelf.c:1112 msgid "DYN (Shared object file)" msgstr "DYN (plik obiektu współdzielonego)" -#: src/readelf.c:1091 +#: src/readelf.c:1113 msgid "CORE (Core file)" msgstr "CORE (plik core)" -#: src/readelf.c:1096 +#: src/readelf.c:1118 #, c-format msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1098 +#: src/readelf.c:1120 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Zależny od procesora: (%x)\n" -#: src/readelf.c:1108 +#: src/readelf.c:1130 msgid "" "ELF Header:\n" " Magic: " @@ -4489,7 +4484,7 @@ msgstr "" "Nagłówek ELF:\n" " Magic: " -#: src/readelf.c:1112 +#: src/readelf.c:1134 #, c-format msgid "" "\n" @@ -4498,123 +4493,123 @@ msgstr "" "\n" " Klasa: %s\n" -#: src/readelf.c:1117 +#: src/readelf.c:1139 #, c-format msgid " Data: %s\n" msgstr " Dane: %s\n" -#: src/readelf.c:1123 +#: src/readelf.c:1145 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Wersja Ident: %hhd %s\n" -#: src/readelf.c:1125 src/readelf.c:1147 +#: src/readelf.c:1147 src/readelf.c:1169 msgid "(current)" msgstr "(bieżąca)" -#: src/readelf.c:1129 +#: src/readelf.c:1151 #, c-format msgid " OS/ABI: %s\n" msgstr " System operacyjny/ABI: %s\n" -#: src/readelf.c:1132 +#: src/readelf.c:1154 #, c-format msgid " ABI Version: %hhd\n" msgstr " Wersja ABI: %hhd\n" -#: src/readelf.c:1135 +#: src/readelf.c:1157 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:1140 +#: src/readelf.c:1162 #, c-format msgid " Machine: %s\n" msgstr " Komputer: %s\n" -#: src/readelf.c:1142 +#: src/readelf.c:1164 #, c-format msgid " Machine: <unknown>: 0x%x\n" msgstr " Komputer: <nieznany>: 0x%x\n" -#: src/readelf.c:1145 +#: src/readelf.c:1167 #, c-format msgid " Version: %d %s\n" msgstr " Wersja: %d %s\n" -#: src/readelf.c:1149 +#: src/readelf.c:1171 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Adres punktu wejÅ›ciowego: %#<PRIx64>\n" -#: src/readelf.c:1152 +#: src/readelf.c:1174 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " PoczÄ…tek nagłówków programu: %<PRId64> %s\n" -#: src/readelf.c:1153 src/readelf.c:1156 +#: src/readelf.c:1175 src/readelf.c:1178 msgid "(bytes into file)" msgstr "(bajtów w pliku)" -#: src/readelf.c:1155 +#: src/readelf.c:1177 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " PoczÄ…tek nagłówków sekcji: %<PRId64> %s\n" -#: src/readelf.c:1158 +#: src/readelf.c:1180 #, c-format msgid " Flags: %s\n" msgstr " Flagi: %s\n" -#: src/readelf.c:1161 +#: src/readelf.c:1183 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n" -#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182 +#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204 msgid "(bytes)" msgstr "(bajtów)" -#: src/readelf.c:1164 +#: src/readelf.c:1186 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n" -#: src/readelf.c:1167 +#: src/readelf.c:1189 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków programu: %<PRId16>" -#: src/readelf.c:1174 +#: src/readelf.c:1196 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> w [0].sh_info)" -#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208 +#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230 msgid " ([0] not available)" msgstr " ([0] niedostÄ™pny)" -#: src/readelf.c:1181 +#: src/readelf.c:1203 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n" -#: src/readelf.c:1184 +#: src/readelf.c:1206 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>" -#: src/readelf.c:1191 +#: src/readelf.c:1213 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> w [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1204 +#: src/readelf.c:1226 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> w [0].sh_link)" -#: src/readelf.c:1212 +#: src/readelf.c:1234 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4623,7 +4618,7 @@ msgstr "" " Indeks tabeli ciÄ…gów nagłówków sekcji: XINDEX%s\n" "\n" -#: src/readelf.c:1216 +#: src/readelf.c:1238 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4632,12 +4627,12 @@ msgstr "" " Indeks tabeli ciÄ…gów nagłówków sekcji: %<PRId16>\n" "\n" -#: src/readelf.c:1266 src/readelf.c:1474 +#: src/readelf.c:1288 src/readelf.c:1496 #, c-format msgid "cannot get number of sections: %s" msgstr "nie można uzyskać liczby sekcji: %s" -#: src/readelf.c:1269 +#: src/readelf.c:1291 #, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4646,16 +4641,16 @@ msgstr "" "Liczba nagłówków sekcji: %zd, rozpoczynajÄ…cych siÄ™ od offsetu %#<PRIx64>:\n" "\n" -#: src/readelf.c:1277 +#: src/readelf.c:1299 #, c-format msgid "cannot get section header string table index: %s" msgstr "nie można uzyskać indeksu tabeli ciÄ…gów nagłówków sekcji: %s" -#: src/readelf.c:1280 +#: src/readelf.c:1302 msgid "Section Headers:" msgstr "Nagłówki sekcji:" -#: src/readelf.c:1283 +#: src/readelf.c:1305 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4663,7 +4658,7 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk " "Inf Al" -#: src/readelf.c:1285 +#: src/readelf.c:1307 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4671,36 +4666,36 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozmiar ES " "Flagi Lk Inf Al" -#: src/readelf.c:1290 +#: src/readelf.c:1312 msgid " [Compression Size Al]" msgstr " [Kompresja Rozmiar Al]" -#: src/readelf.c:1292 +#: src/readelf.c:1314 msgid " [Compression Size Al]" msgstr " [Kompresja Rozmiar Al]" -#: src/readelf.c:1370 +#: src/readelf.c:1392 #, c-format msgid "bad compression header for section %zd: %s" msgstr "bÅ‚Ä™dny nagłówek kompresji dla sekcji %zd: %s" -#: src/readelf.c:1381 +#: src/readelf.c:1403 #, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "bÅ‚Ä™dny rozmiar kompresji gnu dla sekcji %zd: %s" -#: src/readelf.c:1399 +#: src/readelf.c:1421 msgid "Program Headers:" msgstr "Nagłówki programu:" -#: src/readelf.c:1401 +#: src/readelf.c:1423 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg " "Wyrównanie" -#: src/readelf.c:1404 +#: src/readelf.c:1426 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4708,12 +4703,12 @@ msgstr "" " Typ Offset AdresWirtualny AdresFizyczny RozmPlik " "RozmPam Flg Wyrównanie" -#: src/readelf.c:1461 +#: src/readelf.c:1483 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[WywoÅ‚anie interpretera programu: %s]\n" -#: src/readelf.c:1486 +#: src/readelf.c:1508 msgid "" "\n" " Section to Segment mapping:\n" @@ -4723,12 +4718,12 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 +#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" -#: src/readelf.c:1641 +#: src/readelf.c:1663 #, c-format msgid "" "\n" @@ -4746,7 +4741,7 @@ msgstr[2] "" "\n" "Grupa sekcji COMDAT [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n" -#: src/readelf.c:1646 +#: src/readelf.c:1668 #, c-format msgid "" "\n" @@ -4764,32 +4759,32 @@ msgstr[2] "" "\n" "Grupa sekcji [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n" -#: src/readelf.c:1654 +#: src/readelf.c:1676 msgid "<INVALID SYMBOL>" msgstr "<NIEPRAWIDÅOWY SYMBOL>" -#: src/readelf.c:1668 +#: src/readelf.c:1690 msgid "<INVALID SECTION>" msgstr "<NIEPRAWIDÅOWY SEKCJA>" -#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881 -#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956 -#: src/readelf.c:12963 +#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212 +#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365 +#: src/readelf.c:13372 msgid "Couldn't uncompress section" msgstr "Nie można dekompresować sekcji" -#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585 +#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916 #, c-format msgid "cannot get section [%zd] header: %s" msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s" -#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890 -#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619 +#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221 +#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962 #, c-format msgid "invalid sh_link value in section %zu" msgstr "nieprawidÅ‚owa wartość sh_link w sekcji %zu" -#: src/readelf.c:1867 +#: src/readelf.c:1889 #, c-format msgid "" "\n" @@ -4815,7 +4810,7 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "'%s'\n" -#: src/readelf.c:1880 +#: src/readelf.c:1902 #, fuzzy, c-format #| msgid "" #| "\n" @@ -4849,42 +4844,42 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "'%s'\n" -#: src/readelf.c:1890 +#: src/readelf.c:1912 msgid " Type Value\n" msgstr " Typ Wartość\n" -#: src/readelf.c:1899 +#: src/readelf.c:1921 #, fuzzy #| msgid "cannot get string section data: %s" msgid "cannot get string table by using dynamic segment" msgstr "nie można uzyskać danych sekcji ciÄ…gów: %s" -#: src/readelf.c:1938 +#: src/readelf.c:1960 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteka współdzielona: [%s]\n" -#: src/readelf.c:1942 +#: src/readelf.c:1964 #, c-format msgid "Library soname: [%s]\n" msgstr "soname biblioteki: [%s]\n" -#: src/readelf.c:1946 +#: src/readelf.c:1968 #, c-format msgid "Library rpath: [%s]\n" msgstr "rpath biblioteki: [%s]\n" -#: src/readelf.c:1950 +#: src/readelf.c:1972 #, c-format msgid "Library runpath: [%s]\n" msgstr "runpath biblioteki: [%s]\n" -#: src/readelf.c:1969 +#: src/readelf.c:1993 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bajtów)\n" -#: src/readelf.c:2083 src/readelf.c:2272 +#: src/readelf.c:2109 src/readelf.c:2298 #, c-format msgid "" "\n" @@ -4893,7 +4888,7 @@ msgstr "" "\n" "NieprawidÅ‚owa tabela symboli pod offsetem %#0<PRIx64>\n" -#: src/readelf.c:2100 src/readelf.c:2289 +#: src/readelf.c:2126 src/readelf.c:2315 #, c-format msgid "" "\n" @@ -4922,7 +4917,8 @@ msgstr[2] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:2115 src/readelf.c:2304 +#. A .relr.dyn section does not refer to a specific section. +#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485 #, c-format msgid "" "\n" @@ -4940,30 +4936,40 @@ msgstr[2] "" "\n" "Sekcja relokacji [%2u] „%s†pod offsetem %#0<PRIx64> zawiera %d wpisów:\n" -#: src/readelf.c:2125 +#: src/readelf.c:2151 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:2127 +#: src/readelf.c:2153 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225 -#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396 -#: src/readelf.c:2418 src/readelf.c:2431 +#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251 +#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422 +#: src/readelf.c:2444 src/readelf.c:2457 msgid "<INVALID RELOC>" msgstr "<NIEPRAWIDÅOWA RELOKACJA>" -#: src/readelf.c:2314 +#: src/readelf.c:2340 msgid " Offset Type Value Addend Name\n" msgstr " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2316 +#: src/readelf.c:2342 msgid " Offset Type Value Addend Name\n" msgstr "" " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2558 +#: src/readelf.c:2654 +#, c-format +msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" +msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" + +#: src/readelf.c:2750 +#, c-format +msgid "bad dynamic symbol" +msgstr "bÅ‚Ä™dny symbol dynamiczny" + +#: src/readelf.c:2868 #, c-format msgid "" "\n" @@ -4981,7 +4987,7 @@ msgstr[2] "" "\n" "Tabela symboli [%2u] „%s†zawiera %u wpisów:\n" -#: src/readelf.c:2563 +#: src/readelf.c:2873 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -4989,33 +4995,27 @@ msgstr[0] " %lu symbol lokalny Tabela ciÄ…gów: [%2u] „%sâ€\n" msgstr[1] " %lu symbole lokalne Tabela ciÄ…gów: [%2u] „%sâ€\n" msgstr[2] " %lu symboli lokalnych Tabela ciÄ…gów: [%2u] „%sâ€\n" -#: src/readelf.c:2571 +#: src/readelf.c:2881 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2573 +#: src/readelf.c:2883 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2593 -#, c-format -msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" - -#: src/readelf.c:2686 -#, c-format -msgid "bad dynamic symbol" -msgstr "bÅ‚Ä™dny symbol dynamiczny" +#: src/readelf.c:3002 +msgid "Dynamic symbol information is not available for displaying symbols." +msgstr "" -#: src/readelf.c:2771 +#: src/readelf.c:3102 msgid "none" msgstr "brak" -#: src/readelf.c:2788 +#: src/readelf.c:3119 msgid "| <unknown>" msgstr "| <nieznany>" -#: src/readelf.c:2818 +#: src/readelf.c:3149 #, c-format msgid "" "\n" @@ -5041,17 +5041,17 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:2839 +#: src/readelf.c:3170 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n" -#: src/readelf.c:2852 +#: src/readelf.c:3183 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n" -#: src/readelf.c:2894 +#: src/readelf.c:3225 #, c-format msgid "" "\n" @@ -5077,19 +5077,19 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:2922 +#: src/readelf.c:3253 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Wersja: %hd Flagi: %s Indeks: %hd Licznik: %hd Nazwa: %s\n" -#: src/readelf.c:2937 +#: src/readelf.c:3268 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" #. Print the header. -#: src/readelf.c:3197 +#: src/readelf.c:3528 #, c-format msgid "" "\n" @@ -5112,15 +5112,15 @@ msgstr[2] "" "Sekcja symboli wersji [%2u] „%s†zawiera %d wpisów:\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] „%sâ€" -#: src/readelf.c:3225 +#: src/readelf.c:3556 msgid " 0 *local* " msgstr " 0 *lokalny* " -#: src/readelf.c:3230 +#: src/readelf.c:3561 msgid " 1 *global* " msgstr " 1 *globalny* " -#: src/readelf.c:3272 +#: src/readelf.c:3603 #, c-format msgid "" "\n" @@ -5151,22 +5151,22 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:3294 +#: src/readelf.c:3625 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " DÅ‚ugość Liczba % caÅ‚oÅ›ci Pokrycie\n" -#: src/readelf.c:3296 +#: src/readelf.c:3627 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3303 +#: src/readelf.c:3634 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3316 +#: src/readelf.c:3647 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5175,37 +5175,37 @@ msgstr "" " Åšrednia liczba testów: udane wyszukania: %f\n" "\t\t\t nieudane wyszukania: %f\n" -#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464 +#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795 #, c-format msgid "cannot get data for section %d: %s" msgstr "nie można uzyskać danych dla sekcji %d: %s" -#: src/readelf.c:3342 +#: src/readelf.c:3673 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash %d" -#: src/readelf.c:3371 +#: src/readelf.c:3702 #, c-format msgid "invalid chain in sysv.hash section %d" msgstr "nieprawidÅ‚owy Å‚aÅ„cuch w sekcji sysv.hash %d" -#: src/readelf.c:3406 +#: src/readelf.c:3737 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash64 %d" -#: src/readelf.c:3437 +#: src/readelf.c:3768 #, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "nieprawidÅ‚owy Å‚aÅ„cuch w sekcji sysv.hash64 %d" -#: src/readelf.c:3473 +#: src/readelf.c:3804 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "nieprawidÅ‚owe dane w sekcji gnu.hash %d" -#: src/readelf.c:3539 +#: src/readelf.c:3870 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5215,7 +5215,7 @@ msgstr "" " Rozmiar maski bitowej: %zu B %<PRIuFAST32>%% b ustawionych drugie " "przesuniÄ™cie skrótu: %u\n" -#: src/readelf.c:3624 +#: src/readelf.c:3955 #, c-format msgid "" "\n" @@ -5236,7 +5236,7 @@ msgstr[2] "" "Sekcja listy bibliotek [%2zu] „%s†pod offsetem %#0<PRIx64> zawiera %d " "wpisów:\n" -#: src/readelf.c:3638 +#: src/readelf.c:3969 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5244,7 +5244,7 @@ msgstr "" " Biblioteka Czas Suma k. Wersja " "Flagi" -#: src/readelf.c:3698 +#: src/readelf.c:4029 #, c-format msgid "" "\n" @@ -5254,107 +5254,107 @@ msgstr "" "\n" "Sekcja atrybutów obiektu [%2zu] „%s†%<PRIu64> B pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:3715 +#: src/readelf.c:4046 msgid " Owner Size\n" msgstr " WÅ‚aÅ›ciciel Rozmiar\n" -#: src/readelf.c:3739 +#: src/readelf.c:4070 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3778 +#: src/readelf.c:4109 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3783 +#: src/readelf.c:4114 #, c-format msgid " File: %11<PRIu32>\n" msgstr " Plik: %11<PRIu32>\n" -#: src/readelf.c:3833 +#: src/readelf.c:4164 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3836 +#: src/readelf.c:4167 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3839 +#: src/readelf.c:4170 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3849 +#: src/readelf.c:4180 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3852 +#: src/readelf.c:4183 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3890 +#: src/readelf.c:4221 #, fuzzy #| msgid "couldn't get shdr for group section: %s" msgid "Couldn't get data from section" msgstr "nie można uzyskać shdr dla sekcji grupy: %s" -#: src/readelf.c:3955 +#: src/readelf.c:4286 msgid "sprintf failure" msgstr "sprintf siÄ™ nie powiodÅ‚o" -#: src/readelf.c:4439 +#: src/readelf.c:4770 msgid "empty block" msgstr "pusty blok" -#: src/readelf.c:4442 +#: src/readelf.c:4773 #, c-format msgid "%zu byte block:" msgstr "blok o %zu B:" -#: src/readelf.c:4920 +#: src/readelf.c:5251 #, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%2<PRIuMAX>] %s <SKRÓCONE>\n" -#: src/readelf.c:5080 +#: src/readelf.c:5423 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "%s %#<PRIx64> zostaÅ‚o użyte z różnymi rozmiarami adresu" -#: src/readelf.c:5087 +#: src/readelf.c:5430 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "%s %#<PRIx64> zostaÅ‚o użyte z różnymi rozmiarami offsetu" -#: src/readelf.c:5094 +#: src/readelf.c:5437 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "%s %#<PRIx64> zostaÅ‚o użyte z różnymi adresami podstawowymi" -#: src/readelf.c:5101 +#: src/readelf.c:5444 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "%s %#<PRIx64> zostaÅ‚o użyte z różnymi atrybutami %s i %s" -#: src/readelf.c:5201 +#: src/readelf.c:5544 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr " [%6tx] <NIEUÅ»YWANE ÅšMIECIE W RESZCIE SEKCJI>\n" -#: src/readelf.c:5209 +#: src/readelf.c:5552 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <NIEUÅ»YWANE ÅšMIECIE>… %<PRIu64> B…\n" -#: src/readelf.c:5315 +#: src/readelf.c:5658 #, c-format msgid "" "\n" @@ -5365,7 +5365,7 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" " [ Kod]\n" -#: src/readelf.c:5323 +#: src/readelf.c:5666 #, c-format msgid "" "\n" @@ -5374,20 +5374,20 @@ msgstr "" "\n" "Sekcja skrótów pod offsetem %<PRIu64>:\n" -#: src/readelf.c:5336 +#: src/readelf.c:5679 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** bÅ‚Ä…d podczas odczytywania skrótu: %s\n" -#: src/readelf.c:5352 +#: src/readelf.c:5695 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n" -#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224 -#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829 -#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627 -#: src/readelf.c:10698 +#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567 +#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172 +#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970 +#: src/readelf.c:11041 #, c-format msgid "" "\n" @@ -5396,47 +5396,47 @@ msgstr "" "\n" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397 +#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740 #, c-format msgid " Length: %8<PRIu64>\n" msgstr " DÅ‚ugość: %8<PRIu64>\n" -#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410 +#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753 #, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " Wersja DWARF: %8<PRIu16>\n" -#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419 +#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762 #, c-format msgid " Address size: %8<PRIu64>\n" msgstr " Rozmiar adresu: %8<PRIu64>\n" -#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429 +#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772 #, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " Rozmiar segmentu: %8<PRIu64>\n" -#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820 +#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163 #, c-format msgid "Unknown version" msgstr "Nieznana wersja" -#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424 +#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767 #, c-format msgid "unsupported address size" msgstr "nieobsÅ‚ugiwany rozmiar adresu" -#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434 +#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777 #, c-format msgid "unsupported segment size" msgstr "nieobsÅ‚ugiwany rozmiar segmentu" -#: src/readelf.c:5609 +#: src/readelf.c:5952 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_aranges: %s" -#: src/readelf.c:5624 +#: src/readelf.c:5967 #, c-format msgid "" "\n" @@ -5454,12 +5454,12 @@ msgstr[2] "" "\n" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %zu wpisów:\n" -#: src/readelf.c:5655 +#: src/readelf.c:5998 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5657 +#: src/readelf.c:6000 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5467,7 +5467,7 @@ msgstr "" " [%*zu] poczÄ…tek: %0#*<PRIx64>, dÅ‚ugość: %5<PRIu64>, offset CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5695 src/readelf.c:8638 +#: src/readelf.c:6038 src/readelf.c:8981 #, c-format msgid "" "\n" @@ -5476,13 +5476,13 @@ msgstr "" "\n" "Tabela pod offsetem %zu:\n" -#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649 -#: src/readelf.c:9378 +#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992 +#: src/readelf.c:9721 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€" -#: src/readelf.c:5715 +#: src/readelf.c:6058 #, c-format msgid "" "\n" @@ -5491,27 +5491,27 @@ msgstr "" "\n" " DÅ‚ugość: %6<PRIu64>\n" -#: src/readelf.c:5727 +#: src/readelf.c:6070 #, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " Wersja DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5731 +#: src/readelf.c:6074 #, c-format msgid "unsupported aranges version" msgstr "nieobsÅ‚ugiwana wersja aranges" -#: src/readelf.c:5742 +#: src/readelf.c:6085 #, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " Offset CU: %6<PRIx64>\n" -#: src/readelf.c:5748 +#: src/readelf.c:6091 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr " Offset adresu: %6<PRIu64>\n" -#: src/readelf.c:5759 +#: src/readelf.c:6102 #, c-format msgid "" " Segment size: %6<PRIu64>\n" @@ -5520,12 +5520,12 @@ msgstr "" " Rozmiar segmentu: %6<PRIu64>\n" "\n" -#: src/readelf.c:5814 +#: src/readelf.c:6157 #, c-format msgid " %zu padding bytes\n" msgstr " %zu B wypeÅ‚nienia\n" -#: src/readelf.c:5876 src/readelf.c:9384 +#: src/readelf.c:6219 src/readelf.c:9727 #, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" @@ -5534,42 +5534,42 @@ msgstr "" "Tabela pod offsetem 0x%<PRIx64>:\n" "\n" -#: src/readelf.c:5931 src/readelf.c:9439 +#: src/readelf.c:6274 src/readelf.c:9782 #, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " Wpisy offsetu: %8<PRIu64>\n" -#: src/readelf.c:5947 src/readelf.c:9455 +#: src/readelf.c:6290 src/readelf.c:9798 #, c-format msgid " Unknown CU base: " msgstr " Nieznana podstawa CU: " -#: src/readelf.c:5949 src/readelf.c:9457 +#: src/readelf.c:6292 src/readelf.c:9800 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr " Podstawa CU [%6<PRIx64>]: " -#: src/readelf.c:5955 src/readelf.c:9463 +#: src/readelf.c:6298 src/readelf.c:9806 #, c-format msgid " Not associated with a CU.\n" msgstr " Brak powiÄ…zania z CU.\n" -#: src/readelf.c:5966 src/readelf.c:9474 +#: src/readelf.c:6309 src/readelf.c:9817 #, c-format msgid "too many offset entries for unit length" msgstr "za dużo wpisów offsetu dla dÅ‚ugoÅ›ci jednostki" -#: src/readelf.c:5970 src/readelf.c:9478 +#: src/readelf.c:6313 src/readelf.c:9821 #, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " Offsety zaczynajÄ…ce siÄ™ w 0x%<PRIx64>:\n" -#: src/readelf.c:6022 +#: src/readelf.c:6365 #, c-format msgid "invalid range list data" msgstr "nieprawidÅ‚owe dane listy zakresów" -#: src/readelf.c:6207 src/readelf.c:9813 +#: src/readelf.c:6550 src/readelf.c:10156 #, c-format msgid "" " %zu padding bytes\n" @@ -5578,7 +5578,7 @@ msgstr "" " %zu B wypeÅ‚nienia\n" "\n" -#: src/readelf.c:6255 src/readelf.c:9862 +#: src/readelf.c:6598 src/readelf.c:10205 #, c-format msgid "" "\n" @@ -5587,7 +5587,7 @@ msgstr "" "\n" " Nieznana podstawa CU: " -#: src/readelf.c:6257 src/readelf.c:9864 +#: src/readelf.c:6600 src/readelf.c:10207 #, c-format msgid "" "\n" @@ -5596,30 +5596,30 @@ msgstr "" "\n" " Podstawa CU [%6<PRIx64>]: " -#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916 +#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:6291 src/readelf.c:10000 +#: src/readelf.c:6634 src/readelf.c:10343 msgid "base address" msgstr "adres podstawowy" -#: src/readelf.c:6301 src/readelf.c:10010 +#: src/readelf.c:6644 src/readelf.c:10353 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" -#: src/readelf.c:6565 +#: src/readelf.c:6908 msgid " <INVALID DATA>\n" msgstr " <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:6822 +#: src/readelf.c:7165 #, c-format msgid "cannot get ELF: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:6846 +#: src/readelf.c:7189 #, c-format msgid "" "\n" @@ -5628,7 +5628,7 @@ msgstr "" "\n" "Sekcja informacji o ramce wywoÅ‚ania [%2zu] „%s†pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:6896 +#: src/readelf.c:7239 #, c-format msgid "" "\n" @@ -5637,65 +5637,65 @@ msgstr "" "\n" " [%6tx] Zerowy koniec\n" -#: src/readelf.c:7000 src/readelf.c:7154 +#: src/readelf.c:7343 src/readelf.c:7497 #, c-format msgid "invalid augmentation length" msgstr "nieprawidÅ‚owa dÅ‚ugość powiÄ™kszenia" -#: src/readelf.c:7015 +#: src/readelf.c:7358 msgid "FDE address encoding: " msgstr "Kodowanie adresu FDE: " -#: src/readelf.c:7021 +#: src/readelf.c:7364 msgid "LSDA pointer encoding: " msgstr "Kodowanie wskaźnika LSDA: " -#: src/readelf.c:7131 +#: src/readelf.c:7474 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (offset: %#<PRIx64>)" -#: src/readelf.c:7138 +#: src/readelf.c:7481 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (koÅ„czÄ…cy offset: %#<PRIx64>)" -#: src/readelf.c:7175 +#: src/readelf.c:7518 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n" -#: src/readelf.c:7260 +#: src/readelf.c:7603 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "DIE [%<PRIx64>] nie można uzyskać kodu atrybutu: %s" -#: src/readelf.c:7270 +#: src/readelf.c:7613 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "DIE [%<PRIx64>] nie można uzyskać formy atrybutu: %s" -#: src/readelf.c:7292 +#: src/readelf.c:7635 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "DIE [%<PRIx64>] nie można uzyskać wartoÅ›ci atrybutu „%s†(%s): %s" -#: src/readelf.c:7622 +#: src/readelf.c:7965 #, c-format msgid "invalid file (%<PRId64>): %s" msgstr "nieprawidÅ‚owy plik (%<PRId64>): %s" -#: src/readelf.c:7626 +#: src/readelf.c:7969 #, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr "brak plików źródÅ‚owych dla CU [%<PRIx64>]" -#: src/readelf.c:7630 +#: src/readelf.c:7973 #, c-format msgid "couldn't get DWARF CU: %s" msgstr "nie można uzyskać CU DWARF: %s" -#: src/readelf.c:7952 +#: src/readelf.c:8295 #, c-format msgid "" "\n" @@ -5706,12 +5706,12 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:8002 +#: src/readelf.c:8345 #, c-format msgid "cannot get next unit: %s" msgstr "nie można uzyskać nastÄ™pnej jednostki: %s" -#: src/readelf.c:8022 +#: src/readelf.c:8365 #, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5724,7 +5724,7 @@ msgstr "" "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" " Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64> [%<PRIx64>]\n" -#: src/readelf.c:8034 +#: src/readelf.c:8377 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5735,38 +5735,38 @@ msgstr "" " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: " "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" -#: src/readelf.c:8044 src/readelf.c:8205 +#: src/readelf.c:8387 src/readelf.c:8548 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr " Typ jednostki: %s (%<PRIu8>)" -#: src/readelf.c:8071 +#: src/readelf.c:8414 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "nieznana wersja (%d) lub typ jednostki (%d)" -#: src/readelf.c:8100 +#: src/readelf.c:8443 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można uzyskać offsetu DIE: %s" -#: src/readelf.c:8109 +#: src/readelf.c:8452 #, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "nie można uzyskać znacznika DIE pod offsetem [%<PRIx64>] w sekcji „%sâ€: %s" -#: src/readelf.c:8145 +#: src/readelf.c:8488 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można uzyskać nastÄ™pnego DIE: %s\n" -#: src/readelf.c:8153 +#: src/readelf.c:8496 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można uzyskać nastÄ™pnego DIE: %s" -#: src/readelf.c:8197 +#: src/readelf.c:8540 #, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5777,7 +5777,7 @@ msgstr "" " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: " "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" -#: src/readelf.c:8249 +#: src/readelf.c:8592 #, c-format msgid "" "\n" @@ -5788,13 +5788,13 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" "\n" -#: src/readelf.c:8581 +#: src/readelf.c:8924 #, c-format msgid "unknown form: %s" msgstr "nieznana forma: %s" #. Print what we got so far. -#: src/readelf.c:8729 +#: src/readelf.c:9072 #, c-format msgid "" "\n" @@ -5827,27 +5827,27 @@ msgstr "" "\n" "Instrukcje:\n" -#: src/readelf.c:8751 +#: src/readelf.c:9094 #, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "nie można obsÅ‚użyć wersji .debug_line: %u\n" -#: src/readelf.c:8759 +#: src/readelf.c:9102 #, c-format msgid "cannot handle address size: %u\n" msgstr "nie można obsÅ‚użyć rozmiaru adresu: %u\n" -#: src/readelf.c:8767 +#: src/readelf.c:9110 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "nie można obsÅ‚użyć rozmiaru selektora segmentu: %u\n" -#: src/readelf.c:8777 +#: src/readelf.c:9120 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "nieprawidÅ‚owe dane pod offsetem %tu w sekcji [%zu] „%sâ€" -#: src/readelf.c:8792 +#: src/readelf.c:9135 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5855,7 +5855,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu parametr\n" msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n" msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n" -#: src/readelf.c:8803 +#: src/readelf.c:9146 msgid "" "\n" "Directory table:" @@ -5863,12 +5863,12 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:8809 src/readelf.c:8886 +#: src/readelf.c:9152 src/readelf.c:9229 #, c-format msgid " [" msgstr " [" -#: src/readelf.c:8880 +#: src/readelf.c:9223 msgid "" "\n" "File name table:" @@ -5876,11 +5876,11 @@ msgstr "" "\n" "Tabela nazw plików:" -#: src/readelf.c:8941 +#: src/readelf.c:9284 msgid " Entry Dir Time Size Name" msgstr " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:8987 +#: src/readelf.c:9330 msgid "" "\n" "No line number statements." @@ -5888,7 +5888,7 @@ msgstr "" "\n" "Brak instrukcji numerów wierszy." -#: src/readelf.c:8991 +#: src/readelf.c:9334 msgid "" "\n" "Line number statements:" @@ -5896,129 +5896,129 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:9006 +#: src/readelf.c:9349 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "nieprawidÅ‚owe maksimum operacji na instrukcjÄ™ wynosi zero" -#: src/readelf.c:9040 +#: src/readelf.c:9383 #, c-format msgid " special opcode %u: address+%u = " msgstr " instrukcja specjalna %u: adres+%u = " -#: src/readelf.c:9044 +#: src/readelf.c:9387 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr ", op_index = %u, wiersz%+d = %zu\n" -#: src/readelf.c:9047 +#: src/readelf.c:9390 #, c-format msgid ", line%+d = %zu\n" msgstr ", wiersz%+d = %zu\n" -#: src/readelf.c:9065 +#: src/readelf.c:9408 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:9070 +#: src/readelf.c:9413 msgid " end of sequence" msgstr " koniec sekwencji" -#: src/readelf.c:9088 +#: src/readelf.c:9431 #, c-format msgid " set address to " msgstr " ustawienie adresu na " -#: src/readelf.c:9116 +#: src/readelf.c:9459 #, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" " definicja nowego pliku: dir=%u, mtime=%<PRIu64>, dÅ‚ugość=%<PRIu64>, " "nazwa=%s\n" -#: src/readelf.c:9130 +#: src/readelf.c:9473 #, c-format msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" -#: src/readelf.c:9157 +#: src/readelf.c:9500 #, c-format msgid " set inlined context %u, function name %s (0x%x)\n" msgstr "" -#: src/readelf.c:9181 +#: src/readelf.c:9524 #, fuzzy, c-format #| msgid "Also show function names" msgid " set function name %s (0x%x)\n" msgstr "WyÅ›wietla także nazwy funkcji" #. Unknown, ignore it. -#: src/readelf.c:9188 +#: src/readelf.c:9531 msgid " unknown opcode" msgstr " nieznana instrukcja" #. Takes no argument. -#: src/readelf.c:9200 +#: src/readelf.c:9543 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:9211 +#: src/readelf.c:9554 #, c-format msgid " advance address by %u to " msgstr " zwiÄ™kszenie adresu o %u do " -#: src/readelf.c:9215 src/readelf.c:9276 +#: src/readelf.c:9558 src/readelf.c:9619 #, c-format msgid ", op_index to %u" msgstr ", op_index do %u" -#: src/readelf.c:9227 +#: src/readelf.c:9570 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " zwiÄ™kszenie wiersza o staÅ‚Ä… %d do %<PRId64>\n" -#: src/readelf.c:9237 +#: src/readelf.c:9580 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ustawienie pliku na %<PRIu64>\n" -#: src/readelf.c:9248 +#: src/readelf.c:9591 #, c-format msgid " set column to %<PRIu64>\n" msgstr " ustawienie kolumny na %<PRIu64>\n" -#: src/readelf.c:9255 +#: src/readelf.c:9598 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " ustawienie „%s†na %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:9261 +#: src/readelf.c:9604 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:9272 +#: src/readelf.c:9615 #, c-format msgid " advance address by constant %u to " msgstr " zwiÄ™kszenie adresu o staÅ‚Ä… %u do " -#: src/readelf.c:9292 +#: src/readelf.c:9635 #, c-format msgid " advance address by fixed value %u to \n" msgstr " zwiÄ™kszenie adresu o staÅ‚Ä… wartość %u do \n" #. Takes no argument. -#: src/readelf.c:9302 +#: src/readelf.c:9645 msgid " set prologue end flag" msgstr " ustawienie flagi koÅ„ca prologu" #. Takes no argument. -#: src/readelf.c:9307 +#: src/readelf.c:9650 msgid " set epilogue begin flag" msgstr " ustawienie flagi poczÄ…tku epilogu" -#: src/readelf.c:9317 +#: src/readelf.c:9660 #, c-format msgid " set isa to %u\n" msgstr " ustawienie isa na %u\n" @@ -6026,7 +6026,7 @@ msgstr " ustawienie isa na %u\n" #. This is a new opcode the generator but not we know about. #. Read the parameters associated with it but then discard #. everything. Read all the parameters for this opcode. -#: src/readelf.c:9326 +#: src/readelf.c:9669 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -6034,86 +6034,86 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:" msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:" msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:" -#: src/readelf.c:9527 +#: src/readelf.c:9870 #, c-format msgid " <INVALID DATA>\n" msgstr " <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:9567 +#: src/readelf.c:9910 #, c-format msgid "invalid loclists data" msgstr "nieprawidÅ‚owe dane loclists" -#: src/readelf.c:10037 src/readelf.c:11082 +#: src/readelf.c:10380 src/readelf.c:11425 msgid " <INVALID DATA>\n" msgstr " <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:10168 +#: src/readelf.c:10511 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakoÅ„czony ciÄ…g na koÅ„cu sekcji" -#: src/readelf.c:10191 +#: src/readelf.c:10534 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** brak parametru DW_MACINFO_start_file na koÅ„cu sekcji" -#: src/readelf.c:10286 +#: src/readelf.c:10629 #, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " Offset: 0x%<PRIx64>\n" -#: src/readelf.c:10298 +#: src/readelf.c:10641 #, c-format msgid " Version: %<PRIu16>\n" msgstr " Wersja: %<PRIu16>\n" -#: src/readelf.c:10304 src/readelf.c:11202 +#: src/readelf.c:10647 src/readelf.c:11546 #, c-format msgid " unknown version, cannot parse section\n" msgstr " nieznana wersja, nie można przetworzyć sekcji\n" -#: src/readelf.c:10311 +#: src/readelf.c:10654 #, c-format msgid " Flag: 0x%<PRIx8>" msgstr " Flaga: 0x%<PRIx8>" -#: src/readelf.c:10340 +#: src/readelf.c:10683 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr " DÅ‚ugość offsetu: %<PRIu8>\n" -#: src/readelf.c:10348 +#: src/readelf.c:10691 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " Offset .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:10373 +#: src/readelf.c:10716 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n" -#: src/readelf.c:10380 +#: src/readelf.c:10723 #, c-format msgid " [%<PRIx8>]" msgstr " [%<PRIx8>]" -#: src/readelf.c:10392 +#: src/readelf.c:10735 #, c-format msgid " %<PRIu8> arguments:" msgstr " Parametry %<PRIu8>:" -#: src/readelf.c:10407 +#: src/readelf.c:10750 #, c-format msgid " no arguments." msgstr " brak parametrów." -#: src/readelf.c:10608 +#: src/readelf.c:10951 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n" -#: src/readelf.c:10663 +#: src/readelf.c:11006 #, c-format msgid "" "\n" @@ -6125,37 +6125,37 @@ msgstr "" " %*s CiÄ…g\n" #. TRANS: the debugstr| prefix makes the string unique. -#: src/readelf.c:10668 +#: src/readelf.c:11011 msgctxt "debugstr" msgid "Offset" msgstr "" -#: src/readelf.c:10678 +#: src/readelf.c:11021 #, c-format msgid " *** error, missing string terminator\n" msgstr " *** bÅ‚Ä…d, brak znaku koÅ„czÄ…cego ciÄ…g\n" -#: src/readelf.c:10800 +#: src/readelf.c:11143 #, c-format msgid " Length: %8<PRIu64>\n" msgstr " DÅ‚ugość: %8<PRIu64>\n" -#: src/readelf.c:10802 +#: src/readelf.c:11145 #, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " Rozmiar offsetu: %8<PRIu8>\n" -#: src/readelf.c:10816 +#: src/readelf.c:11159 #, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " Wersja DWARF: %8<PRIu16>\n" -#: src/readelf.c:10825 +#: src/readelf.c:11168 #, c-format msgid " Padding: %8<PRIx16>\n" msgstr " WypeÅ‚nienie: %8<PRIx16>\n" -#: src/readelf.c:10879 +#: src/readelf.c:11222 #, c-format msgid "" "\n" @@ -6164,7 +6164,7 @@ msgstr "" "\n" "Sekcja tabeli wyszukiwania ramki wywoÅ‚ania [%2zu] „.eh_frame_hdrâ€:\n" -#: src/readelf.c:10981 +#: src/readelf.c:11324 #, c-format msgid "" "\n" @@ -6173,22 +6173,22 @@ msgstr "" "\n" "Sekcja tabeli obsÅ‚ugiwania wyjÄ…tków [%2zu] „.gcc_except_tableâ€:\n" -#: src/readelf.c:11004 +#: src/readelf.c:11347 #, c-format msgid " LPStart encoding: %#x " msgstr " Kodowanie LPStart: %#x " -#: src/readelf.c:11016 +#: src/readelf.c:11359 #, c-format msgid " TType encoding: %#x " msgstr " Kodowanie TType: %#x " -#: src/readelf.c:11033 +#: src/readelf.c:11376 #, c-format msgid " Call site encoding: %#x " msgstr " Kodowanie strony wywoÅ‚ania: %#x " -#: src/readelf.c:11048 +#: src/readelf.c:11391 msgid "" "\n" " Call site table:" @@ -6196,7 +6196,7 @@ msgstr "" "\n" " Tabela strony wywoÅ‚ania:" -#: src/readelf.c:11064 +#: src/readelf.c:11407 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -6209,12 +6209,12 @@ msgstr "" " LÄ…dowisko: %#<PRIx64>\n" " DziaÅ‚anie: %u\n" -#: src/readelf.c:11137 +#: src/readelf.c:11480 #, c-format msgid "invalid TType encoding" msgstr "nieprawidÅ‚owe kodowanie TType" -#: src/readelf.c:11164 +#: src/readelf.c:11507 #, c-format msgid "" "\n" @@ -6223,37 +6223,43 @@ msgstr "" "\n" "Sekcja GDB [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %<PRId64> B:\n" -#: src/readelf.c:11193 +#: src/readelf.c:11536 #, c-format msgid " Version: %<PRId32>\n" msgstr " Wersja: %<PRId32>\n" -#: src/readelf.c:11211 +#: src/readelf.c:11555 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " offset CU: %#<PRIx32>\n" -#: src/readelf.c:11218 +#: src/readelf.c:11562 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " offset TU: %#<PRIx32>\n" -#: src/readelf.c:11225 +#: src/readelf.c:11569 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr " offset adresu: %#<PRIx32>\n" -#: src/readelf.c:11232 +#: src/readelf.c:11576 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " offset symbolu: %#<PRIx32>\n" -#: src/readelf.c:11239 +#: src/readelf.c:11586 +#, fuzzy, c-format +#| msgid " constant offset: %#<PRIx32>\n" +msgid " shortcut offset: %#<PRIx32>\n" +msgstr " offset staÅ‚ej: %#<PRIx32>\n" + +#: src/readelf.c:11594 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " offset staÅ‚ej: %#<PRIx32>\n" -#: src/readelf.c:11253 +#: src/readelf.c:11608 #, c-format msgid "" "\n" @@ -6262,7 +6268,7 @@ msgstr "" "\n" " Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:11278 +#: src/readelf.c:11633 #, c-format msgid "" "\n" @@ -6271,7 +6277,7 @@ msgstr "" "\n" " Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:11307 +#: src/readelf.c:11662 #, c-format msgid "" "\n" @@ -6280,7 +6286,7 @@ msgstr "" "\n" " Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:11339 +#: src/readelf.c:11705 #, c-format msgid "" "\n" @@ -6289,18 +6295,40 @@ msgstr "" "\n" " Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n" -#: src/readelf.c:11477 +#: src/readelf.c:11790 +#, fuzzy, c-format +#| msgid "" +#| "\n" +#| " Symbol table at offset %#<PRIx32> contains %zu slots:\n" +msgid "" +"\n" +"Shortcut table at offset %#<PRIx32> contains %zu slots:\n" +msgstr "" +"\n" +" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n" + +#: src/readelf.c:11802 +#, c-format +msgid "Language of main: %s\n" +msgstr "" + +#: src/readelf.c:11803 +#, c-format +msgid "Name of main: " +msgstr "" + +#: src/readelf.c:11886 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573 -#: src/readelf.c:12630 +#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982 +#: src/readelf.c:13039 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można konwertować danych notatki core: %s" -#: src/readelf.c:12207 +#: src/readelf.c:12616 #, c-format msgid "" "\n" @@ -6309,21 +6337,21 @@ msgstr "" "\n" "%*s… <powtarza siÄ™ jeszcze %u razy>…" -#: src/readelf.c:12709 +#: src/readelf.c:13118 msgid " Owner Data size Type\n" msgstr " WÅ‚aÅ›ciciel Rozmiar danych Typ\n" -#: src/readelf.c:12737 +#: src/readelf.c:13146 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12789 +#: src/readelf.c:13198 #, c-format msgid "cannot get content of note: %s" msgstr "nie można uzyskać zawartoÅ›ci notatki: %s" -#: src/readelf.c:12822 +#: src/readelf.c:13231 #, c-format msgid "" "\n" @@ -6333,7 +6361,7 @@ msgstr "" "Segment notatki [%2zu] „%s†o dÅ‚ugoÅ›ci %<PRIu64> B pod offsetem " "%#0<PRIx64>:\n" -#: src/readelf.c:12845 +#: src/readelf.c:13254 #, c-format msgid "" "\n" @@ -6342,7 +6370,7 @@ msgstr "" "\n" "Segment notatki o dÅ‚ugoÅ›ci %<PRIu64> B pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12892 +#: src/readelf.c:13301 #, c-format msgid "" "\n" @@ -6351,12 +6379,12 @@ msgstr "" "\n" "Sekcja [%zu] „%s†nie ma danych do zrzucenia.\n" -#: src/readelf.c:12919 src/readelf.c:12970 +#: src/readelf.c:13328 src/readelf.c:13379 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "nie można uzyskać danych dla sekcji [%zu] „%sâ€: %s" -#: src/readelf.c:12924 +#: src/readelf.c:13333 #, c-format msgid "" "\n" @@ -6366,7 +6394,7 @@ msgstr "" "Segment zrzutu szesnastkowego [%zu] „%sâ€, %<PRIu64> B pod offsetem " "%#0<PRIx64>:\n" -#: src/readelf.c:12929 +#: src/readelf.c:13338 #, c-format msgid "" "\n" @@ -6377,7 +6405,7 @@ msgstr "" "Zrzut szesnastkowy sekcji [%zu] „%sâ€, %<PRIu64> B (%zd nieskompresowanych) " "pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12943 +#: src/readelf.c:13352 #, c-format msgid "" "\n" @@ -6386,7 +6414,7 @@ msgstr "" "\n" "Sekcja [%zu] „%s†nie ma ciÄ…gów do zrzucenia.\n" -#: src/readelf.c:12975 +#: src/readelf.c:13384 #, c-format msgid "" "\n" @@ -6395,7 +6423,7 @@ msgstr "" "\n" "Sekcja ciÄ…gów [%zu] „%s†zawiera %<PRIu64> B pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12980 +#: src/readelf.c:13389 #, c-format msgid "" "\n" @@ -6406,7 +6434,7 @@ msgstr "" "Sekcja ciÄ…gów [%zu] „%s†zawiera %<PRIu64> B (%zd nieskompresowanych) pod " "offsetem %#0<PRIx64>:\n" -#: src/readelf.c:13028 +#: src/readelf.c:13437 #, c-format msgid "" "\n" @@ -6415,7 +6443,7 @@ msgstr "" "\n" "sekcja [%lu] nie istnieje" -#: src/readelf.c:13058 +#: src/readelf.c:13467 #, c-format msgid "" "\n" @@ -6424,12 +6452,12 @@ msgstr "" "\n" "sekcja „%s†nie istnieje" -#: src/readelf.c:13113 +#: src/readelf.c:13522 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "nie można uzyskać indeksu symboli archiwum „%sâ€: %s" -#: src/readelf.c:13116 +#: src/readelf.c:13525 #, c-format msgid "" "\n" @@ -6438,7 +6466,7 @@ msgstr "" "\n" "Archiwum „%s†nie ma indeksu symboli\n" -#: src/readelf.c:13120 +#: src/readelf.c:13529 #, c-format msgid "" "\n" @@ -6447,12 +6475,12 @@ msgstr "" "\n" "Indeks archiwum „%s†ma %zu wpisów:\n" -#: src/readelf.c:13138 +#: src/readelf.c:13547 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "nie można wydobyć elementów pod offsetem %zu w „%sâ€: %s" -#: src/readelf.c:13143 +#: src/readelf.c:13552 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Element archiwum „%s†zawiera:\n" @@ -6960,7 +6988,7 @@ msgstr "%s: bÅ‚Ä…d podczas aktualizowania nagłówka ELF: %s" msgid "%s: error while getting shdrstrndx: %s" msgstr "%s: bÅ‚Ä…d podczas uzyskiwania shdrstrndx: %s" -#: src/strip.c:1712 src/strip.c:2553 +#: src/strip.c:1712 src/strip.c:2552 #, c-format msgid "%s: error updating shdrstrndx: %s" msgstr "%s: bÅ‚Ä…d podczas aktualizowania shdrstrndx: %s" @@ -6994,7 +7022,7 @@ msgstr "brak pamiÄ™ci do utworzenia tabeli ciÄ…gów nagłówka sekcji" msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "Nie można usunąć symbolu [%zd] z przydzielonej tabeli symboli [%zd]" -#: src/strip.c:2469 src/strip.c:2577 +#: src/strip.c:2469 src/strip.c:2574 #, c-format msgid "while writing '%s': %s" msgstr "podczas zapisywania „%sâ€: %s" @@ -7014,22 +7042,22 @@ msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania" msgid "%s: error while creating ELF header: %s" msgstr "%s: bÅ‚Ä…d podczas tworzenia nagłówka ELF: %s" -#: src/strip.c:2562 +#: src/strip.c:2560 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" -#: src/strip.c:2602 src/strip.c:2622 +#: src/strip.c:2599 src/strip.c:2619 #, c-format msgid "while writing '%s'" msgstr "podczas zapisywania „%sâ€" -#: src/strip.c:2659 src/strip.c:2666 +#: src/strip.c:2656 src/strip.c:2663 #, c-format msgid "error while finishing '%s': %s" msgstr "bÅ‚Ä…d podczas koÅ„czenia „%sâ€: %s" -#: src/strip.c:2683 src/strip.c:2759 +#: src/strip.c:2680 src/strip.c:2756 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "nie można ustawić czasu dostÄ™pu i modyfikacji „%sâ€" @@ -7527,7 +7555,7 @@ msgstr "" "source IDENTYFIKATOR-KOPII /NAZWA-PLIKU\n" "source ÅšCIEÅ»KA /NAZWA-PLIKU\n" -#: tests/backtrace.c:483 +#: tests/backtrace.c:491 msgid "Run executable" msgstr "Uruchamia plik wykonywalny" @@ -7540,6 +7568,11 @@ msgid "Show instances of inlined functions" msgstr "WyÅ›wietla wystÄ…pienia wstawionych funkcji" #, c-format +#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" +#~ msgstr "" +#~ "sekcja [%2d] „%sâ€: rozmiar wpisu sekcji nie zgadza siÄ™ z ElfXX_Rela\n" + +#, c-format #~ msgid "cannot get .debug_addr section data: %s" #~ msgstr "nie można uzyskać danych sekcji .debug_addr: %s" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-03-03 16:09+0100\n" +"POT-Creation-Date: 2023-11-03 17:36+0100\n" "PO-Revision-Date: 2020-03-28 14:59+0200\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n" @@ -53,7 +53,7 @@ msgstr "" "початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних " "гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n" -#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793 +#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202 #: src/unstrip.c:311 #, c-format msgid "memory exhausted" @@ -541,7 +541,7 @@ msgstr "Ðемає Ñервера" #: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79 #: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 -#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81 +#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81 msgid "<unknown>" msgstr "<невідомо>" @@ -635,7 +635,7 @@ msgstr "некоректна розмірніÑÑ‚ÑŒ вхідного парамРmsgid "invalid size of destination operand" msgstr "некоректна розмірніÑÑ‚ÑŒ вихідного параметра" -#: libelf/elf_error.c:86 src/readelf.c:6415 +#: libelf/elf_error.c:86 src/readelf.c:6758 #, c-format msgid "invalid encoding" msgstr "некоректне кодуваннÑ" @@ -720,8 +720,8 @@ msgstr "невідповідніÑÑ‚ÑŒ полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899 -#: src/readelf.c:11000 src/readelf.c:11188 +#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242 +#: src/readelf.c:11343 src/readelf.c:11531 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -1384,8 +1384,8 @@ msgid "Suppress some error output (counterpart to --verbose)" msgstr "" #. Strings for arguments in help texts. -#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76 -#: src/readelf.c:160 +#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77 +#: src/readelf.c:161 msgid "FILE..." msgstr "ФÐЙЛ..." @@ -1674,21 +1674,21 @@ msgid "unknown compression type '%s'" msgstr "невідомий тип ÑтиÑÐ½ÐµÐ½Ð½Ñ Â«%s»" #. We need at least one input file. -#: src/elfcompress.c:162 src/elfcompress.c:1444 +#: src/elfcompress.c:162 src/elfcompress.c:1447 #, c-format msgid "No input file given" msgstr "Ðе надано файла вхідних даних" -#: src/elfcompress.c:168 src/elfcompress.c:1448 +#: src/elfcompress.c:168 src/elfcompress.c:1451 #, c-format msgid "Only one input file allowed together with '-o'" msgstr "З параметром «-o» можна викориÑтовувати лише один файл вхідних даних" -#: src/elfcompress.c:1405 +#: src/elfcompress.c:1408 msgid "Place (de)compressed output into FILE" msgstr "ПоміÑтити результати Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð¾ ФÐЙЛа" -#: src/elfcompress.c:1408 +#: src/elfcompress.c:1411 #, fuzzy #| msgid "" #| "What type of compression to apply. TYPE can be 'none' (decompress), " @@ -1705,7 +1705,7 @@ msgstr "" "назва — «zlib-gabi») або «zlib-gnu» (ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ Ñтилі GNU .zdebug, інша " "назва — «gnu»)" -#: src/elfcompress.c:1412 +#: src/elfcompress.c:1415 msgid "" "SECTION name to (de)compress, SECTION is an extended wildcard pattern " "(defaults to '.?(z)debug*')" @@ -1713,12 +1713,12 @@ msgstr "" "назва РОЗДІЛу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑканнÑ, РОЗДІЛ Ñ” розширеним взірцем із " "замінниками (типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ -- «.?(z)debug*»)" -#: src/elfcompress.c:1415 +#: src/elfcompress.c:1418 msgid "Print a message for each section being (de)compressed" msgstr "" "ВивеÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ розділу, Ñкий розпаковуєтьÑÑ Ñ‡Ð¸ ÑтиÑкаєтьÑÑ" -#: src/elfcompress.c:1418 +#: src/elfcompress.c:1421 msgid "" "Force compression of section even if it would become larger or update/" "rewrite the file even if no section would be (de)compressed" @@ -1726,32 +1726,32 @@ msgstr "" "ПримуÑове ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, навіть Ñкщо він Ñтане більшим, або Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð¸ " "Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°, навіть Ñкщо жодного розділу не буде розпаковано або ÑтиÑнено" -#: src/elfcompress.c:1421 src/strip.c:92 +#: src/elfcompress.c:1424 src/strip.c:92 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "" "Знехтувати декількома правилами Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ трохи пошкоджених файлів ELF" -#: src/elfcompress.c:1424 +#: src/elfcompress.c:1427 msgid "Be silent when a section cannot be compressed" msgstr "Ðе Ñповіщати, Ñкщо розділ неможливо ÑтиÑнути" -#: src/elfcompress.c:1434 +#: src/elfcompress.c:1437 msgid "Compress or decompress sections in an ELF file." msgstr "СтиÑнути або розпакувати розділи у файлі ELF." -#: src/elflint.c:62 +#: src/elflint.c:63 msgid "Be extremely strict, flag level 2 features." msgstr "ВиÑока ÑтрогіÑÑ‚ÑŒ, увімкнути можливоÑÑ‚Ñ– Ñ€Ñ–Ð²Ð½Ñ 2." -#: src/elflint.c:63 +#: src/elflint.c:64 msgid "Do not print anything if successful" msgstr "Ðе виводити ніÑких даних у разі уÑпіху" -#: src/elflint.c:64 +#: src/elflint.c:65 msgid "Binary is a separate debuginfo file" msgstr "Бінарний файл Ñ” окремим файлом debuginfo" -#: src/elflint.c:66 +#: src/elflint.c:67 msgid "" "Binary has been created with GNU ld and is therefore known to be broken in " "certain ways" @@ -1760,173 +1760,173 @@ msgstr "" "певної міри неправильним" #. Short description of program. -#: src/elflint.c:72 +#: src/elflint.c:73 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" "Педантична перевірка файлів ELF на ÑуміÑніÑÑ‚ÑŒ зі ÑпецифікаціÑми gABI/psABI." -#: src/elflint.c:153 src/readelf.c:391 +#: src/elflint.c:154 src/readelf.c:413 #, c-format msgid "cannot open input file '%s'" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ вхідний файл «%s»" -#: src/elflint.c:160 +#: src/elflint.c:161 #, c-format msgid "cannot generate Elf descriptor for '%s': %s\n" msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf Ð´Ð»Ñ Â«%s»: %s\n" -#: src/elflint.c:179 +#: src/elflint.c:180 #, c-format msgid "error while closing Elf descriptor: %s\n" msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s\n" -#: src/elflint.c:183 +#: src/elflint.c:184 msgid "No errors" msgstr "Без помилок" -#: src/elflint.c:218 src/readelf.c:603 +#: src/elflint.c:219 src/readelf.c:625 msgid "Missing file name.\n" msgstr "Ðе вказано назви файла.\n" -#: src/elflint.c:283 +#: src/elflint.c:284 #, c-format msgid " error while freeing sub-ELF descriptor: %s\n" msgstr " помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора Ñуб-ELF: %s\n" #. We cannot do anything. -#: src/elflint.c:291 +#: src/elflint.c:292 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "Ðе Ñ” файлом ELF. ВиÑвлено помилкові магічні байти на початку файла\n" -#: src/elflint.c:357 +#: src/elflint.c:358 #, c-format msgid "e_ident[%d] == %d is no known class\n" msgstr "e_ident[%d] == %d не Ñ” відомим клаÑом\n" -#: src/elflint.c:362 +#: src/elflint.c:363 #, c-format msgid "e_ident[%d] == %d is no known data encoding\n" msgstr "e_ident[%d] == %d не Ñ” відомим кодуваннÑм даних\n" -#: src/elflint.c:366 +#: src/elflint.c:367 #, c-format msgid "unknown ELF header version number e_ident[%d] == %d\n" msgstr "невідомий номер верÑÑ–Ñ— заголовка ELF e_ident[%d] == %d\n" -#: src/elflint.c:374 +#: src/elflint.c:375 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" msgstr "непідтримуване ABI ОС e_ident[%d] == «%s»\n" -#: src/elflint.c:380 +#: src/elflint.c:381 #, c-format msgid "unsupported ABI version e_ident[%d] == %d\n" msgstr "непідтримувана верÑÑ–Ñ ABI e_ident[%d] == %d\n" -#: src/elflint.c:385 +#: src/elflint.c:386 #, c-format msgid "e_ident[%zu] is not zero\n" msgstr "e_ident[%zu] не дорівнює нулеві\n" -#: src/elflint.c:390 +#: src/elflint.c:391 #, c-format msgid "unknown object file type %d\n" msgstr "невідомий тип об’єктних файлів %d\n" -#: src/elflint.c:397 +#: src/elflint.c:398 #, c-format msgid "unknown machine type %d\n" msgstr "невідомий тип архітектури %d\n" -#: src/elflint.c:401 +#: src/elflint.c:402 #, c-format msgid "unknown object file version\n" msgstr "невідома верÑÑ–Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлів\n" -#: src/elflint.c:407 +#: src/elflint.c:408 #, c-format msgid "invalid program header offset\n" msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми\n" -#: src/elflint.c:409 +#: src/elflint.c:410 #, c-format msgid "executables and DSOs cannot have zero program header offset\n" msgstr "" "виконувані файли Ñ– DSO не можуть міÑтити заголовка програми з нульовим " "зміщеннÑм\n" -#: src/elflint.c:413 +#: src/elflint.c:414 #, c-format msgid "invalid number of program header entries\n" msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів заголовків програми\n" -#: src/elflint.c:421 +#: src/elflint.c:422 #, c-format msgid "invalid section header table offset\n" msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– заголовків розділів\n" -#: src/elflint.c:424 +#: src/elflint.c:425 #, c-format msgid "section header table must be present\n" msgstr "має бути вказано таблицю заголовків розділів\n" -#: src/elflint.c:438 +#: src/elflint.c:439 #, c-format msgid "invalid number of section header table entries\n" msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків розділів\n" -#: src/elflint.c:455 +#: src/elflint.c:456 #, c-format msgid "invalid section header index\n" msgstr "некоректний Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу\n" -#: src/elflint.c:473 +#: src/elflint.c:474 #, c-format msgid "Can only check %u headers, shnum was %u\n" msgstr "Можна перевірити лише %u заголовків, значеннÑм же shnum було %u\n" -#: src/elflint.c:487 +#: src/elflint.c:488 #, c-format msgid "invalid number of program header table entries\n" msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків програми\n" -#: src/elflint.c:504 +#: src/elflint.c:505 #, c-format msgid "Can only check %u headers, phnum was %u\n" msgstr "Можна перевірити лише %u заголовків, значеннÑм же phnum було %u\n" -#: src/elflint.c:509 +#: src/elflint.c:510 #, c-format msgid "invalid machine flags: %s\n" msgstr "некоректні прапорці архітектури: %s\n" -#: src/elflint.c:516 src/elflint.c:533 +#: src/elflint.c:517 src/elflint.c:534 #, c-format msgid "invalid ELF header size: %hd\n" msgstr "некоректний розмір заголовка ELF: %hd\n" -#: src/elflint.c:519 src/elflint.c:536 +#: src/elflint.c:520 src/elflint.c:537 #, c-format msgid "invalid program header size: %hd\n" msgstr "некоректний розмір заголовка програми: %hd\n" -#: src/elflint.c:522 src/elflint.c:539 +#: src/elflint.c:523 src/elflint.c:540 #, c-format msgid "invalid program header position or size\n" msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка програми\n" -#: src/elflint.c:525 src/elflint.c:542 +#: src/elflint.c:526 src/elflint.c:543 #, c-format msgid "invalid section header size: %hd\n" msgstr "некоректний розмір заголовка розділу: %hd\n" -#: src/elflint.c:528 src/elflint.c:545 +#: src/elflint.c:529 src/elflint.c:546 #, c-format msgid "invalid section header position or size\n" msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка розділу\n" -#: src/elflint.c:590 +#: src/elflint.c:591 #, c-format msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " @@ -1935,7 +1935,7 @@ msgstr "" "розділ [%2d] «%s»: розділ з вÑтановленим прапорцем SHF_GROUP не Ñ” чаÑтиною " "групи розділів\n" -#: src/elflint.c:594 +#: src/elflint.c:595 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" @@ -1943,14 +1943,14 @@ msgstr "" "розділ [%2d] «%s»: групу розділів [%2zu] «%s» мало бути визначено до розділу-" "елемента цієї групи\n" -#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 -#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106 -#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4468 +#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610 +#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981 +#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу\n" -#: src/elflint.c:623 src/elflint.c:1662 +#: src/elflint.c:624 src/elflint.c:1699 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1959,7 +1959,7 @@ msgstr "" "розділ [%2d] «%s»: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», " "але типом даних не Ñ” SHT_STRTAB\n" -#: src/elflint.c:646 +#: src/elflint.c:647 #, c-format msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " @@ -1968,12 +1968,12 @@ msgstr "" "розділ [%2d] «%s»: у таблиці Ñимволів не може бути більше одного розширеного " "розділу покажчика\n" -#: src/elflint.c:658 +#: src/elflint.c:659 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" msgstr "розділ [%2u] «%s»: розмірніÑÑ‚ÑŒ запиÑу не відповідає ElfXX_Sym\n" -#: src/elflint.c:662 +#: src/elflint.c:663 #, c-format msgid "" "section [%2u] '%s': number of local entries in 'st_info' larger than table " @@ -1982,33 +1982,33 @@ msgstr "" "розділ [%2u] «%s»: кількіÑÑ‚ÑŒ локальних запиÑів у «st_info» перевищує розмір " "таблиці\n" -#: src/elflint.c:671 +#: src/elflint.c:672 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол %d: %s\n" -#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685 -#: src/elflint.c:688 src/elflint.c:691 +#: src/elflint.c:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686 +#: src/elflint.c:689 src/elflint.c:692 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "розділ [%2d] «%s»: «%s» у нульовому запиÑÑ– не Ñ” нулем\n" -#: src/elflint.c:694 +#: src/elflint.c:695 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" msgstr "розділ [%2d] «%s»: XINDEX Ð´Ð»Ñ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ запиÑу не Ñ” нулем\n" -#: src/elflint.c:704 +#: src/elflint.c:705 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол %zu: %s\n" -#: src/elflint.c:713 +#: src/elflint.c:714 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸\n" -#: src/elflint.c:728 +#: src/elflint.c:729 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): too large section index but no extended " @@ -2017,7 +2017,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: занадто великий покажчик розділу за умови, що " "не визначено розділу розширеного покажчика розділів\n" -#: src/elflint.c:734 +#: src/elflint.c:735 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit " @@ -2027,29 +2027,29 @@ msgstr "" "відповідає st_shndx (%<PRIu32>)\n" #. || sym->st_shndx > SHN_HIRESERVE always false -#: src/elflint.c:746 +#: src/elflint.c:747 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n" -#: src/elflint.c:754 +#: src/elflint.c:755 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідомий тип\n" -#: src/elflint.c:760 +#: src/elflint.c:761 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідома прив’Ñзка Ñимволу\n" -#: src/elflint.c:765 +#: src/elflint.c:766 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n" msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: унікальний Ñимвол, що не належить до типу " "об’єктів\n" -#: src/elflint.c:773 +#: src/elflint.c:774 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable " @@ -2058,7 +2058,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: COMMON можна викориÑтовувати лише у файлах, " "придатних до переÑуваннÑ\n" -#: src/elflint.c:777 +#: src/elflint.c:778 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n" @@ -2066,7 +2066,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів COMMON " "позбавлене ÑенÑу\n" -#: src/elflint.c:781 +#: src/elflint.c:782 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n" @@ -2074,13 +2074,13 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— у розділі COMMON " "позбавлене ÑенÑу\n" -#: src/elflint.c:832 +#: src/elflint.c:833 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n" msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value поза можливим діапазоном\n" -#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912 +#: src/elflint.c:839 src/elflint.c:864 src/elflint.c:913 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced " @@ -2089,7 +2089,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu не повніÑÑ‚ÑŽ відповідає розділу, на Ñкий " "поÑилаєтьÑÑ, [%2d] «%s»\n" -#: src/elflint.c:847 +#: src/elflint.c:848 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not " @@ -2098,7 +2098,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ поÑÐ¸Ð»Ð°Ð½Ð½Ñ [%2d] «%s» не " "вÑтановлено прапорець SHF_TLS\n" -#: src/elflint.c:857 src/elflint.c:905 +#: src/elflint.c:858 src/elflint.c:906 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced " @@ -2107,7 +2107,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value поза межами розділу " "поÑиланнÑ, [%2d] «%s»\n" -#: src/elflint.c:884 +#: src/elflint.c:885 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header " @@ -2115,7 +2115,7 @@ msgid "" msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ñимвол TLS без запиÑу заголовка програми TLS\n" -#: src/elflint.c:890 +#: src/elflint.c:891 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program " @@ -2124,7 +2124,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: маємо Ñимвол TLS, але не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ " "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми TLS\n" -#: src/elflint.c:898 +#: src/elflint.c:899 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): st_value short of referenced section " @@ -2133,7 +2133,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value перед розділом поÑиланнÑ, " "[%2d] «%s»\n" -#: src/elflint.c:925 +#: src/elflint.c:926 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): local symbol outside range described in " @@ -2142,7 +2142,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано локальний Ñимвол поза " "діапазоном\n" -#: src/elflint.c:932 +#: src/elflint.c:933 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): non-local symbol outside range " @@ -2151,12 +2151,12 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано нелокальний Ñимвол поза " "діапазоном\n" -#: src/elflint.c:939 +#: src/elflint.c:940 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: нелокальний Ñимвол розділу\n" -#: src/elflint.c:989 +#: src/elflint.c:990 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -2165,7 +2165,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол _GLOBAL_OFFSET_TABLE_ поÑилаєтьÑÑ Ð½Ð° помилковий " "розділ, [%2d]\n" -#: src/elflint.c:996 +#: src/elflint.c:997 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -2177,7 +2177,7 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:1012 +#: src/elflint.c:1013 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " @@ -2186,7 +2186,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _GLOBAL_OFFSET_TABLE_ %#<PRIx64> не " "відповідає адреÑÑ– розділу %s %#<PRIx64>\n" -#: src/elflint.c:1019 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " @@ -2195,7 +2195,7 @@ msgstr "" "розділ [%2d] «%s»: розмір Ñимволу _GLOBAL_OFFSET_TABLE_ %<PRIu64> не " "відповідає розміру розділу %s %<PRIu64>\n" -#: src/elflint.c:1027 +#: src/elflint.c:1028 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -2204,7 +2204,7 @@ msgstr "" "розділ [%2d] «%s»: виÑвлено Ñимвол _GLOBAL_OFFSET_TABLE_, але не виÑвлено " "розділу .got\n" -#: src/elflint.c:1043 +#: src/elflint.c:1044 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " @@ -2213,7 +2213,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _DYNAMIC_ %#<PRIx64> не відповідає " "адреÑÑ– динамічного Ñегмента %#<PRIx64>\n" -#: src/elflint.c:1050 +#: src/elflint.c:1051 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " @@ -2222,7 +2222,7 @@ msgstr "" "розділ [%2d] «%s»: розмір Ñимволу _DYNAMIC %<PRIu64> не відповідає розміру " "динамічного Ñегмента %<PRIu64>\n" -#: src/elflint.c:1063 +#: src/elflint.c:1064 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-" @@ -2231,29 +2231,29 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %zu: Ñимвол у динамічній таблиці Ñимволів з " "нетиповою видиміÑÑ‚ÑŽ\n" -#: src/elflint.c:1067 +#: src/elflint.c:1068 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n" msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідомий набір бітів у st_other\n" -#: src/elflint.c:1105 +#: src/elflint.c:1106 #, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу.\n" -#: src/elflint.c:1121 +#: src/elflint.c:1122 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу RELA викориÑтано DT_RELCOUNT\n" -#: src/elflint.c:1132 src/elflint.c:1185 +#: src/elflint.c:1133 src/elflint.c:1186 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ DT_RELCOUNT %d Ñ” занадто виÑоким Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ " "розділу\n" -#: src/elflint.c:1157 src/elflint.c:1210 +#: src/elflint.c:1158 src/elflint.c:1211 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -2262,7 +2262,7 @@ msgstr "" "розділ [%2d] «%s»: відноÑні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ— %d, вказаної за " "допомогою DT_RELCOUNT\n" -#: src/elflint.c:1163 src/elflint.c:1216 +#: src/elflint.c:1164 src/elflint.c:1217 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -2271,27 +2271,27 @@ msgstr "" "розділ [%2d] «%s»: безвідноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° позиції %zu; DT_RELCOUNT " "визначено %d відноÑних переÑуваннÑ\n" -#: src/elflint.c:1175 +#: src/elflint.c:1176 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу REL викориÑтано DT_RELACOUNT\n" -#: src/elflint.c:1258 +#: src/elflint.c:1259 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ призначеннÑ\n" -#: src/elflint.c:1270 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "розділ [%2d] «%s»: некоректний тип розділу призначеннÑ\n" -#: src/elflint.c:1278 +#: src/elflint.c:1279 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "розділ [%2d] «%s»: sh_info має бути нульовим\n" -#: src/elflint.c:1286 +#: src/elflint.c:1287 #, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" @@ -2299,25 +2299,19 @@ msgstr "" "розділ [%2d] «%s»: неможливі переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ñ€Ñдків, Ñкі непридатні " "до об'єднаннÑ\n" -#: src/elflint.c:1294 -#, c-format -msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "" -"розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Rela\n" - -#: src/elflint.c:1354 +#: src/elflint.c:1365 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, але Ñегмент придатний лише до " "читаннÑ\n" -#: src/elflint.c:1381 +#: src/elflint.c:1392 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип\n" -#: src/elflint.c:1389 +#: src/elflint.c:1400 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -2326,12 +2320,12 @@ msgstr "" "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ " "файла\n" -#: src/elflint.c:1397 +#: src/elflint.c:1408 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу\n" -#: src/elflint.c:1415 +#: src/elflint.c:1426 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -2340,12 +2334,12 @@ msgstr "" "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: з %s можна викориÑтовувати лише Ñимвол " "«_GLOBAL_OFFSET_TABLE_»\n" -#: src/elflint.c:1432 +#: src/elflint.c:1443 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° межі діапазону\n" -#: src/elflint.c:1447 +#: src/elflint.c:1458 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -2354,7 +2348,7 @@ msgstr "" "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñимволу типу " "%s\n" -#: src/elflint.c:1468 +#: src/elflint.c:1479 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -2363,22 +2357,22 @@ msgstr "" "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: змінено придатний лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ " "розділ, але не вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту\n" -#: src/elflint.c:1483 +#: src/elflint.c:1494 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð¸Ñ… Ñ– незавантажених даних\n" -#: src/elflint.c:1523 src/elflint.c:1574 +#: src/elflint.c:1534 src/elflint.c:1585 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: %s\n" -#: src/elflint.c:1650 +#: src/elflint.c:1687 #, c-format msgid "more than one dynamic section present\n" msgstr "вказано більше одного динамічного розділу\n" -#: src/elflint.c:1668 +#: src/elflint.c:1705 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -2387,46 +2381,46 @@ msgstr "" "розділ [%2d]: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», але " "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ Ñ” некоректним\n" -#: src/elflint.c:1676 +#: src/elflint.c:1713 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Dyn\n" -#: src/elflint.c:1681 src/elflint.c:1970 +#: src/elflint.c:1718 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "розділ [%2d] «%s»: sh_info не Ñ” нульовим\n" -#: src/elflint.c:1691 +#: src/elflint.c:1728 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ розділу %zu: %s\n" -#: src/elflint.c:1699 +#: src/elflint.c:1736 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" "розділ [%2d] «%s»: за запиÑом DT_NULL вказано запиÑи, що не належать до " "DT_NULL\n" -#: src/elflint.c:1706 +#: src/elflint.c:1743 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: невідома мітка\n" -#: src/elflint.c:1717 +#: src/elflint.c:1754 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: декілька запиÑів з міткою %s\n" -#: src/elflint.c:1727 +#: src/elflint.c:1764 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: викориÑтано мітку Ñ€Ñ–Ð²Ð½Ñ 2 %s\n" -#: src/elflint.c:1745 +#: src/elflint.c:1782 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -2434,7 +2428,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм DT_PLTREL має бути DT_REL або " "DT_RELA\n" -#: src/elflint.c:1758 +#: src/elflint.c:1795 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -2443,7 +2437,7 @@ msgstr "" "розділ [%2d] «%s»: розділ %zu: вказівник не відповідає адреÑÑ– розділу [%2d] " "«%s», на Ñку поÑилаєтьÑÑ sh_link\n" -#: src/elflint.c:1801 +#: src/elflint.c:1839 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" @@ -2451,7 +2445,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s має вказувати на завантажений " "Ñегмент\n" -#: src/elflint.c:1816 +#: src/elflint.c:1854 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -2460,48 +2454,48 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм %s має бути коректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ " "розділі [%2d] «%s»\n" -#: src/elflint.c:1836 src/elflint.c:1864 +#: src/elflint.c:1874 src/elflint.c:1902 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "розділ [%2d] «%s»: міÑтить Ð·Ð°Ð¿Ð¸Ñ %s, але не %s\n" -#: src/elflint.c:1848 +#: src/elflint.c:1886 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "розділ [%2d] «%s»: немає обов’Ñзкової мітки %s\n" -#: src/elflint.c:1857 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "розділ [%2d] «%s»: не виÑвлено розділу хешів\n" -#: src/elflint.c:1872 src/elflint.c:1879 +#: src/elflint.c:1910 src/elflint.c:1917 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "розділ [%2d] «%s»: вказано не вÑÑ– зі значень %s, %s Ñ– %s\n" -#: src/elflint.c:1889 src/elflint.c:1893 +#: src/elflint.c:1927 src/elflint.c:1931 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "розділ [%2d] «%s»: у DSO, позначеному на кроці попереднього компонуваннÑ, " "немає мітки %s\n" -#: src/elflint.c:1899 +#: src/elflint.c:1937 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "розділ [%2d] «%s»: під Ñ‡Ð°Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñк залежніÑÑ‚ÑŒ позначено " "файл, Ñкий не Ñ” файлом DSO\n" -#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922 +#: src/elflint.c:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" "розділ [%2d] «%s»: у попередньо Ñкомпонованому виконуваному файлі не " "міÑтитьÑÑ Ð¼Ñ–Ñ‚ÐºÐ¸ %s\n" -#: src/elflint.c:1934 +#: src/elflint.c:1972 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2509,7 +2503,7 @@ msgstr "" "розділ [%2d] «%s»: розширений розділ покажчика можуть мати лише файли, " "придатні до переÑуваннÑ\n" -#: src/elflint.c:1944 +#: src/elflint.c:1982 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" @@ -2517,29 +2511,29 @@ msgstr "" "розділ [%2d] «%s»: розділ розширеного покажчика розділів не призначено Ð´Ð»Ñ " "таблиць Ñимволів\n" -#: src/elflint.c:1948 +#: src/elflint.c:1986 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу sh_link [%2d] Ñ” некоректним\n" -#: src/elflint.c:1953 +#: src/elflint.c:1991 #, c-format msgid "cannot get data for symbol section\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів\n" -#: src/elflint.c:1956 +#: src/elflint.c:1994 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу не відповідає Elf32_Word\n" -#: src/elflint.c:1965 +#: src/elflint.c:2003 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "розділ [%2d] «%s»: розширена Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° замала Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів\n" -#: src/elflint.c:1980 +#: src/elflint.c:2018 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2548,24 +2542,24 @@ msgstr "" "розділ [%2d] «%s»: розширений покажчик розділів у розділі [%2zu] «%s» " "поÑилаєтьÑÑ Ð½Ð° ту Ñаму таблицю розділів\n" -#: src/elflint.c:1998 +#: src/elflint.c:2036 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "Ñимволу 0 має відповідати нульовий Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу\n" -#: src/elflint.c:2010 +#: src/elflint.c:2048 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñимволу %zu\n" -#: src/elflint.c:2015 +#: src/elflint.c:2053 #, c-format msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n" msgstr "" "Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу дорівнює %<PRIu32>, але Ñ–Ð½Ð´ÐµÐºÑ Ñимволу не Ñ” " "XINDEX\n" -#: src/elflint.c:2032 src/elflint.c:2089 +#: src/elflint.c:2070 src/elflint.c:2127 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2573,43 +2567,43 @@ msgstr "" "розділ [%2d] «%s»: розділ таблиці хешів занадто малий (розмір %ld, мало бути " "— %ld)\n" -#: src/elflint.c:2046 src/elflint.c:2103 +#: src/elflint.c:2084 src/elflint.c:2141 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "розділ [%2d] «%s»: маÑив ланцюжка занадто великий\n" -#: src/elflint.c:2060 src/elflint.c:2117 +#: src/elflint.c:2098 src/elflint.c:2155 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° хеш блоку %zu лежить поза межами діапазону\n" -#: src/elflint.c:2070 +#: src/elflint.c:2108 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ° хешів %zu лежить поза межами " "діапазону\n" -#: src/elflint.c:2127 +#: src/elflint.c:2165 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" "розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ° хешів %<PRIu64> лежить поза межами " "діапазону\n" -#: src/elflint.c:2140 +#: src/elflint.c:2178 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "розділ [%2d] «%s»: недоÑтатньо даних\n" -#: src/elflint.c:2152 +#: src/elflint.c:2190 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" "розділ [%2d] «%s»: розмір бітової маÑки Ñ” нульовим або не Ñ” Ñтепенем 2: %u\n" -#: src/elflint.c:2168 +#: src/elflint.c:2206 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2618,12 +2612,12 @@ msgstr "" "розділ [%2d] «%s»: розділ таблиці хешів Ñ” надто малим (маємо %ld, мало бути " "принаймні %ld)\n" -#: src/elflint.c:2177 +#: src/elflint.c:2215 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "розділ [%2d] «%s»: зÑув 2-ої функції Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ великий: %u\n" -#: src/elflint.c:2211 +#: src/elflint.c:2249 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2631,7 +2625,7 @@ msgstr "" "розділ [%2d] '%s': ланцюжок хешів Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu розташовано нижче за позицію " "Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу Ñимволу\n" -#: src/elflint.c:2232 +#: src/elflint.c:2270 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2640,7 +2634,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %u, на Ñкий поÑилаєтьÑÑ Ð»Ð°Ð½Ñ†ÑŽÐ¶Ð¾Ðº у блоці %zu не " "визначено\n" -#: src/elflint.c:2245 +#: src/elflint.c:2283 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2648,7 +2642,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ…ÐµÑˆÑƒ Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” " "помилковим\n" -#: src/elflint.c:2254 +#: src/elflint.c:2292 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2656,14 +2650,14 @@ msgstr "" "розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð°Ñки Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” " "помилковим\n" -#: src/elflint.c:2284 +#: src/elflint.c:2322 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: ланцюжок хешів Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu лежить поза межами " "діапазону\n" -#: src/elflint.c:2289 +#: src/elflint.c:2327 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2671,43 +2665,43 @@ msgstr "" "розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu лежить поза " "межами діапазону\n" -#: src/elflint.c:2295 +#: src/elflint.c:2333 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "розділ [%2d] «%s»: бітова маÑка не відповідає назвам у таблиці хешів\n" -#: src/elflint.c:2308 +#: src/elflint.c:2346 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "розділ [%2d] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити таблиць " "хешів\n" -#: src/elflint.c:2326 +#: src/elflint.c:2364 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "розділ [%2d] «%s»: таблицю хешів не призначено Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– " "динамічних Ñимволів\n" -#: src/elflint.c:2330 +#: src/elflint.c:2368 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ таблиці Ñимволів sh_link " "[%2d]\n" -#: src/elflint.c:2340 +#: src/elflint.c:2378 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу таблиці хешів Ñ” некоректною\n" -#: src/elflint.c:2345 +#: src/elflint.c:2383 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "розділ [%2d] «%s»: не позначено Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ\n" -#: src/elflint.c:2350 +#: src/elflint.c:2388 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2716,27 +2710,27 @@ msgstr "" "розділ [%2d] «%s»: у таблиці хешів виÑвлено незвичайне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ " "початкових адмініÑтративних запиÑів\n" -#: src/elflint.c:2399 +#: src/elflint.c:2437 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "sh_link у розділах хешів [%2zu] «%s» Ñ– [%2zu] «%s» не збігаютьÑÑ\n" -#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523 +#: src/elflint.c:2461 src/elflint.c:2526 src/elflint.c:2561 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "розділ хешу [%2zu] «%s» міÑтить недоÑтатньо даних\n" -#: src/elflint.c:2444 +#: src/elflint.c:2482 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "розділ хешу [%2zu] «%s» міÑтить нульові Ñлова бітової маÑки\n" -#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536 +#: src/elflint.c:2493 src/elflint.c:2537 src/elflint.c:2574 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "розділ хешу [%2zu] «%s» викориÑтовує надто багато даних\n" -#: src/elflint.c:2470 +#: src/elflint.c:2508 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: " @@ -2745,17 +2739,17 @@ msgstr "" "розділ хешу [%2zu] «%s» некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %<PRIu32> (макÑ. к-Ñ‚ÑŒ " "Ñимволів: %<PRIu32>, кількіÑÑ‚ÑŒ запиÑів: %<PRIu32>\n" -#: src/elflint.c:2557 +#: src/elflint.c:2595 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "розділ хешу [%2zu] «%s» некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_entsize\n" -#: src/elflint.c:2567 src/elflint.c:2571 +#: src/elflint.c:2605 src/elflint.c:2609 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "розділ [%2zu] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñ–Ð½Ð´ÐµÐºÑ Ñимволів 0\n" -#: src/elflint.c:2578 +#: src/elflint.c:2616 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2764,7 +2758,7 @@ msgstr "" "виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у новій таблиці хешів у [%2zu] «%s», але " "його немає у Ñтарій таблиці хешів у [%2zu] «%s»\n" -#: src/elflint.c:2590 +#: src/elflint.c:2628 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2773,12 +2767,12 @@ msgstr "" "виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у Ñтарій таблиці хешів у [%2zu] «%s», але " "його немає у новій таблиці хешів у [%2zu] «%s»\n" -#: src/elflint.c:2606 +#: src/elflint.c:2644 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "розділ [%2d] «%s»: ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_%s Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ NULL\n" -#: src/elflint.c:2626 +#: src/elflint.c:2664 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2786,95 +2780,95 @@ msgstr "" "розділ [%2d] «%s»: групи розділів передбачено лише Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… до " "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлах\n" -#: src/elflint.c:2637 +#: src/elflint.c:2675 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ таблицю Ñимволів: %s\n" -#: src/elflint.c:2642 +#: src/elflint.c:2680 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у sh_link не має таблиці Ñимволів\n" -#: src/elflint.c:2648 +#: src/elflint.c:2686 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу у sh_info\n" -#: src/elflint.c:2653 +#: src/elflint.c:2691 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "розділ [%2d] «%s»: sh_flags не Ñ” нульовим\n" -#: src/elflint.c:2660 +#: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n" -#: src/elflint.c:2664 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву Ñимволу Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n" -#: src/elflint.c:2669 +#: src/elflint.c:2707 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "розділ [%2d] «%s»: Ñимвол підпиÑу не може бути порожнім Ñ€Ñдком\n" -#: src/elflint.c:2675 +#: src/elflint.c:2713 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ sh_flags вÑтановлено помилкове значеннÑ\n" -#: src/elflint.c:2681 +#: src/elflint.c:2719 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані: %s\n" -#: src/elflint.c:2690 +#: src/elflint.c:2728 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "розділ [%2d] «%s»: розмір розділу не Ñ” кратним до sizeof(Elf32_Word)\n" -#: src/elflint.c:2696 +#: src/elflint.c:2734 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "розділ [%2d] «%s»: група розділів без Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ word прапорців\n" -#: src/elflint.c:2704 +#: src/elflint.c:2742 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "розділ [%2d] «%s»: група розділів без елементів\n" -#: src/elflint.c:2708 +#: src/elflint.c:2746 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "розділ [%2d] «%s»: група розділів, що міÑтить лише один елемент\n" -#: src/elflint.c:2719 +#: src/elflint.c:2757 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "розділ [%2d] «%s»: невідомі прапорці групи розділів\n" -#: src/elflint.c:2731 +#: src/elflint.c:2769 #, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zu поза межами діапазону\n" -#: src/elflint.c:2740 +#: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу Ð´Ð»Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° %zu: " "%s\n" -#: src/elflint.c:2747 +#: src/elflint.c:2785 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "розділ [%2d] «%s»: група розділів міÑтить іншу групу [%2d] «%s»\n" -#: src/elflint.c:2753 +#: src/elflint.c:2791 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2883,12 +2877,12 @@ msgstr "" "розділ [%2d] «%s»: елемент %zu поÑилаєтьÑÑ Ð½Ð° розділ [%2d] «%s» без " "вÑтановленого Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ SHF_GROUP\n" -#: src/elflint.c:2760 +#: src/elflint.c:2798 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "розділ [%2d] «%s» міÑтитьÑÑ Ñƒ більше ніж одній групі розділів\n" -#: src/elflint.c:2957 +#: src/elflint.c:2995 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2897,7 +2891,7 @@ msgstr "" "розділ [%2d] «%s» поÑилаєтьÑÑ Ñƒ sh_link на розділ [%2d] «%s», Ñкий не має " "динамічної таблиці Ñимволів\n" -#: src/elflint.c:2969 +#: src/elflint.c:3007 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2906,28 +2900,28 @@ msgstr "" "кількіÑÑ‚ÑŒ запиÑів у розділі [%2d] «%s» відрізнÑєтьÑÑ Ð²Ñ–Ð´ кількоÑÑ‚Ñ– у таблиці " "Ñимволів [%2d] «%s»\n" -#: src/elflint.c:2985 +#: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "розділ [%2d] «%s»: Ñимвол %d: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані щодо верÑÑ–Ñ—\n" -#: src/elflint.c:3001 +#: src/elflint.c:3039 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" "розділ [%2d] «%s»: Ñимвол %d: локальний Ñимвол у загальному контекÑÑ‚Ñ–\n" -#: src/elflint.c:3009 +#: src/elflint.c:3047 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "розділ [%2d] «%s»: Ñимвол %d: локальний Ñимвол з верÑією\n" -#: src/elflint.c:3023 +#: src/elflint.c:3061 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "розділ [%2d] «%s»: Ñимвол %d: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ð²ÐµÑ€ÑÑ–Ñ— %d\n" -#: src/elflint.c:3028 +#: src/elflint.c:3066 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" @@ -2935,7 +2929,7 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %d: індекÑи верÑÑ–Ñ— %d призначено до визначеної " "верÑÑ–Ñ—\n" -#: src/elflint.c:3038 +#: src/elflint.c:3076 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" @@ -2943,45 +2937,45 @@ msgstr "" "розділ [%2d] «%s»: Ñимвол %d: Ñ–Ð½Ð´ÐµÐºÑ Ð²ÐµÑ€ÑÑ–Ñ— %d призначено Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ—, на Ñку " "надійшов запит\n" -#: src/elflint.c:3091 +#: src/elflint.c:3129 #, c-format msgid "more than one version reference section present\n" msgstr "виÑвлено більше за один розділ поÑилань на верÑÑ–Ñ—\n" -#: src/elflint.c:3099 src/elflint.c:3246 +#: src/elflint.c:3137 src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "розділ [%2d] «%s»: sh_link не поÑилаєтьÑÑ Ð½Ð° таблицю Ñ€Ñдків\n" -#: src/elflint.c:3124 src/elflint.c:3300 +#: src/elflint.c:3162 src/elflint.c:3338 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має помилкову верÑÑ–ÑŽ %d\n" -#: src/elflint.c:3131 src/elflint.c:3307 +#: src/elflint.c:3169 src/elflint.c:3345 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить помилкове Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ допоміжних даних\n" -#: src/elflint.c:3141 +#: src/elflint.c:3179 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° файл\n" -#: src/elflint.c:3149 +#: src/elflint.c:3187 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d поÑилаєтьÑÑ Ð½Ð° невідому залежніÑÑ‚ÑŒ\n" -#: src/elflint.c:3161 +#: src/elflint.c:3199 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" "розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d позначено невідомим " "прапорцем\n" -#: src/elflint.c:3169 +#: src/elflint.c:3207 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2990,7 +2984,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить некоректне " "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву\n" -#: src/elflint.c:3178 +#: src/elflint.c:3216 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -2999,7 +2993,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " "хешу: %#x, мало бути %#x\n" -#: src/elflint.c:3187 +#: src/elflint.c:3225 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -3008,7 +3002,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить дублікати назви " "верÑÑ–Ñ— «%s»\n" -#: src/elflint.c:3198 +#: src/elflint.c:3236 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" @@ -3016,13 +3010,13 @@ msgstr "" "розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове наÑтупне " "поле\n" -#: src/elflint.c:3215 src/elflint.c:3391 +#: src/elflint.c:3253 src/elflint.c:3429 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ наÑтупного запиÑу\n" -#: src/elflint.c:3223 src/elflint.c:3399 +#: src/elflint.c:3261 src/elflint.c:3437 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -3031,44 +3025,44 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має нульове Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ наÑтупного запиÑу, але " "за sh_info можна зрозуміти, що запиÑів більше\n" -#: src/elflint.c:3238 +#: src/elflint.c:3276 #, c-format msgid "more than one version definition section present\n" msgstr "виÑвлено більше за один розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€Ñій\n" -#: src/elflint.c:3285 +#: src/elflint.c:3323 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "розділ [%2d] «%s»: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n" -#: src/elflint.c:3289 +#: src/elflint.c:3327 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" "розділ [%2d] «%s»: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE повинно мати Ñ–Ð½Ð´ÐµÐºÑ VER_NDX_GLOBAL\n" -#: src/elflint.c:3295 +#: src/elflint.c:3333 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "розділ [%2d] «%s»: невідомий прапорець запиÑу %d\n" -#: src/elflint.c:3322 +#: src/elflint.c:3360 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву\n" -#: src/elflint.c:3329 +#: src/elflint.c:3367 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ…ÐµÑˆÑƒ: %#x, мало бути %#x\n" -#: src/elflint.c:3337 +#: src/elflint.c:3375 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить дублікати назви верÑÑ–Ñ— «%s»\n" -#: src/elflint.c:3357 +#: src/elflint.c:3395 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -3076,53 +3070,53 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву у " "допоміжних даних\n" -#: src/elflint.c:3374 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "розділ [%2d] «%s»: у допоміжних даних запиÑу %d міÑтитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ поле " "наÑтупного запиÑу\n" -#: src/elflint.c:3407 +#: src/elflint.c:3445 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "розділ [%2d] «%s»: немає Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n" -#: src/elflint.c:3423 +#: src/elflint.c:3461 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "розділ [%2d] «%s»: невідома оÑновна верÑÑ–Ñ Â«%s»\n" -#: src/elflint.c:3448 +#: src/elflint.c:3486 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "розділ [%2d] «%s»: порожній розділ атрибутів об’єкта\n" -#: src/elflint.c:3464 +#: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ формат атрибутів\n" -#: src/elflint.c:3475 +#: src/elflint.c:3513 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: поле нульового розміру у розділі атрибутів\n" -#: src/elflint.c:3484 +#: src/elflint.c:3522 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: некоректна довжина у розділі атрибутів\n" -#: src/elflint.c:3496 +#: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений Ñ€Ñдок назви поÑтачальника\n" -#: src/elflint.c:3513 +#: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -3130,12 +3124,12 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі підрозділу " "атрибутів\n" -#: src/elflint.c:3522 +#: src/elflint.c:3560 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: обрізаний розділ атрибутів\n" -#: src/elflint.c:3531 +#: src/elflint.c:3569 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" @@ -3143,7 +3137,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: поле нульового розміру у підрозділі " "атрибутів\n" -#: src/elflint.c:3546 +#: src/elflint.c:3584 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" @@ -3151,7 +3145,7 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: некоректна довжина у підрозділі атрибутів\n" #. Tag_File -#: src/elflint.c:3557 +#: src/elflint.c:3595 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -3159,35 +3153,35 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: підрозділ атрибутів міÑтить неочікуваний " "теґ %u\n" -#: src/elflint.c:3578 +#: src/elflint.c:3616 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі атрибуту\n" -#: src/elflint.c:3589 +#: src/elflint.c:3627 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений Ñ€Ñдок у атрибуті\n" -#: src/elflint.c:3602 +#: src/elflint.c:3640 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений теґ атрибуту %u\n" -#: src/elflint.c:3606 +#: src/elflint.c:3644 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s атрибуту %<PRIu64>\n" -#: src/elflint.c:3616 +#: src/elflint.c:3654 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідомий поÑтачальник «%s»\n" -#: src/elflint.c:3622 +#: src/elflint.c:3660 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -3195,47 +3189,47 @@ msgstr "" "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: зайві байти піÑÐ»Ñ Ð¾Ñтаннього розділу " "атрибутів\n" -#: src/elflint.c:3719 +#: src/elflint.c:3758 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок нульового розділу\n" -#: src/elflint.c:3723 +#: src/elflint.c:3762 #, c-format msgid "zeroth section has nonzero name\n" msgstr "нульовий розділ має ненульову назву\n" -#: src/elflint.c:3725 +#: src/elflint.c:3764 #, c-format msgid "zeroth section has nonzero type\n" msgstr "нульовий розділ має ненульовий тип\n" -#: src/elflint.c:3727 +#: src/elflint.c:3766 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "нульовий розділ має ненульові прапорці\n" -#: src/elflint.c:3729 +#: src/elflint.c:3768 #, c-format msgid "zeroth section has nonzero address\n" msgstr "нульовий розділ має ненульову адреÑу\n" -#: src/elflint.c:3731 +#: src/elflint.c:3770 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "нульовий розділ має ненульове зміщеннÑ\n" -#: src/elflint.c:3733 +#: src/elflint.c:3772 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ\n" -#: src/elflint.c:3735 +#: src/elflint.c:3774 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ запиÑу\n" -#: src/elflint.c:3738 +#: src/elflint.c:3777 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -3244,7 +3238,7 @@ msgstr "" "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ, хоча заголовок ELF ман " "ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ shnum\n" -#: src/elflint.c:3742 +#: src/elflint.c:3781 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3253,7 +3247,7 @@ msgstr "" "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF " "немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ shstrndx\n" -#: src/elflint.c:3746 +#: src/elflint.c:3785 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3262,28 +3256,28 @@ msgstr "" "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF " "немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ phnum\n" -#: src/elflint.c:3764 +#: src/elflint.c:3803 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%2zu] «%s»: %s\n" -#: src/elflint.c:3773 +#: src/elflint.c:3812 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "розділ [%2zu]: некоректна назва\n" -#: src/elflint.c:3800 +#: src/elflint.c:3839 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" "розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n" -#: src/elflint.c:3817 +#: src/elflint.c:3856 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n" -#: src/elflint.c:3835 +#: src/elflint.c:3874 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -3291,12 +3285,12 @@ msgstr "" "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але " "маємо %s\n" -#: src/elflint.c:3852 +#: src/elflint.c:3891 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "у об’єктному файлі виÑвлено розділ [%2zu] «%s»\n" -#: src/elflint.c:3858 src/elflint.c:3890 +#: src/elflint.c:3897 src/elflint.c:3929 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -3304,7 +3298,7 @@ msgstr "" "у розділ [%2zu] «%s» вÑтановлено прапорець SHF_ALLOC, але немає придатного " "до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента\n" -#: src/elflint.c:3863 src/elflint.c:3895 +#: src/elflint.c:3902 src/elflint.c:3934 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3313,7 +3307,7 @@ msgstr "" "у розділі [%2zu] «%s» не вÑтановлено прапорець SHF_ALLOC, але Ñ” придатні до " "Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегменти\n" -#: src/elflint.c:3871 +#: src/elflint.c:3910 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3321,22 +3315,22 @@ msgstr "" "розділ [%2zu] «%s» Ñ” таблицею-покажчиком розділу розширень у файлі, Ñкий не " "Ñ” об’єктним\n" -#: src/elflint.c:3914 +#: src/elflint.c:3953 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "розділ [%2zu] «%s»: розмір не Ñ” кратним до розміру запиÑу\n" -#: src/elflint.c:3919 +#: src/elflint.c:3958 #, c-format msgid "cannot get section header\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу\n" -#: src/elflint.c:3929 +#: src/elflint.c:3968 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n" -#: src/elflint.c:3949 +#: src/elflint.c:3988 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" @@ -3344,74 +3338,74 @@ msgstr "" "розділ [%2zu] «%s» міÑтить некоректні Ñпецифічні Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора прапорці " "%#<PRIx64>\n" -#: src/elflint.c:3959 +#: src/elflint.c:3998 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" msgstr "розділ [%2zu] «%s» міÑтить невідомі прапорці %#<PRIx64>\n" -#: src/elflint.c:3967 +#: src/elflint.c:4006 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "розділ [%2zu] «%s»: адреÑа розділів локальних даних потоків не Ñ” нульовою\n" -#: src/elflint.c:3977 +#: src/elflint.c:4016 #, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "" "розділ [%2zu] «%s»: розміщений у пам'ÑÑ‚Ñ– розділ не може бути ÑтиÑнений\n" -#: src/elflint.c:3982 +#: src/elflint.c:4021 #, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "розділ [%2zu] «%s»: розділ nobits не може бути ÑтиÑнений\n" -#: src/elflint.c:3988 +#: src/elflint.c:4027 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "розділ [%2zu] «%s»: ÑтиÑнений розділ без заголовка ÑтиÑненнÑ: %s\n" -#: src/elflint.c:3994 +#: src/elflint.c:4033 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні компонуваннÑ\n" -#: src/elflint.c:3999 +#: src/elflint.c:4038 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні відомоÑтей\n" -#: src/elflint.c:4006 +#: src/elflint.c:4045 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "розділ [%2zu] «%s»: вÑтановлено прапорець strings без Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ merge\n" -#: src/elflint.c:4011 +#: src/elflint.c:4050 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "розділ [%2zu] «%s»: вÑтановлено прапорець merge, але розмір запиÑу Ñ” " "нульовим\n" -#: src/elflint.c:4030 +#: src/elflint.c:4069 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "розділ [%2zu] «%s» має неочікуваний тип %d Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ розділу\n" -#: src/elflint.c:4039 +#: src/elflint.c:4078 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "розділ [%2zu] «%s» у файлах debuginfo має належати до типу NOBITS\n" -#: src/elflint.c:4046 +#: src/elflint.c:4085 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "розділ [%2zu] «%s» Ñ” одночаÑно виконуваним Ñ– придатним до запиÑу\n" -#: src/elflint.c:4077 +#: src/elflint.c:4116 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3420,7 +3414,7 @@ msgstr "" "розділ [%2zu] «%s» не повніÑÑ‚ÑŽ міÑтитьÑÑ Ñƒ Ñегменті запиÑу заголовка " "програми %d\n" -#: src/elflint.c:4087 +#: src/elflint.c:4126 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3429,7 +3423,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· " "файла у Ñегментів запиÑу заголовка програми %d\n" -#: src/elflint.c:4113 +#: src/elflint.c:4152 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3438,7 +3432,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· " "файла у Ñегментів запиÑу заголовка програми %d, а вміÑÑ‚ файла Ñ” ненульовим\n" -#: src/elflint.c:4124 +#: src/elflint.c:4163 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3447,19 +3441,19 @@ msgstr "" "розділ [%2zu] «%s» не належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ " "виконуєтьÑÑ Ð· файла у Ñегментів запиÑу заголовка програми %d\n" -#: src/elflint.c:4135 +#: src/elflint.c:4174 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "розділ [%2zu] «%s» Ñ” виконуваним у невиконуваному Ñегменті %d\n" -#: src/elflint.c:4145 +#: src/elflint.c:4184 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "розділ [%2zu] «%s» Ñ” придатним до запиÑу у непридатному до запиÑу Ñегменті " "%d\n" -#: src/elflint.c:4155 +#: src/elflint.c:4194 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3467,7 +3461,7 @@ msgstr "" "розділ [%2zu] «%s»: вÑтановлено прапорець alloc, але розділ не перебуває у " "жодному завантаженому Ñегменті\n" -#: src/elflint.c:4161 +#: src/elflint.c:4200 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3476,7 +3470,7 @@ msgstr "" "розділ [%2zu] «%s»: заголовок ELF повідомлÑÑ” про те, що це Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ€Ñдків " "заголовка розділу, але Ñ†Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ðµ належить до типу SHT_TYPE\n" -#: src/elflint.c:4169 +#: src/elflint.c:4208 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3484,17 +3478,17 @@ msgstr "" "розділ [%2zu] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити " "динамічних таблиць Ñимволів\n" -#: src/elflint.c:4220 +#: src/elflint.c:4263 #, c-format msgid "more than one version symbol table present\n" msgstr "виÑвлено більше за одну таблицю Ñимволів верÑій\n" -#: src/elflint.c:4243 +#: src/elflint.c:4286 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "Ñ–Ñнує Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми INTERP, але не розділ .interp\n" -#: src/elflint.c:4254 +#: src/elflint.c:4297 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3502,14 +3496,14 @@ msgstr "" "придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент [%u] Ñ” виконуваним, але не міÑтить " "виконуваних розділів\n" -#: src/elflint.c:4260 +#: src/elflint.c:4303 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð» [%u] Ñ” придатним до запиÑу, але не міÑтить " "придатних до запиÑу розділів\n" -#: src/elflint.c:4271 +#: src/elflint.c:4314 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3518,24 +3512,24 @@ msgstr "" "немає розділу .gnu.versym, хоча Ñ–Ñнує розділ .gnu.versym_d або .gnu." "versym_r\n" -#: src/elflint.c:4284 +#: src/elflint.c:4327 #, c-format msgid "duplicate version index %d\n" msgstr "дублікат індекÑу верÑÑ–Ñ— %d\n" -#: src/elflint.c:4298 +#: src/elflint.c:4341 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "Ñ–Ñнує розділ .gnu.versym, але немає розділу .gnu.versym_d або .gnu.versym_r\n" -#: src/elflint.c:4347 +#: src/elflint.c:4390 #, c-format msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n" msgstr "" "phdr[%d]: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм %<PRIu64>\n" -#: src/elflint.c:4351 +#: src/elflint.c:4394 #, c-format msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" @@ -3543,7 +3537,7 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм " "%zu\n" -#: src/elflint.c:4407 +#: src/elflint.c:4450 #, c-format msgid "" "phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " @@ -3552,7 +3546,7 @@ msgstr "" "phdr[%d]: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із іменем " "влаÑника «%s» за зміщеннÑм %zu\n" -#: src/elflint.c:4412 +#: src/elflint.c:4455 #, c-format msgid "" "section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " @@ -3561,39 +3555,39 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із " "іменем влаÑника «%s» за зміщеннÑм %zu\n" -#: src/elflint.c:4431 +#: src/elflint.c:4474 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n" -#: src/elflint.c:4451 +#: src/elflint.c:4494 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток: %s\n" -#: src/elflint.c:4454 +#: src/elflint.c:4497 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "phdr[%d]: зайві %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтаннього запиÑу нотатки\n" -#: src/elflint.c:4475 +#: src/elflint.c:4518 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n" -#: src/elflint.c:4482 +#: src/elflint.c:4525 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток\n" -#: src/elflint.c:4485 +#: src/elflint.c:4528 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" "розділ [%2d] «%s»: додаткові %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтанньої нотатки\n" -#: src/elflint.c:4503 +#: src/elflint.c:4546 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3601,66 +3595,66 @@ msgstr "" "заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів " "Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ файлів core\n" -#: src/elflint.c:4518 +#: src/elflint.c:4561 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: %s\n" -#: src/elflint.c:4528 +#: src/elflint.c:4571 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: невідомий тип запиÑу заголовка програми " "%#<PRIx64>\n" -#: src/elflint.c:4539 +#: src/elflint.c:4582 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ INTERP у заголовку програми\n" -#: src/elflint.c:4547 +#: src/elflint.c:4590 #, c-format msgid "more than one TLS entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ TLS у заголовку програми\n" -#: src/elflint.c:4554 +#: src/elflint.c:4597 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "у Ñтатичному виконуваному файлі не може бути динамічних розділів\n" -#: src/elflint.c:4568 +#: src/elflint.c:4611 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° динамічний розділ у заголовку програми має помилкове зміщеннÑ\n" -#: src/elflint.c:4571 +#: src/elflint.c:4614 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "розміри динамічного розділу у заголовку програми та у заголовку розділу не " "збігаютьÑÑ\n" -#: src/elflint.c:4581 +#: src/elflint.c:4624 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ GNU_RELRO у заголовку програми\n" -#: src/elflint.c:4602 +#: src/elflint.c:4645 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" "придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент, до Ñкого звертаєтьÑÑ GNU_RELRO, " "непридатний до запиÑу\n" -#: src/elflint.c:4613 +#: src/elflint.c:4656 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "прапорці придатного до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента [%u] не відповідають прапорцÑм " "GNU_RELRO [%u]\n" -#: src/elflint.c:4620 +#: src/elflint.c:4663 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" @@ -3668,76 +3662,76 @@ msgstr "" "прапорці GNU_RELRO [%u] не Ñ” підмножиною прапорців завантажуваного Ñегмента " "[%u]\n" -#: src/elflint.c:4629 src/elflint.c:4652 +#: src/elflint.c:4672 src/elflint.c:4695 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "Ñегмент %s не міÑтитьÑÑ Ñƒ завантаженому Ñегменті\n" -#: src/elflint.c:4658 +#: src/elflint.c:4701 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми у заголовку ELF Ñ– Ð·Ð°Ð¿Ð¸Ñ PHDR не збігаютьÑÑ" -#: src/elflint.c:4685 +#: src/elflint.c:4728 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю вікон викликів у заголовку програми має помилкове " "зміщеннÑ\n" -#: src/elflint.c:4688 +#: src/elflint.c:4731 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку " "розділу не збігаютьÑÑ\n" -#: src/elflint.c:4701 +#: src/elflint.c:4744 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "Ñ–Ñнує PT_GNU_EH_FRAME, хоча немає розділу .eh_frame_hdr\n" -#: src/elflint.c:4709 +#: src/elflint.c:4752 #, c-format msgid "call frame search table must be allocated\n" msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4712 +#: src/elflint.c:4755 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "розділ [%2zu] «%s» має бути розміщено у пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4716 +#: src/elflint.c:4759 #, c-format msgid "call frame search table must not be writable\n" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до запиÑу\n" -#: src/elflint.c:4719 +#: src/elflint.c:4762 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до запиÑу\n" -#: src/elflint.c:4724 +#: src/elflint.c:4767 #, c-format msgid "call frame search table must not be executable\n" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до виконаннÑ\n" -#: src/elflint.c:4727 +#: src/elflint.c:4770 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконаннÑ\n" -#: src/elflint.c:4741 +#: src/elflint.c:4784 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: розмір файла перевищує об’єм пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4748 +#: src/elflint.c:4791 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” Ñтепенем 2\n" -#: src/elflint.c:4751 +#: src/elflint.c:4794 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3746,7 +3740,7 @@ msgstr "" "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ файлі Ñ– віртуальна адреÑа не " "ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· вирівнюваннÑм\n" -#: src/elflint.c:4764 +#: src/elflint.c:4807 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3755,17 +3749,17 @@ msgstr "" "виконуваний модуль/DSO з розділом .eh_frame_hdr не міÑтить запиÑу заголовка " "програми PT_GNU_EH_FRAME" -#: src/elflint.c:4798 +#: src/elflint.c:4841 #, c-format msgid "cannot read ELF header: %s\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s\n" -#: src/elflint.c:4810 +#: src/elflint.c:4853 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "не вдалоÑÑ Ñтворити файл" -#: src/elflint.c:4831 +#: src/elflint.c:4874 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3982,7 +3976,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: Ð’ÐУТРІШÐЯ ПОМИЛКР%d (%s): %s" #: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307 -#: src/strip.c:2766 +#: src/strip.c:2763 #, c-format msgid "while closing '%s'" msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»" @@ -4025,13 +4019,13 @@ msgstr "%s%s%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла msgid "cannot create search tree" msgstr "не вдалоÑÑ Ñтворити дерево пошуку" -#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663 -#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097 -#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809 -#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613 -#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803 -#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467 -#: src/strip.c:1093 +#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685 +#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123 +#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854 +#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896 +#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029 +#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396 +#: src/size.c:467 src/strip.c:1093 #, c-format msgid "cannot get section header string table index" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків" @@ -4140,7 +4134,7 @@ msgstr "Показати інформацію лише з розділу ÐÐЗРmsgid "Show information from FILEs (a.out by default)." msgstr "Показати інформацію з ФÐЙЛів (типово a.out)." -#: src/objdump.c:217 src/readelf.c:608 +#: src/objdump.c:217 src/readelf.c:630 msgid "No operation specified.\n" msgstr "Ðе вказано дії.\n" @@ -4149,11 +4143,11 @@ msgstr "Ðе вказано дії.\n" msgid "while close `%s'" msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»" -#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383 +#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409 msgid "INVALID SYMBOL" msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ" -#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419 +#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445 msgid "INVALID SECTION" msgstr "ÐЕКОРЕКТÐИЙ РОЗДІЛ" @@ -4211,18 +4205,18 @@ msgstr "«%s» не Ñ” архівом" msgid "error while freeing sub-ELF descriptor: %s" msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора під-ELF: %s" -#: src/readelf.c:96 +#: src/readelf.c:97 msgid "ELF input selection:" msgstr "Вибір вихідних даних ELF:" -#: src/readelf.c:98 +#: src/readelf.c:99 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" "ВикориÑтовувати вказаний за іменем РОЗДІЛ (типово .gnu_debugdata) Ñк " "(ÑтиÑнені) вхідні дані ELF" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "" "Used with -w to find the skeleton Compile Units in FILE associated with the " "Split Compile units in a .dwo input file" @@ -4230,71 +4224,71 @@ msgstr "" "ВикориÑтовуєтьÑÑ Ð· -w Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ оÑнови компільованих модулів у ФÐЙЛі, " "пов'Ñзаному із модулÑми розділеної компілÑції у вхідному файлі .dwo" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "ELF output selection:" msgstr "Вибір виводу ELF:" -#: src/readelf.c:105 +#: src/readelf.c:106 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Ð’Ñе це Ð¿Ð»ÑŽÑ -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the dynamic segment" msgstr "Показувати динамічний Ñегмент" -#: src/readelf.c:107 +#: src/readelf.c:108 msgid "Display the ELF file header" msgstr "Показувати заголовок файла ELF" -#: src/readelf.c:109 +#: src/readelf.c:110 msgid "Display histogram of bucket list lengths" msgstr "Показати гіÑтограму довжин ÑпиÑку блоків" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Display the program headers" msgstr "Показувати заголовки програми" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "Display relocations" msgstr "Показувати переÑуваннÑ" -#: src/readelf.c:113 +#: src/readelf.c:114 msgid "Display the section groups" msgstr "Показувати групи розділів" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Display the sections' headers" msgstr "Показувати заголовки розділів" -#: src/readelf.c:117 +#: src/readelf.c:118 msgid "Display the symbol table sections" msgstr "Показати розділи таблиці Ñимволів" -#: src/readelf.c:120 +#: src/readelf.c:121 msgid "Display (only) the dynamic symbol table" msgstr "Показувати (лише) динамічну таблицю Ñимволів" -#: src/readelf.c:121 +#: src/readelf.c:122 msgid "Display versioning information" msgstr "Показувати відомоÑÑ‚Ñ– щодо верÑÑ–Ñ—" -#: src/readelf.c:122 +#: src/readelf.c:123 msgid "Display the ELF notes" msgstr "Показувати нотатки ELF" -#: src/readelf.c:124 +#: src/readelf.c:125 msgid "Display architecture specific information, if any" msgstr "Показувати Ñпецифічні Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ дані, Ñкщо такі буде виÑвлено" -#: src/readelf.c:126 +#: src/readelf.c:127 msgid "Display sections for exception handling" msgstr "Показувати розділи Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ виключень" -#: src/readelf.c:128 +#: src/readelf.c:129 msgid "Additional output selection:" msgstr "Додатковий вибір виводу:" -#: src/readelf.c:130 +#: src/readelf.c:131 msgid "" "Display DWARF section content. SECTION can be one of abbrev, addr, aranges, " "decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, " @@ -4304,42 +4298,42 @@ msgstr "" "aranges, decodedaranges, frame, gdb_index, info, info+, loc, line, " "decodedline, ranges, pubnames, str, macinfo, macro або exception" -#: src/readelf.c:134 +#: src/readelf.c:135 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "" "Створити дамп даних РОЗДІЛ, Ñкі не вдалоÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚ÑƒÐ²Ð°Ñ‚Ð¸, за номером або " "назвами" -#: src/readelf.c:136 +#: src/readelf.c:137 msgid "Print string contents of sections" msgstr "Виводити вміÑÑ‚ Ñ€Ñдків розділів" -#: src/readelf.c:139 +#: src/readelf.c:140 msgid "Display the symbol index of an archive" msgstr "Показувати покажчик Ñимволів архіву" -#: src/readelf.c:141 +#: src/readelf.c:142 msgid "Use the dynamic segment when possible for displaying info" msgstr "" -#: src/readelf.c:143 +#: src/readelf.c:144 msgid "Output control:" msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¾Ð¼:" -#: src/readelf.c:145 +#: src/readelf.c:146 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Ðе шукати назви Ñимволів Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑ Ñƒ даних DWARF" -#: src/readelf.c:147 +#: src/readelf.c:148 msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "Показати лише зміщеннÑ, а не визначені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи у даних DWARF" -#: src/readelf.c:149 +#: src/readelf.c:150 msgid "Ignored for compatibility (lines always wide)" msgstr "ІгноруєтьÑÑ Ð· міркувань ÑуміÑноÑÑ‚Ñ– (Ñ€Ñдки завжди широкі)" -#: src/readelf.c:151 +#: src/readelf.c:152 msgid "" "Show compression information for compressed sections (when used with -S); " "decompress section before dumping data (when used with -p or -x)" @@ -4348,40 +4342,40 @@ msgstr "" "розпакувати розділ до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ даних (Ñкщо викориÑтано з -p або -x)" #. Short description of program. -#: src/readelf.c:156 +#: src/readelf.c:157 msgid "Print information from ELF file in human-readable form." msgstr "Виводити відомоÑÑ‚Ñ– з файла ELF у придатному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–." #. Look up once. -#: src/readelf.c:373 +#: src/readelf.c:395 msgid "yes" msgstr "так" -#: src/readelf.c:374 +#: src/readelf.c:396 msgid "no" msgstr "ні" -#: src/readelf.c:576 +#: src/readelf.c:598 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s».\n" -#: src/readelf.c:647 src/readelf.c:758 +#: src/readelf.c:669 src/readelf.c:780 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf: %s" -#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188 +#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188 #, c-format msgid "cannot determine number of sections: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s" -#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508 +#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530 #, c-format msgid "cannot get section: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033 +#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442 #: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610 #: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222 #: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470 @@ -4390,120 +4384,120 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" msgid "cannot get section header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s" -#: src/readelf.c:689 +#: src/readelf.c:711 #, c-format msgid "cannot get section name" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу" -#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989 -#: src/readelf.c:11173 +#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332 +#: src/readelf.c:11516 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s" -#: src/readelf.c:714 +#: src/readelf.c:736 #, c-format msgid "cannot create temp file '%s'" msgstr "не вдалоÑÑ Ñтворити файл тимчаÑових даних «%s»" -#: src/readelf.c:723 +#: src/readelf.c:745 #, c-format msgid "cannot write section data" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані розділу" -#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775 +#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s" -#: src/readelf.c:736 +#: src/readelf.c:758 #, c-format msgid "error while rewinding file descriptor" msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла" -#: src/readelf.c:770 +#: src/readelf.c:792 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "«%s» не Ñ” архівом, Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° архіву неможливе" -#: src/readelf.c:874 +#: src/readelf.c:896 #, c-format msgid "cannot stat input file" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла за допомогою stat" -#: src/readelf.c:876 +#: src/readelf.c:898 #, c-format msgid "input file is empty" msgstr "вхідний файл Ñ” порожнім" -#: src/readelf.c:878 +#: src/readelf.c:900 #, c-format msgid "failed reading '%s': %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s" -#: src/readelf.c:907 +#: src/readelf.c:929 #, c-format msgid "No such section '%s' in '%s'" msgstr "У «%2$s» немає розділу «%1$s»" -#: src/readelf.c:966 +#: src/readelf.c:988 #, c-format msgid "cannot read ELF header: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s" -#: src/readelf.c:974 +#: src/readelf.c:996 #, c-format msgid "cannot create EBL handle" msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL" -#: src/readelf.c:985 +#: src/readelf.c:1007 #, c-format msgid "cannot determine number of program headers: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s" -#: src/readelf.c:1017 +#: src/readelf.c:1039 #, c-format msgid "cannot read ELF: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ ELF: %s" -#: src/readelf.c:1050 +#: src/readelf.c:1072 #, fuzzy #| msgid "cannot get section: %s" msgid "cannot find section" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/readelf.c:1087 +#: src/readelf.c:1109 msgid "NONE (None)" msgstr "NONE (Ðемає)" -#: src/readelf.c:1088 +#: src/readelf.c:1110 msgid "REL (Relocatable file)" msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)" -#: src/readelf.c:1089 +#: src/readelf.c:1111 msgid "EXEC (Executable file)" msgstr "EXEC (Виконуваний файл)" -#: src/readelf.c:1090 +#: src/readelf.c:1112 msgid "DYN (Shared object file)" msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)" -#: src/readelf.c:1091 +#: src/readelf.c:1113 msgid "CORE (Core file)" msgstr "CORE (Файл Ñдра)" -#: src/readelf.c:1096 +#: src/readelf.c:1118 #, c-format msgid "OS Specific: (%x)\n" msgstr "ОС-Ñпецифічне: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1098 +#: src/readelf.c:1120 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n" -#: src/readelf.c:1108 +#: src/readelf.c:1130 msgid "" "ELF Header:\n" " Magic: " @@ -4511,7 +4505,7 @@ msgstr "" "Заголовок ELF:\n" " Magic: " -#: src/readelf.c:1112 +#: src/readelf.c:1134 #, c-format msgid "" "\n" @@ -4520,123 +4514,123 @@ msgstr "" "\n" " КлаÑ: %s\n" -#: src/readelf.c:1117 +#: src/readelf.c:1139 #, c-format msgid " Data: %s\n" msgstr " Дані: %s\n" -#: src/readelf.c:1123 +#: src/readelf.c:1145 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n" -#: src/readelf.c:1125 src/readelf.c:1147 +#: src/readelf.c:1147 src/readelf.c:1169 msgid "(current)" msgstr "(поточний)" -#: src/readelf.c:1129 +#: src/readelf.c:1151 #, c-format msgid " OS/ABI: %s\n" msgstr " ОС/ABI: %s\n" -#: src/readelf.c:1132 +#: src/readelf.c:1154 #, c-format msgid " ABI Version: %hhd\n" msgstr " ВерÑÑ–Ñ ABI: %hhd\n" -#: src/readelf.c:1135 +#: src/readelf.c:1157 msgid " Type: " msgstr " Тип: " -#: src/readelf.c:1140 +#: src/readelf.c:1162 #, c-format msgid " Machine: %s\n" msgstr " Ðрхітектура: %s\n" -#: src/readelf.c:1142 +#: src/readelf.c:1164 #, c-format msgid " Machine: <unknown>: 0x%x\n" msgstr " Ðрхітектура: <невідома>: 0x%x\n" -#: src/readelf.c:1145 +#: src/readelf.c:1167 #, c-format msgid " Version: %d %s\n" msgstr " ВерÑÑ–Ñ: %d %s\n" -#: src/readelf.c:1149 +#: src/readelf.c:1171 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n" -#: src/readelf.c:1152 +#: src/readelf.c:1174 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Початок заголовків програм: %<PRId64> %s\n" -#: src/readelf.c:1153 src/readelf.c:1156 +#: src/readelf.c:1175 src/readelf.c:1178 msgid "(bytes into file)" msgstr "(байтів у файл)" -#: src/readelf.c:1155 +#: src/readelf.c:1177 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Початок заголовків розділів: %<PRId64> %s\n" -#: src/readelf.c:1158 +#: src/readelf.c:1180 #, c-format msgid " Flags: %s\n" msgstr " Прапорці: %s\n" -#: src/readelf.c:1161 +#: src/readelf.c:1183 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Розмір цього заголовка: %<PRId16> %s\n" -#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182 +#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204 msgid "(bytes)" msgstr "(байтів)" -#: src/readelf.c:1164 +#: src/readelf.c:1186 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n" -#: src/readelf.c:1167 +#: src/readelf.c:1189 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>" -#: src/readelf.c:1174 +#: src/readelf.c:1196 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> у [0].sh_info)" -#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208 +#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230 msgid " ([0] not available)" msgstr " ([0] недоÑтупний)" -#: src/readelf.c:1181 +#: src/readelf.c:1203 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n" -#: src/readelf.c:1184 +#: src/readelf.c:1206 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>" -#: src/readelf.c:1191 +#: src/readelf.c:1213 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> у [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1204 +#: src/readelf.c:1226 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> у [0].sh_link)" -#: src/readelf.c:1212 +#: src/readelf.c:1234 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4645,7 +4639,7 @@ msgstr "" " Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: XINDEX%s\n" "\n" -#: src/readelf.c:1216 +#: src/readelf.c:1238 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4654,12 +4648,12 @@ msgstr "" " Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %<PRId16>\n" "\n" -#: src/readelf.c:1266 src/readelf.c:1474 +#: src/readelf.c:1288 src/readelf.c:1496 #, c-format msgid "cannot get number of sections: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s" -#: src/readelf.c:1269 +#: src/readelf.c:1291 #, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4668,16 +4662,16 @@ msgstr "" "ВиÑвлено %zd заголовків розділів, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ — %#<PRIx64>:\n" "\n" -#: src/readelf.c:1277 +#: src/readelf.c:1299 #, c-format msgid "cannot get section header string table index: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %s" -#: src/readelf.c:1280 +#: src/readelf.c:1302 msgid "Section Headers:" msgstr "Заголовки розділів:" -#: src/readelf.c:1283 +#: src/readelf.c:1305 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4685,7 +4679,7 @@ msgstr "" "[â„– ] Ðазва Тип Ðдр Змі Розмір ES Прап Lk " "Інф Al" -#: src/readelf.c:1285 +#: src/readelf.c:1307 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4693,35 +4687,35 @@ msgstr "" "[â„– ] Ðазва Тип Ðдр Змі Розмір ES " "Прап Lk Інф Al" -#: src/readelf.c:1290 +#: src/readelf.c:1312 msgid " [Compression Size Al]" msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]" -#: src/readelf.c:1292 +#: src/readelf.c:1314 msgid " [Compression Size Al]" msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]" -#: src/readelf.c:1370 +#: src/readelf.c:1392 #, c-format msgid "bad compression header for section %zd: %s" msgstr "помилковий заголовок ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s" -#: src/readelf.c:1381 +#: src/readelf.c:1403 #, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑтиÑненого розміру gnu Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s" -#: src/readelf.c:1399 +#: src/readelf.c:1421 msgid "Program Headers:" msgstr "Заголовки програми:" -#: src/readelf.c:1401 +#: src/readelf.c:1423 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів" -#: src/readelf.c:1404 +#: src/readelf.c:1426 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4729,12 +4723,12 @@ msgstr "" " Тип Зміщен ВіртÐдр ФізÐдр " "РозмФайлРозмПам Пра Вирів" -#: src/readelf.c:1461 +#: src/readelf.c:1483 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Запит щодо інтерпретатора програми: %s]\n" -#: src/readelf.c:1486 +#: src/readelf.c:1508 msgid "" "\n" " Section to Segment mapping:\n" @@ -4744,12 +4738,12 @@ msgstr "" " Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² на Ñегмент:\n" " Розділи Ñегмента..." -#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 +#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163 #, c-format msgid "cannot get program header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок програми: %s" -#: src/readelf.c:1641 +#: src/readelf.c:1663 #, c-format msgid "" "\n" @@ -4767,7 +4761,7 @@ msgstr[2] "" "\n" "Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:1646 +#: src/readelf.c:1668 #, c-format msgid "" "\n" @@ -4785,32 +4779,32 @@ msgstr[2] "" "\n" "Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:1654 +#: src/readelf.c:1676 msgid "<INVALID SYMBOL>" msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>" -#: src/readelf.c:1668 +#: src/readelf.c:1690 msgid "<INVALID SECTION>" msgstr "<ÐЕКОРЕКТÐИЙ РОЗДІЛ>" -#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881 -#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956 -#: src/readelf.c:12963 +#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212 +#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365 +#: src/readelf.c:13372 msgid "Couldn't uncompress section" msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ розділ" -#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585 +#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916 #, c-format msgid "cannot get section [%zd] header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%zd]: %s" -#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890 -#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619 +#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221 +#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962 #, c-format msgid "invalid sh_link value in section %zu" msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu" -#: src/readelf.c:1867 +#: src/readelf.c:1889 #, c-format msgid "" "\n" @@ -4833,7 +4827,7 @@ msgstr[2] "" "Динамічний Ñегмент міÑтить %lu запиÑів:\n" " Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n" -#: src/readelf.c:1880 +#: src/readelf.c:1902 #, fuzzy, c-format #| msgid "" #| "\n" @@ -4864,42 +4858,42 @@ msgstr[2] "" "Динамічний Ñегмент міÑтить %lu запиÑів:\n" " Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n" -#: src/readelf.c:1890 +#: src/readelf.c:1912 msgid " Type Value\n" msgstr " Тип ЗначеннÑ\n" -#: src/readelf.c:1899 +#: src/readelf.c:1921 #, fuzzy #| msgid "cannot get string section data: %s" msgid "cannot get string table by using dynamic segment" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу Ñ€Ñдків: %s" -#: src/readelf.c:1938 +#: src/readelf.c:1960 #, c-format msgid "Shared library: [%s]\n" msgstr "Спільна бібліотека: [%s]\n" -#: src/readelf.c:1942 +#: src/readelf.c:1964 #, c-format msgid "Library soname: [%s]\n" msgstr "Ðазва so бібліотеки: [%s]\n" -#: src/readelf.c:1946 +#: src/readelf.c:1968 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath бібліотеки: [%s]\n" -#: src/readelf.c:1950 +#: src/readelf.c:1972 #, c-format msgid "Library runpath: [%s]\n" msgstr "Runpath бібліотеки: [%s]\n" -#: src/readelf.c:1969 +#: src/readelf.c:1993 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (байт)\n" -#: src/readelf.c:2083 src/readelf.c:2272 +#: src/readelf.c:2109 src/readelf.c:2298 #, c-format msgid "" "\n" @@ -4908,7 +4902,7 @@ msgstr "" "\n" "Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n" -#: src/readelf.c:2100 src/readelf.c:2289 +#: src/readelf.c:2126 src/readelf.c:2315 #, c-format msgid "" "\n" @@ -4937,7 +4931,8 @@ msgstr[2] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:2115 src/readelf.c:2304 +#. A .relr.dyn section does not refer to a specific section. +#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485 #, c-format msgid "" "\n" @@ -4955,30 +4950,40 @@ msgstr[2] "" "\n" "Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n" -#: src/readelf.c:2125 +#: src/readelf.c:2151 msgid " Offset Type Value Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n" -#: src/readelf.c:2127 +#: src/readelf.c:2153 msgid " Offset Type Value Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n" -#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225 -#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396 -#: src/readelf.c:2418 src/readelf.c:2431 +#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251 +#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422 +#: src/readelf.c:2444 src/readelf.c:2457 msgid "<INVALID RELOC>" msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>" -#: src/readelf.c:2314 +#: src/readelf.c:2340 msgid " Offset Type Value Addend Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n" -#: src/readelf.c:2316 +#: src/readelf.c:2342 msgid " Offset Type Value Addend Name\n" msgstr "" " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n" -#: src/readelf.c:2558 +#: src/readelf.c:2654 +#, c-format +msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" +msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" + +#: src/readelf.c:2750 +#, c-format +msgid "bad dynamic symbol" +msgstr "помилковий динамічний Ñимвол" + +#: src/readelf.c:2868 #, c-format msgid "" "\n" @@ -4996,7 +5001,7 @@ msgstr[2] "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n" -#: src/readelf.c:2563 +#: src/readelf.c:2873 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -5004,33 +5009,27 @@ msgstr[0] " %lu лок. Ñимвол Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] « msgstr[1] " %lu лок. Ñимволи Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n" msgstr[2] " %lu лок. Ñимволів Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n" -#: src/readelf.c:2571 +#: src/readelf.c:2881 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n" -#: src/readelf.c:2573 +#: src/readelf.c:2883 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n" -#: src/readelf.c:2593 -#, c-format -msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" - -#: src/readelf.c:2686 -#, c-format -msgid "bad dynamic symbol" -msgstr "помилковий динамічний Ñимвол" +#: src/readelf.c:3002 +msgid "Dynamic symbol information is not available for displaying symbols." +msgstr "" -#: src/readelf.c:2771 +#: src/readelf.c:3102 msgid "none" msgstr "немає" -#: src/readelf.c:2788 +#: src/readelf.c:3119 msgid "| <unknown>" msgstr "| <невідомо>" -#: src/readelf.c:2818 +#: src/readelf.c:3149 #, c-format msgid "" "\n" @@ -5053,17 +5052,17 @@ msgstr[2] "" "Розділ потреби у верÑÑ–ÑÑ… [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:2839 +#: src/readelf.c:3170 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n" -#: src/readelf.c:2852 +#: src/readelf.c:3183 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n" -#: src/readelf.c:2894 +#: src/readelf.c:3225 #, c-format msgid "" "\n" @@ -5086,18 +5085,18 @@ msgstr[2] "" "Розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ— [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:2922 +#: src/readelf.c:3253 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: ВерÑÑ–Ñ: %hd Прап.: %s ІндекÑ: %hd К-Ñ‚ÑŒ: %hd Ðазва: %s\n" -#: src/readelf.c:2937 +#: src/readelf.c:3268 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: батьківÑький %d: %s\n" #. Print the header. -#: src/readelf.c:3197 +#: src/readelf.c:3528 #, c-format msgid "" "\n" @@ -5120,15 +5119,15 @@ msgstr[2] "" "Розділ Ñимволів верÑій [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»" -#: src/readelf.c:3225 +#: src/readelf.c:3556 msgid " 0 *local* " msgstr " 0 *локальний* " -#: src/readelf.c:3230 +#: src/readelf.c:3561 msgid " 1 *global* " msgstr " 1 *загальний* " -#: src/readelf.c:3272 +#: src/readelf.c:3603 #, c-format msgid "" "\n" @@ -5156,22 +5155,22 @@ msgstr[2] "" "блоками):\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:3294 +#: src/readelf.c:3625 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Довжина Ðомер % від загал. ПокриттÑ\n" -#: src/readelf.c:3296 +#: src/readelf.c:3627 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3303 +#: src/readelf.c:3634 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3316 +#: src/readelf.c:3647 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5180,37 +5179,37 @@ msgstr "" " Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ теÑтів: уÑпішний пошук: %f\n" "\t\t\t неуÑпішний пошук: %f\n" -#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464 +#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795 #, c-format msgid "cannot get data for section %d: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s" -#: src/readelf.c:3342 +#: src/readelf.c:3673 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "некоректні дані у розділі sysv.hash %d" -#: src/readelf.c:3371 +#: src/readelf.c:3702 #, c-format msgid "invalid chain in sysv.hash section %d" msgstr "некоректний ланцюжок у розділі sysv.hash %d" -#: src/readelf.c:3406 +#: src/readelf.c:3737 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "некоректні дані у розділі sysv.hash64 %d" -#: src/readelf.c:3437 +#: src/readelf.c:3768 #, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "некоректний ланцюжок у розділі sysv.hash64 %d" -#: src/readelf.c:3473 +#: src/readelf.c:3804 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "некоректні дані у розділі gnu.hash %d" -#: src/readelf.c:3539 +#: src/readelf.c:3870 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5220,7 +5219,7 @@ msgstr "" " Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув " "2-го хешу: %u\n" -#: src/readelf.c:3624 +#: src/readelf.c:3955 #, c-format msgid "" "\n" @@ -5241,7 +5240,7 @@ msgstr[2] "" "Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d " "запиÑів:\n" -#: src/readelf.c:3638 +#: src/readelf.c:3969 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5249,7 +5248,7 @@ msgstr "" " Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми " "Прапорці" -#: src/readelf.c:3698 +#: src/readelf.c:4029 #, c-format msgid "" "\n" @@ -5260,107 +5259,107 @@ msgstr "" "Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм " "%#0<PRIx64>:\n" -#: src/readelf.c:3715 +#: src/readelf.c:4046 msgid " Owner Size\n" msgstr " ВлаÑник Розмір\n" -#: src/readelf.c:3739 +#: src/readelf.c:4070 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3778 +#: src/readelf.c:4109 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3783 +#: src/readelf.c:4114 #, c-format msgid " File: %11<PRIu32>\n" msgstr " Файл: %11<PRIu32>\n" -#: src/readelf.c:3833 +#: src/readelf.c:4164 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3836 +#: src/readelf.c:4167 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3839 +#: src/readelf.c:4170 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3849 +#: src/readelf.c:4180 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3852 +#: src/readelf.c:4183 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3890 +#: src/readelf.c:4221 #, fuzzy #| msgid "couldn't get shdr for group section: %s" msgid "Couldn't get data from section" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ shdr Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s" -#: src/readelf.c:3955 +#: src/readelf.c:4286 msgid "sprintf failure" msgstr "помилка sprintf" -#: src/readelf.c:4439 +#: src/readelf.c:4770 msgid "empty block" msgstr "порожній блок" -#: src/readelf.c:4442 +#: src/readelf.c:4773 #, c-format msgid "%zu byte block:" msgstr "%zu-байтовий блок:" -#: src/readelf.c:4920 +#: src/readelf.c:5251 #, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%2<PRIuMAX>] %s <ОБРІЗÐÐО>\n" -#: src/readelf.c:5080 +#: src/readelf.c:5423 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ" -#: src/readelf.c:5087 +#: src/readelf.c:5430 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень" -#: src/readelf.c:5094 +#: src/readelf.c:5437 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами" -#: src/readelf.c:5101 +#: src/readelf.c:5444 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "%s %#<PRIx64> викориÑтано з різними атрибутами, %s Ñ– %s" -#: src/readelf.c:5201 +#: src/readelf.c:5544 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n" -#: src/readelf.c:5209 +#: src/readelf.c:5552 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n" -#: src/readelf.c:5315 +#: src/readelf.c:5658 #, c-format msgid "" "\n" @@ -5371,7 +5370,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" " [ Код]\n" -#: src/readelf.c:5323 +#: src/readelf.c:5666 #, c-format msgid "" "\n" @@ -5380,20 +5379,20 @@ msgstr "" "\n" "Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n" -#: src/readelf.c:5336 +#: src/readelf.c:5679 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n" -#: src/readelf.c:5352 +#: src/readelf.c:5695 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] зміщеннÑ: %<PRId64>, дочірній: %s, мітка: %s\n" -#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224 -#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829 -#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627 -#: src/readelf.c:10698 +#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567 +#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172 +#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970 +#: src/readelf.c:11041 #, c-format msgid "" "\n" @@ -5402,49 +5401,49 @@ msgstr "" "\n" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" -#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397 +#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740 #, c-format msgid " Length: %8<PRIu64>\n" msgstr " Довжина: %8<PRIu64>\n" -#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410 +#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753 #, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n" -#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419 +#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762 #, c-format msgid " Address size: %8<PRIu64>\n" msgstr " Розмір адреÑи: %8<PRIu64>\n" -#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429 +#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772 #, c-format msgid " Segment size: %8<PRIu64>\n" msgstr "" " Розмір Ñегмента: %8<PRIu64>\n" "\n" -#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820 +#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163 #, c-format msgid "Unknown version" msgstr "Ðевідома верÑÑ–Ñ" -#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424 +#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767 #, c-format msgid "unsupported address size" msgstr "непідтримуваний розмір адреÑи" -#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434 +#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777 #, c-format msgid "unsupported segment size" msgstr "непідтримуваний розмір Ñегмента" -#: src/readelf.c:5609 +#: src/readelf.c:5952 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s" -#: src/readelf.c:5624 +#: src/readelf.c:5967 #, c-format msgid "" "\n" @@ -5462,12 +5461,12 @@ msgstr[2] "" "\n" "Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n" -#: src/readelf.c:5655 +#: src/readelf.c:5998 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5657 +#: src/readelf.c:6000 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5475,7 +5474,7 @@ msgstr "" " [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5695 src/readelf.c:8638 +#: src/readelf.c:6038 src/readelf.c:8981 #, c-format msgid "" "\n" @@ -5484,13 +5483,13 @@ msgstr "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм %zu:\n" -#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649 -#: src/readelf.c:9378 +#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992 +#: src/readelf.c:9721 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" -#: src/readelf.c:5715 +#: src/readelf.c:6058 #, c-format msgid "" "\n" @@ -5499,27 +5498,27 @@ msgstr "" "\n" " Довжина: %6<PRIu64>\n" -#: src/readelf.c:5727 +#: src/readelf.c:6070 #, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5731 +#: src/readelf.c:6074 #, c-format msgid "unsupported aranges version" msgstr "непідтримувана верÑÑ–Ñ aranges" -#: src/readelf.c:5742 +#: src/readelf.c:6085 #, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n" -#: src/readelf.c:5748 +#: src/readelf.c:6091 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr " Розмір адреÑи: %6<PRIu64>\n" -#: src/readelf.c:5759 +#: src/readelf.c:6102 #, c-format msgid "" " Segment size: %6<PRIu64>\n" @@ -5528,12 +5527,12 @@ msgstr "" " Розмір Ñегмента: %6<PRIu64>\n" "\n" -#: src/readelf.c:5814 +#: src/readelf.c:6157 #, c-format msgid " %zu padding bytes\n" msgstr " %zu байтів доповненнÑ\n" -#: src/readelf.c:5876 src/readelf.c:9384 +#: src/readelf.c:6219 src/readelf.c:9727 #, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" @@ -5542,42 +5541,42 @@ msgstr "" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм 0x%<PRIx64>:\n" "\n" -#: src/readelf.c:5931 src/readelf.c:9439 +#: src/readelf.c:6274 src/readelf.c:9782 #, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " ЗапиÑи зміщеннÑ: %8<PRIu64>\n" -#: src/readelf.c:5947 src/readelf.c:9455 +#: src/readelf.c:6290 src/readelf.c:9798 #, c-format msgid " Unknown CU base: " msgstr " Ðевідома оÑнова CU: " -#: src/readelf.c:5949 src/readelf.c:9457 +#: src/readelf.c:6292 src/readelf.c:9800 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr " ОÑнова CU [%6<PRIx64>]: " -#: src/readelf.c:5955 src/readelf.c:9463 +#: src/readelf.c:6298 src/readelf.c:9806 #, c-format msgid " Not associated with a CU.\n" msgstr " Ðе пов'Ñзано із CU.\n" -#: src/readelf.c:5966 src/readelf.c:9474 +#: src/readelf.c:6309 src/readelf.c:9817 #, c-format msgid "too many offset entries for unit length" msgstr "забагато запиÑів зÑуву Ð´Ð»Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ модулÑ" -#: src/readelf.c:5970 src/readelf.c:9478 +#: src/readelf.c:6313 src/readelf.c:9821 #, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " ЗміщеннÑ, що починаютьÑÑ Ð· 0x%<PRIx64>:\n" -#: src/readelf.c:6022 +#: src/readelf.c:6365 #, c-format msgid "invalid range list data" msgstr "некоректні дані ÑпиÑку діапазонів" -#: src/readelf.c:6207 src/readelf.c:9813 +#: src/readelf.c:6550 src/readelf.c:10156 #, c-format msgid "" " %zu padding bytes\n" @@ -5586,7 +5585,7 @@ msgstr "" " %zu байтів доповненнÑ\n" "\n" -#: src/readelf.c:6255 src/readelf.c:9862 +#: src/readelf.c:6598 src/readelf.c:10205 #, c-format msgid "" "\n" @@ -5595,7 +5594,7 @@ msgstr "" "\n" " Ðевідома оÑнова CU: " -#: src/readelf.c:6257 src/readelf.c:9864 +#: src/readelf.c:6600 src/readelf.c:10207 #, c-format msgid "" "\n" @@ -5604,31 +5603,31 @@ msgstr "" "\n" " ОÑнова CU [%6<PRIx64>]: " -#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916 +#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:6291 src/readelf.c:10000 +#: src/readelf.c:6634 src/readelf.c:10343 #, fuzzy msgid "base address" msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " -#: src/readelf.c:6301 src/readelf.c:10010 +#: src/readelf.c:6644 src/readelf.c:10353 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] порожній ÑпиÑок\n" -#: src/readelf.c:6565 +#: src/readelf.c:6908 msgid " <INVALID DATA>\n" msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:6822 +#: src/readelf.c:7165 #, c-format msgid "cannot get ELF: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s" -#: src/readelf.c:6846 +#: src/readelf.c:7189 #, c-format msgid "" "\n" @@ -5637,7 +5636,7 @@ msgstr "" "\n" "Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n" -#: src/readelf.c:6896 +#: src/readelf.c:7239 #, c-format msgid "" "\n" @@ -5646,65 +5645,65 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:7000 src/readelf.c:7154 +#: src/readelf.c:7343 src/readelf.c:7497 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшеннÑ" -#: src/readelf.c:7015 +#: src/readelf.c:7358 msgid "FDE address encoding: " msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: " -#: src/readelf.c:7021 +#: src/readelf.c:7364 msgid "LSDA pointer encoding: " msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: " -#: src/readelf.c:7131 +#: src/readelf.c:7474 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (зміщеннÑ: %#<PRIx64>)" -#: src/readelf.c:7138 +#: src/readelf.c:7481 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)" -#: src/readelf.c:7175 +#: src/readelf.c:7518 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sвказівник LSDA: %#<PRIx64>\n" -#: src/readelf.c:7260 +#: src/readelf.c:7603 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s" -#: src/readelf.c:7270 +#: src/readelf.c:7613 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s" -#: src/readelf.c:7292 +#: src/readelf.c:7635 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° «%s» (%s): %s" -#: src/readelf.c:7622 +#: src/readelf.c:7965 #, c-format msgid "invalid file (%<PRId64>): %s" msgstr "некоректний файл (%<PRId64>): %s" -#: src/readelf.c:7626 +#: src/readelf.c:7969 #, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr "немає srcfiles Ð´Ð»Ñ CU [%<PRIx64>]" -#: src/readelf.c:7630 +#: src/readelf.c:7973 #, c-format msgid "couldn't get DWARF CU: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ CU DWARF: %s" -#: src/readelf.c:7952 +#: src/readelf.c:8295 #, c-format msgid "" "\n" @@ -5715,12 +5714,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n" " [ЗміщеннÑ]\n" -#: src/readelf.c:8002 +#: src/readelf.c:8345 #, c-format msgid "cannot get next unit: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ наÑтупний модуль: %s" -#: src/readelf.c:8022 +#: src/readelf.c:8365 #, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5733,7 +5732,7 @@ msgstr "" "%<PRIu8>, Розмір зміщеннÑ: %<PRIu8>\n" " ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64> [%<PRIx64>]\n" -#: src/readelf.c:8034 +#: src/readelf.c:8377 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5744,38 +5743,38 @@ msgstr "" " ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, " "ЗміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:8044 src/readelf.c:8205 +#: src/readelf.c:8387 src/readelf.c:8548 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr " Тип модулÑ: %s (%<PRIu8>)" -#: src/readelf.c:8071 +#: src/readelf.c:8414 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "невідома верÑÑ–Ñ (%d) або тип Ð¼Ð¾Ð´ÑƒÐ»Ñ (%d)" -#: src/readelf.c:8100 +#: src/readelf.c:8443 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s" -#: src/readelf.c:8109 +#: src/readelf.c:8452 #, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ мітку DIE за зміщеннÑм [%<PRIu64>] у розділі «%s»: %s" -#: src/readelf.c:8145 +#: src/readelf.c:8488 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n" -#: src/readelf.c:8153 +#: src/readelf.c:8496 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s" -#: src/readelf.c:8197 +#: src/readelf.c:8540 #, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5786,7 +5785,7 @@ msgstr "" " ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, " "ЗміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:8249 +#: src/readelf.c:8592 #, c-format msgid "" "\n" @@ -5797,13 +5796,13 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" "\n" -#: src/readelf.c:8581 +#: src/readelf.c:8924 #, c-format msgid "unknown form: %s" msgstr "невідома форма: %s" #. Print what we got so far. -#: src/readelf.c:8729 +#: src/readelf.c:9072 #, c-format msgid "" "\n" @@ -5836,27 +5835,27 @@ msgstr "" "\n" "Коди операцій:\n" -#: src/readelf.c:8751 +#: src/readelf.c:9094 #, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ верÑÑ–ÑŽ .debug_line: %u\n" -#: src/readelf.c:8759 +#: src/readelf.c:9102 #, c-format msgid "cannot handle address size: %u\n" msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір адреÑи: %u\n" -#: src/readelf.c:8767 +#: src/readelf.c:9110 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір Ñелектора Ñегментів: %u\n" -#: src/readelf.c:8777 +#: src/readelf.c:9120 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»" -#: src/readelf.c:8792 +#: src/readelf.c:9135 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5864,7 +5863,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n" msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n" msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n" -#: src/readelf.c:8803 +#: src/readelf.c:9146 msgid "" "\n" "Directory table:" @@ -5872,12 +5871,12 @@ msgstr "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:" -#: src/readelf.c:8809 src/readelf.c:8886 +#: src/readelf.c:9152 src/readelf.c:9229 #, c-format msgid " [" msgstr " [" -#: src/readelf.c:8880 +#: src/readelf.c:9223 msgid "" "\n" "File name table:" @@ -5885,11 +5884,11 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:" -#: src/readelf.c:8941 +#: src/readelf.c:9284 msgid " Entry Dir Time Size Name" msgstr " Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва" -#: src/readelf.c:8987 +#: src/readelf.c:9330 #, fuzzy msgid "" "\n" @@ -5898,7 +5897,7 @@ msgstr "" "\n" "Оператори номерів Ñ€Ñдків:" -#: src/readelf.c:8991 +#: src/readelf.c:9334 msgid "" "\n" "Line number statements:" @@ -5906,129 +5905,129 @@ msgstr "" "\n" "Оператори номерів Ñ€Ñдків:" -#: src/readelf.c:9006 +#: src/readelf.c:9349 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ" -#: src/readelf.c:9040 +#: src/readelf.c:9383 #, c-format msgid " special opcode %u: address+%u = " msgstr " Ñпеціальний код операції %u: адреÑа+%u = " -#: src/readelf.c:9044 +#: src/readelf.c:9387 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr ", індекÑ_оп = %u, Ñ€Ñдок%+d = %zu\n" -#: src/readelf.c:9047 +#: src/readelf.c:9390 #, c-format msgid ", line%+d = %zu\n" msgstr ", Ñ€Ñдок%+d = %zu\n" -#: src/readelf.c:9065 +#: src/readelf.c:9408 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:9070 +#: src/readelf.c:9413 msgid " end of sequence" msgstr " кінець поÑлідовноÑÑ‚Ñ–" -#: src/readelf.c:9088 +#: src/readelf.c:9431 #, c-format msgid " set address to " msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " -#: src/readelf.c:9116 +#: src/readelf.c:9459 #, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" " Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, " "назва=%s\n" -#: src/readelf.c:9130 +#: src/readelf.c:9473 #, c-format msgid " set discriminator to %u\n" msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n" -#: src/readelf.c:9157 +#: src/readelf.c:9500 #, c-format msgid " set inlined context %u, function name %s (0x%x)\n" msgstr "" -#: src/readelf.c:9181 +#: src/readelf.c:9524 #, fuzzy, c-format #| msgid "Also show function names" msgid " set function name %s (0x%x)\n" msgstr "Показувати також назви функцій" #. Unknown, ignore it. -#: src/readelf.c:9188 +#: src/readelf.c:9531 msgid " unknown opcode" msgstr " невідомий код операції" #. Takes no argument. -#: src/readelf.c:9200 +#: src/readelf.c:9543 msgid " copy" msgstr " копіÑ" -#: src/readelf.c:9211 +#: src/readelf.c:9554 #, c-format msgid " advance address by %u to " msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до " -#: src/readelf.c:9215 src/readelf.c:9276 +#: src/readelf.c:9558 src/readelf.c:9619 #, c-format msgid ", op_index to %u" msgstr ", op_index до %u" -#: src/readelf.c:9227 +#: src/readelf.c:9570 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n" -#: src/readelf.c:9237 +#: src/readelf.c:9580 #, c-format msgid " set file to %<PRIu64>\n" msgstr " вÑтановити файл у %<PRIu64>\n" -#: src/readelf.c:9248 +#: src/readelf.c:9591 #, c-format msgid " set column to %<PRIu64>\n" msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n" -#: src/readelf.c:9255 +#: src/readelf.c:9598 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " вÑтановити «%s» у %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:9261 +#: src/readelf.c:9604 msgid " set basic block flag" msgstr " вÑтановити прапорець базового блоку" -#: src/readelf.c:9272 +#: src/readelf.c:9615 #, c-format msgid " advance address by constant %u to " msgstr " збільшити адреÑу на Ñталу величину %u до " -#: src/readelf.c:9292 +#: src/readelf.c:9635 #, c-format msgid " advance address by fixed value %u to \n" msgstr " збільшити адреÑу на фікÑовану величину %u до \n" #. Takes no argument. -#: src/readelf.c:9302 +#: src/readelf.c:9645 msgid " set prologue end flag" msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу" #. Takes no argument. -#: src/readelf.c:9307 +#: src/readelf.c:9650 msgid " set epilogue begin flag" msgstr " вÑтановити прапорець початку епілогу" -#: src/readelf.c:9317 +#: src/readelf.c:9660 #, c-format msgid " set isa to %u\n" msgstr " вÑтановити isa у %u\n" @@ -6036,7 +6035,7 @@ msgstr " вÑтановити isa у %u\n" #. This is a new opcode the generator but not we know about. #. Read the parameters associated with it but then discard #. everything. Read all the parameters for this opcode. -#: src/readelf.c:9326 +#: src/readelf.c:9669 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -6044,87 +6043,87 @@ msgstr[0] " невідомий код операції з %<PRIu8> Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ msgstr[1] " невідомий код операції з %<PRIu8> параметрами:" msgstr[2] " невідомий код операції з %<PRIu8> параметрами:" -#: src/readelf.c:9527 +#: src/readelf.c:9870 #, fuzzy, c-format msgid " <INVALID DATA>\n" msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:9567 +#: src/readelf.c:9910 #, c-format msgid "invalid loclists data" msgstr "некоректні дані loclists" -#: src/readelf.c:10037 src/readelf.c:11082 +#: src/readelf.c:10380 src/readelf.c:11425 msgid " <INVALID DATA>\n" msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:10168 +#: src/readelf.c:10511 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу" -#: src/readelf.c:10191 +#: src/readelf.c:10534 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу" -#: src/readelf.c:10286 +#: src/readelf.c:10629 #, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " ЗміщеннÑ: 0x%<PRIx64>\n" -#: src/readelf.c:10298 +#: src/readelf.c:10641 #, c-format msgid " Version: %<PRIu16>\n" msgstr " ВерÑÑ–Ñ: %<PRIu16>\n" -#: src/readelf.c:10304 src/readelf.c:11202 +#: src/readelf.c:10647 src/readelf.c:11546 #, c-format msgid " unknown version, cannot parse section\n" msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n" -#: src/readelf.c:10311 +#: src/readelf.c:10654 #, c-format msgid " Flag: 0x%<PRIx8>" msgstr " Прапорець: 0x%<PRIx8>" -#: src/readelf.c:10340 +#: src/readelf.c:10683 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr " Довжина зміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:10348 +#: src/readelf.c:10691 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:10373 +#: src/readelf.c:10716 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n" -#: src/readelf.c:10380 +#: src/readelf.c:10723 #, c-format msgid " [%<PRIx8>]" msgstr " [%<PRIx8>]" -#: src/readelf.c:10392 +#: src/readelf.c:10735 #, c-format msgid " %<PRIu8> arguments:" msgstr " %<PRIu8> аргументів:" -#: src/readelf.c:10407 +#: src/readelf.c:10750 #, c-format msgid " no arguments." msgstr " немає аргументів." -#: src/readelf.c:10608 +#: src/readelf.c:10951 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" " [%5d] Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %6<PRId64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: %6<PRId64>, назва: %s\n" -#: src/readelf.c:10663 +#: src/readelf.c:11006 #, c-format msgid "" "\n" @@ -6136,37 +6135,37 @@ msgstr "" " %*s Ð Ñдок\n" #. TRANS: the debugstr| prefix makes the string unique. -#: src/readelf.c:10668 +#: src/readelf.c:11011 msgctxt "debugstr" msgid "Offset" msgstr "" -#: src/readelf.c:10678 +#: src/readelf.c:11021 #, c-format msgid " *** error, missing string terminator\n" msgstr " *** помилка, пропущено роздільник Ñ€Ñдків\n" -#: src/readelf.c:10800 +#: src/readelf.c:11143 #, c-format msgid " Length: %8<PRIu64>\n" msgstr " Довжина: %8<PRIu64>\n" -#: src/readelf.c:10802 +#: src/readelf.c:11145 #, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " Розмір зÑуву: %8<PRIu8>\n" -#: src/readelf.c:10816 +#: src/readelf.c:11159 #, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n" -#: src/readelf.c:10825 +#: src/readelf.c:11168 #, c-format msgid " Padding: %8<PRIx16>\n" msgstr " ЗаповненнÑ: %8<PRIx16>\n" -#: src/readelf.c:10879 +#: src/readelf.c:11222 #, c-format msgid "" "\n" @@ -6175,7 +6174,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10981 +#: src/readelf.c:11324 #, c-format msgid "" "\n" @@ -6184,22 +6183,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:11004 +#: src/readelf.c:11347 #, c-format msgid " LPStart encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x " -#: src/readelf.c:11016 +#: src/readelf.c:11359 #, c-format msgid " TType encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x " -#: src/readelf.c:11033 +#: src/readelf.c:11376 #, c-format msgid " Call site encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x " -#: src/readelf.c:11048 +#: src/readelf.c:11391 msgid "" "\n" " Call site table:" @@ -6207,7 +6206,7 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:" -#: src/readelf.c:11064 +#: src/readelf.c:11407 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -6220,12 +6219,12 @@ msgstr "" " МіÑце заÑтоÑуваннÑ: %#<PRIx64>\n" " ДіÑ: %u\n" -#: src/readelf.c:11137 +#: src/readelf.c:11480 #, c-format msgid "invalid TType encoding" msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType" -#: src/readelf.c:11164 +#: src/readelf.c:11507 #, c-format msgid "" "\n" @@ -6234,37 +6233,43 @@ msgstr "" "\n" "Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n" -#: src/readelf.c:11193 +#: src/readelf.c:11536 #, c-format msgid " Version: %<PRId32>\n" msgstr " ВерÑÑ–Ñ: %<PRId32>\n" -#: src/readelf.c:11211 +#: src/readelf.c:11555 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n" -#: src/readelf.c:11218 +#: src/readelf.c:11562 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n" -#: src/readelf.c:11225 +#: src/readelf.c:11569 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n" -#: src/readelf.c:11232 +#: src/readelf.c:11576 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n" -#: src/readelf.c:11239 +#: src/readelf.c:11586 +#, fuzzy, c-format +#| msgid " constant offset: %#<PRIx32>\n" +msgid " shortcut offset: %#<PRIx32>\n" +msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n" + +#: src/readelf.c:11594 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n" -#: src/readelf.c:11253 +#: src/readelf.c:11608 #, c-format msgid "" "\n" @@ -6273,7 +6278,7 @@ msgstr "" "\n" " СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:11278 +#: src/readelf.c:11633 #, c-format msgid "" "\n" @@ -6282,7 +6287,7 @@ msgstr "" "\n" " СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:11307 +#: src/readelf.c:11662 #, c-format msgid "" "\n" @@ -6291,7 +6296,7 @@ msgstr "" "\n" " СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:11339 +#: src/readelf.c:11705 #, c-format msgid "" "\n" @@ -6300,18 +6305,40 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n" -#: src/readelf.c:11477 +#: src/readelf.c:11790 +#, fuzzy, c-format +#| msgid "" +#| "\n" +#| " Symbol table at offset %#<PRIx32> contains %zu slots:\n" +msgid "" +"\n" +"Shortcut table at offset %#<PRIx32> contains %zu slots:\n" +msgstr "" +"\n" +" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n" + +#: src/readelf.c:11802 +#, c-format +msgid "Language of main: %s\n" +msgstr "" + +#: src/readelf.c:11803 +#, c-format +msgid "Name of main: " +msgstr "" + +#: src/readelf.c:11886 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор контекÑту зневаджуваннÑ: %s" -#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573 -#: src/readelf.c:12630 +#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982 +#: src/readelf.c:13039 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s" -#: src/readelf.c:12207 +#: src/readelf.c:12616 #, c-format msgid "" "\n" @@ -6320,21 +6347,21 @@ msgstr "" "\n" "%*s... <повторюєтьÑÑ %u разів> ..." -#: src/readelf.c:12709 +#: src/readelf.c:13118 msgid " Owner Data size Type\n" msgstr " ВлаÑник Розм. даних Тип\n" -#: src/readelf.c:12737 +#: src/readelf.c:13146 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12789 +#: src/readelf.c:13198 #, c-format msgid "cannot get content of note: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ нотатки: %s" -#: src/readelf.c:12822 +#: src/readelf.c:13231 #, c-format msgid "" "\n" @@ -6344,7 +6371,7 @@ msgstr "" "Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм " "%#0<PRIx64>:\n" -#: src/readelf.c:12845 +#: src/readelf.c:13254 #, c-format msgid "" "\n" @@ -6353,7 +6380,7 @@ msgstr "" "\n" "Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12892 +#: src/readelf.c:13301 #, c-format msgid "" "\n" @@ -6362,12 +6389,12 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n" -#: src/readelf.c:12919 src/readelf.c:12970 +#: src/readelf.c:13328 src/readelf.c:13379 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s" -#: src/readelf.c:12924 +#: src/readelf.c:13333 #, c-format msgid "" "\n" @@ -6376,7 +6403,7 @@ msgstr "" "\n" "ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12929 +#: src/readelf.c:13338 #, c-format msgid "" "\n" @@ -6387,7 +6414,7 @@ msgstr "" "ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd неÑтиÑнено) за " "зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12943 +#: src/readelf.c:13352 #, c-format msgid "" "\n" @@ -6396,7 +6423,7 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n" -#: src/readelf.c:12975 +#: src/readelf.c:13384 #, c-format msgid "" "\n" @@ -6405,7 +6432,7 @@ msgstr "" "\n" "Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12980 +#: src/readelf.c:13389 #, c-format msgid "" "\n" @@ -6416,7 +6443,7 @@ msgstr "" "Ð Ñдок розділу [%zu] «%s» міÑтить %<PRIu64> байти (%zd неÑтиÑнено) на " "зміщенні %#0<PRIx64>:\n" -#: src/readelf.c:13028 +#: src/readelf.c:13437 #, c-format msgid "" "\n" @@ -6425,7 +6452,7 @@ msgstr "" "\n" "розділу [%lu] не Ñ–Ñнує" -#: src/readelf.c:13058 +#: src/readelf.c:13467 #, c-format msgid "" "\n" @@ -6434,12 +6461,12 @@ msgstr "" "\n" "розділу «%s» не Ñ–Ñнує" -#: src/readelf.c:13113 +#: src/readelf.c:13522 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s" -#: src/readelf.c:13116 +#: src/readelf.c:13525 #, c-format msgid "" "\n" @@ -6448,7 +6475,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика Ñимволів\n" -#: src/readelf.c:13120 +#: src/readelf.c:13529 #, c-format msgid "" "\n" @@ -6457,12 +6484,12 @@ msgstr "" "\n" "Покажчик архіву «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:13138 +#: src/readelf.c:13547 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s" -#: src/readelf.c:13143 +#: src/readelf.c:13552 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» міÑтить:\n" @@ -6979,7 +7006,7 @@ msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° E msgid "%s: error while getting shdrstrndx: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ shdrstrndx: %s" -#: src/strip.c:1712 src/strip.c:2553 +#: src/strip.c:1712 src/strip.c:2552 #, c-format msgid "%s: error updating shdrstrndx: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ shdrstrndx: %s" @@ -7014,7 +7041,7 @@ msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" "Ðеможливо вилучити Ñимвол [%zd] з розміщеної у пам'ÑÑ‚Ñ– таблиці Ñимволів [%zd]" -#: src/strip.c:2469 src/strip.c:2577 +#: src/strip.c:2469 src/strip.c:2574 #, c-format msgid "while writing '%s': %s" msgstr "під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу «%s»: %s" @@ -7034,22 +7061,22 @@ msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми Ð´Ð»Ñ msgid "%s: error while creating ELF header: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s" -#: src/strip.c:2562 +#: src/strip.c:2560 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" -#: src/strip.c:2602 src/strip.c:2622 +#: src/strip.c:2599 src/strip.c:2619 #, c-format msgid "while writing '%s'" msgstr "під Ñ‡Ð°Ñ Ñпроби запиÑу «%s»" -#: src/strip.c:2659 src/strip.c:2666 +#: src/strip.c:2656 src/strip.c:2663 #, c-format msgid "error while finishing '%s': %s" msgstr "помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Â«%s»: %s" -#: src/strip.c:2683 src/strip.c:2759 +#: src/strip.c:2680 src/strip.c:2756 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "не вдалоÑÑ Ð²Ñтановити права доÑтупу та дату зміни «%s»" @@ -7542,7 +7569,7 @@ msgid "" "section PATH SECTION-NAME\n" msgstr "" -#: tests/backtrace.c:483 +#: tests/backtrace.c:491 msgid "Run executable" msgstr "ЗапуÑтити виконуваний файл" @@ -7555,6 +7582,11 @@ msgid "Show instances of inlined functions" msgstr "ВивеÑти екземплÑри вбудованих функцій" #, c-format +#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" +#~ msgstr "" +#~ "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Rela\n" + +#, c-format #~ msgid "cannot get .debug_addr section data: %s" #~ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу .debug_addr: %s" diff --git a/src/.gitignore b/src/.gitignore index f7252a4a..83d43a20 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -11,6 +11,7 @@ /ranlib /readelf /size +/srcfiles /stack /strings /strip diff --git a/src/ChangeLog b/src/ChangeLog index c26dafdd..ae62f4ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,19 @@ +2023-03-27 Di Chen <dichen@redhat.com> + + * readelf.c (options): Support dynamic symtab print with '-Ds'. + (process_symtab): New function. + (handle_dynamic_symtab): Likewise. + (handle_symtab): Return true if symtab was printed. Move printing + code to process_symtab and call that function. + (print_symtab): Call handle_dynamic_symtab for SHT_DYNSYM when + using dynamic segment. + (enum dyn_idx): Include i_symtab_shndx, i_verneednum and + i_verdefnum. + (process_elf_file): Only call print_symtab for SHT_SYMTAB when not + use_dynamic_segment. + (get_dynscn_addrs): Handle DT_VERDEFNUM, DT_VERNEEDNUM and + DT_SYMTAB_SHNDX. + 2023-03-03 Mark Wielaard <mark@klomp.org> * readelf (process_elf_file): ebl_closebackend only after diff --git a/src/Makefile.am b/src/Makefile.am index 6cc019da..d3d9d408 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,7 +27,7 @@ AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw $(STACK_USAGE_NO_ERROR) bin_PROGRAMS = readelf nm size strip elflint findtextrel addr2line \ elfcmp objdump ranlib strings ar unstrip stack elfcompress \ - elfclassify + elfclassify srcfiles noinst_LIBRARIES = libar.a @@ -42,7 +42,7 @@ CLEANFILES += make-debug-archive if BUILD_STATIC libasm = ../libasm/libasm.a libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread -libelf = ../libelf/libelf.a -lz +libelf = ../libelf/libelf.a -lz $(zstd_LIBS) else libasm = ../libasm/libasm.so libdw = ../libdw/libdw.so @@ -84,6 +84,8 @@ unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib) elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) elfclassify_LDADD = $(libelf) $(libdw) $(libeu) $(argp_LDADD) +srcfiles_SOURCES = srcfiles.cxx +srcfiles_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) installcheck-binPROGRAMS: $(bin_PROGRAMS) bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ diff --git a/src/elfcompress.c b/src/elfcompress.c index 18ade66f..f771b92a 100644 --- a/src/elfcompress.c +++ b/src/elfcompress.c @@ -529,30 +529,33 @@ process_file (const char *fname) } } - if (shdr->sh_type != SHT_NOBITS - && (shdr->sh_flags & SHF_ALLOC) == 0) + if (force || type != schtype) { - set_section (sections, ndx); - /* Check if we might want to change this section name. */ - if (! adjust_names - && ((type != ZLIB_GNU - && startswith (sname, ".zdebug")) - || (type == ZLIB_GNU - && startswith (sname, ".debug")))) - adjust_names = true; - - /* We need a buffer this large if we change the names. */ - if (adjust_names) + if (shdr->sh_type != SHT_NOBITS + && (shdr->sh_flags & SHF_ALLOC) == 0) { - size_t slen = strlen (sname); - if (slen > maxnamelen) - maxnamelen = slen; + set_section (sections, ndx); + /* Check if we might want to change this section name. */ + if (! adjust_names + && ((type != ZLIB_GNU + && startswith (sname, ".zdebug")) + || (type == ZLIB_GNU + && startswith (sname, ".debug")))) + adjust_names = true; + + /* We need a buffer this large if we change the names. */ + if (adjust_names) + { + size_t slen = strlen (sname); + if (slen > maxnamelen) + maxnamelen = slen; + } } + else + if (verbose >= 0) + printf ("[%zd] %s ignoring %s section\n", ndx, sname, + (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated")); } - else - if (verbose >= 0) - printf ("[%zd] %s ignoring %s section\n", ndx, sname, - (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated")); } if (shdr->sh_type == SHT_SYMTAB) diff --git a/src/elflint.c b/src/elflint.c index dd42dcb4..864de710 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -1,5 +1,6 @@ /* Pedantic checking of ELF files compliance with gABI/psABI spec. Copyright (C) 2001-2015, 2017, 2018 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -1291,10 +1292,20 @@ section [%2d] '%s': no relocations for merge-able string sections possible\n"), size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT); if (shdr->sh_entsize != sh_entsize) - ERROR (_(reltype == ELF_T_RELA ? "\ -section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ -section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), - idx, section_name (ebl, idx)); + { + if (reltype == ELF_T_RELA) + ERROR ("\ +section [%2d] '%s': section entry size does not match ElfXX_Rela\n", + idx, section_name (ebl, idx)); + else if (reltype == ELF_T_REL) + ERROR ("\ +section [%2d] '%s': section entry size does not match ElfXX_Rel\n", + idx, section_name (ebl, idx)); + else + ERROR ("\ +section [%2d] '%s': section entry size does not match ElfXX_Relr\n", + idx, section_name (ebl, idx)); + } /* In preparation of checking whether relocations are text relocations or not we need to determine whether the file is @@ -1590,6 +1601,32 @@ section [%2d] '%s': cannot get relocation %zu: %s\n"), } } +static void +check_relr (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr, int idx) +{ + Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); + if (data == NULL) + { + ERROR (_("section [%2d] '%s': cannot get section data\n"), + idx, section_name (ebl, idx)); + return; + } + + /* Check the fields of the section header. */ + GElf_Shdr destshdr_mem; + GElf_Shdr *destshdr = NULL; + struct loaded_segment *loaded = NULL; + check_reloc_shdr (ebl, ehdr, shdr, idx, ELF_T_RELR, &destshdr, + &destshdr_mem, &loaded); + + /* Just throw them away. */ + while (loaded != NULL) + { + struct loaded_segment *old = loaded; + loaded = loaded->next; + free (old); + } +} /* Number of dynamic sections. */ static int ndynamic; @@ -1780,6 +1817,7 @@ section [%2d] '%s': entry %zu: pointer does not match address of section [%2d] ' case DT_PLTGOT: case DT_REL: case DT_RELA: + case DT_RELR: case DT_SYMBOLIC: case DT_SYMTAB: case DT_VERDEF: @@ -3660,6 +3698,7 @@ static const struct { ".plt", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more tests { ".preinit_array", 15, SHT_PREINIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 }, { ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests + { ".relr", 5, SHT_RELR, atleast, 0, SHF_ALLOC }, // XXX more tests { ".rel", 4, SHT_REL, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests { ".rodata", 8, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS }, { ".rodata1", 9, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS }, @@ -4182,6 +4221,10 @@ section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"), check_rel (ebl, ehdr, shdr, cnt); break; + case SHT_RELR: + check_relr (ebl, ehdr, shdr, cnt); + break; + case SHT_DYNAMIC: check_dynamic (ebl, ehdr, shdr, cnt); break; diff --git a/src/readelf.c b/src/readelf.c index 6950204e..decfaf15 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -1,5 +1,6 @@ /* Print information from ELF file in human-readable form. Copyright (C) 1999-2018 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -301,13 +302,29 @@ static void print_shdr (Ebl *ebl, GElf_Ehdr *ehdr); static void print_phdr (Ebl *ebl, GElf_Ehdr *ehdr); static void print_scngrp (Ebl *ebl); static void print_dynamic (Ebl *ebl); -static void print_relocs (Ebl *ebl, GElf_Ehdr *ehdr); +static void print_relocs (Ebl *ebl, Dwfl_Module *mod, GElf_Ehdr *ehdr); static void handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr); static void handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr); +static void handle_relocs_relr (Ebl *ebl, Dwfl_Module *mod, Elf_Scn *scn, + GElf_Shdr *shdr); static bool print_symtab (Ebl *ebl, int type); -static void handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); +static bool handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); +static bool handle_dynamic_symtab (Ebl *ebl); +static void +process_symtab( + Ebl * ebl, + unsigned int nsyms, + Elf64_Word idx, + Elf32_Word verneed_stridx, + Elf32_Word verdef_stridx, + Elf_Data * symdata, + Elf_Data * versym_data, + Elf_Data * symstr_data, + Elf_Data * verneed_data, + Elf_Data * verdef_data, + Elf_Data * xndx_data); static void print_verinfo (Ebl *ebl); static void handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); static void handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); @@ -322,12 +339,17 @@ static void dump_data (Ebl *ebl); static void dump_strings (Ebl *ebl); static void print_strings (Ebl *ebl); static void dump_archive_index (Elf *, const char *); +static void print_dwarf_addr (Dwfl_Module *dwflmod, int address_size, + Dwarf_Addr address, Dwarf_Addr raw); enum dyn_idx { + i_symtab_shndx, i_strsz, i_verneed, + i_verneednum, i_verdef, + i_verdefnum, i_versym, i_symtab, i_strtab, @@ -1035,14 +1057,14 @@ process_elf_file (Dwfl_Module *dwflmod, int fd) if (print_dynamic_table) print_dynamic (ebl); if (print_relocations) - print_relocs (pure_ebl, ehdr); + print_relocs (pure_ebl, dwflmod, ehdr); if (print_histogram) handle_hash (ebl); if (print_symbol_table || print_dynsym_table) symtab_printed |= print_symtab (ebl, SHT_DYNSYM); if (print_version_info) print_verinfo (ebl); - if (print_symbol_table) + if (print_symbol_table && !use_dynamic_segment) symtab_printed |= print_symtab (ebl, SHT_SYMTAB); if ((print_symbol_table || print_dynsym_table) @@ -1606,7 +1628,7 @@ static const char * section_name (Ebl *ebl, GElf_Shdr *shdr) { size_t shstrndx; - if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0) + if (shdr == NULL || elf_getshdrstrndx (ebl->elf, &shstrndx) < 0) return "???"; return elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "???"; } @@ -1954,9 +1976,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr) case DT_RELASZ: case DT_STRSZ: case DT_RELSZ: + case DT_RELRSZ: case DT_RELAENT: case DT_SYMENT: case DT_RELENT: + case DT_RELRENT: case DT_PLTPADSZ: case DT_MOVEENT: case DT_MOVESZ: @@ -2032,7 +2056,7 @@ print_dynamic (Ebl *ebl) /* Print relocations. */ static void -print_relocs (Ebl *ebl, GElf_Ehdr *ehdr) +print_relocs (Ebl *ebl, Dwfl_Module *mod, GElf_Ehdr *ehdr) { /* Find all relocation sections and handle them. */ Elf_Scn *scn = NULL; @@ -2049,6 +2073,8 @@ print_relocs (Ebl *ebl, GElf_Ehdr *ehdr) handle_relocs_rel (ebl, ehdr, scn, shdr); else if (shdr->sh_type == SHT_RELA) handle_relocs_rela (ebl, ehdr, scn, shdr); + else if (shdr->sh_type == SHT_RELR) + handle_relocs_relr (ebl, mod, scn, shdr); } } } @@ -2437,12 +2463,124 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) } } +/* Handle a relocation section. */ +static void +handle_relocs_relr (Ebl *ebl, Dwfl_Module *mod, Elf_Scn *scn, GElf_Shdr *shdr) +{ + int class = gelf_getclass (ebl->elf); + size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELR, 1, EV_CURRENT); + int nentries = shdr->sh_size / sh_entsize; + + /* Get the data of the section. */ + Elf_Data *data = elf_getdata (scn, NULL); + if (data == NULL) + return; + + /* Get the section header string table index. */ + size_t shstrndx; + if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)) + error_exit (0, _("cannot get section header string table index")); + + /* A .relr.dyn section does not refer to a specific section. */ + printf (ngettext ("\ +\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n", + "\ +\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n", + nentries), + (unsigned int) elf_ndxscn (scn), + elf_strptr (ebl->elf, shstrndx, shdr->sh_name), + shdr->sh_offset, + nentries); + + if (class == ELFCLASS32) + { + uint32_t base = 0; + for (int cnt = 0; cnt < nentries; ++cnt) + { + Elf32_Word *words = data->d_buf; + Elf32_Word entry = words[cnt]; + + /* Just the raw entries? */ + if (print_unresolved_addresses) + printf (" %#010" PRIx32 "%s\n", entry, + (entry & 1) == 0 ? " *" : ""); + else + { + /* A real address, also sets base. */ + if ((entry & 1) == 0) + { + printf (" "); + print_dwarf_addr (mod, 4, entry, entry); + printf (" *\n"); + + base = entry + 4; + } + else + { + /* Untangle address from base and bits. */ + uint32_t addr; + for (addr = base; (entry >>= 1) != 0; addr += 4) + if ((entry & 1) != 0) + { + printf (" "); + print_dwarf_addr (mod, 4, addr, addr); + printf ("\n"); + } + base += 4 * (4 * 8 - 1); + } + } + } + } + else + { + uint64_t base = 0; + for (int cnt = 0; cnt < nentries; ++cnt) + { + Elf64_Xword *xwords = data->d_buf; + Elf64_Xword entry = xwords[cnt]; + + /* Just the raw entries? */ + if (print_unresolved_addresses) + printf (" %#018" PRIx64 "%s\n", entry, + (entry & 1) == 0 ? " *" : ""); + else + { + /* A real address, also sets base. */ + if ((entry & 1) == 0) + { + printf (" "); + print_dwarf_addr (mod, 8, entry, entry); + printf (" *\n"); + + base = entry + 8; + } + else + { + /* Untangle address from base and bits. */ + uint64_t addr; + for (addr = base; (entry >>= 1) != 0; addr += 8) + if ((entry & 1) != 0) + { + printf (" "); + print_dwarf_addr (mod, 8, addr, addr); + printf ("\n"); + } + base += 8 * (8 * 8 - 1); + } + } + } + } +} /* Print the program header. Return true if a symtab is printed, false otherwise. */ static bool print_symtab (Ebl *ebl, int type) { + /* Use the dynamic section info to display symbol tables. */ + if (use_dynamic_segment && type == SHT_DYNSYM) + return handle_dynamic_symtab(ebl); + /* Find the symbol table(s). For this we have to search through the section table. */ Elf_Scn *scn = NULL; @@ -2481,8 +2619,7 @@ print_symtab (Ebl *ebl, int type) _("cannot get section [%zd] header: %s"), elf_ndxscn (scn), elf_errmsg (-1)); } - handle_symtab (ebl, scn, shdr); - symtab_printed = true; + symtab_printed = handle_symtab (ebl, scn, shdr); } } @@ -2491,6 +2628,179 @@ print_symtab (Ebl *ebl, int type) static void +process_symtab (Ebl *ebl, unsigned int nsyms, Elf64_Word idx, + Elf32_Word verneed_stridx, Elf32_Word verdef_stridx, + Elf_Data *symdata, Elf_Data *versym_data, + Elf_Data *symstr_data, Elf_Data *verneed_data, + Elf_Data *verdef_data, Elf_Data *xndx_data) +{ + for (unsigned int cnt = 0; cnt < nsyms; ++cnt) + { + char typebuf[64]; + char bindbuf[64]; + char scnbuf[64]; + Elf32_Word xndx; + GElf_Sym sym_mem; + GElf_Sym *sym + = gelf_getsymshndx (symdata, xndx_data, cnt, &sym_mem, &xndx); + + if (unlikely (sym == NULL)) + continue; + + /* Determine the real section index. */ + if (likely (sym->st_shndx != SHN_XINDEX)) + xndx = sym->st_shndx; + + printf (_ ("\ +%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"), + cnt, gelf_getclass (ebl->elf) == ELFCLASS32 ? 8 : 16, + sym->st_value, sym->st_size, + ebl_symbol_type_name (ebl, GELF_ST_TYPE (sym->st_info), typebuf, + sizeof (typebuf)), + ebl_symbol_binding_name (ebl, GELF_ST_BIND (sym->st_info), + bindbuf, sizeof (bindbuf)), + get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)), + ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf, + sizeof (scnbuf), NULL, shnum), + use_dynamic_segment == true + ? (char *)symstr_data->d_buf + sym->st_name + : elf_strptr (ebl->elf, idx, sym->st_name)); + + if (versym_data != NULL) + { + /* Get the version information. */ + GElf_Versym versym_mem; + GElf_Versym *versym = gelf_getversym (versym_data, cnt, &versym_mem); + + if (versym != NULL && ((*versym & 0x8000) != 0 || *versym > 1)) + { + bool is_nobits = false; + bool check_def = xndx != SHN_UNDEF; + + if (xndx < SHN_LORESERVE || sym->st_shndx == SHN_XINDEX) + { + GElf_Shdr symshdr_mem; + GElf_Shdr *symshdr = gelf_getshdr ( + elf_getscn (ebl->elf, xndx), &symshdr_mem); + + is_nobits + = (symshdr != NULL && symshdr->sh_type == SHT_NOBITS); + } + + if (is_nobits || !check_def) + { + /* We must test both. */ + GElf_Vernaux vernaux_mem; + GElf_Vernaux *vernaux = NULL; + size_t vn_offset = 0; + + GElf_Verneed verneed_mem; + GElf_Verneed *verneed + = gelf_getverneed (verneed_data, 0, &verneed_mem); + while (verneed != NULL) + { + size_t vna_offset = vn_offset; + + vernaux = gelf_getvernaux (verneed_data, + vna_offset += verneed->vn_aux, + &vernaux_mem); + while (vernaux != NULL && vernaux->vna_other != *versym + && vernaux->vna_next != 0 + && (verneed_data->d_size - vna_offset + >= vernaux->vna_next)) + { + /* Update the offset. */ + vna_offset += vernaux->vna_next; + + vernaux = (vernaux->vna_next == 0 + ? NULL + : gelf_getvernaux (verneed_data, + vna_offset, + &vernaux_mem)); + } + + /* Check whether we found the version. */ + if (vernaux != NULL && vernaux->vna_other == *versym) + /* Found it. */ + break; + + if (verneed_data->d_size - vn_offset < verneed->vn_next) + break; + + vn_offset += verneed->vn_next; + verneed + = (verneed->vn_next == 0 + ? NULL + : gelf_getverneed (verneed_data, vn_offset, + &verneed_mem)); + } + + if (vernaux != NULL && vernaux->vna_other == *versym) + { + printf ("@%s (%u)", + use_dynamic_segment == true + ? (char *)symstr_data->d_buf + + vernaux->vna_name + : elf_strptr (ebl->elf, verneed_stridx, + vernaux->vna_name), + (unsigned int)vernaux->vna_other); + check_def = 0; + } + else if (unlikely (!is_nobits)) + error (0, 0, _ ("bad dynamic symbol")); + else + check_def = 1; + } + + if (check_def && *versym != 0x8001) + { + /* We must test both. */ + size_t vd_offset = 0; + + GElf_Verdef verdef_mem; + GElf_Verdef *verdef + = gelf_getverdef (verdef_data, 0, &verdef_mem); + while (verdef != NULL) + { + if (verdef->vd_ndx == (*versym & 0x7fff)) + /* Found the definition. */ + break; + + if (verdef_data->d_size - vd_offset < verdef->vd_next) + break; + + vd_offset += verdef->vd_next; + verdef = (verdef->vd_next == 0 + ? NULL + : gelf_getverdef (verdef_data, vd_offset, + &verdef_mem)); + } + + if (verdef != NULL) + { + GElf_Verdaux verdaux_mem; + GElf_Verdaux *verdaux = gelf_getverdaux ( + verdef_data, vd_offset + verdef->vd_aux, + &verdaux_mem); + + if (verdaux != NULL) + printf ((*versym & 0x8000) ? "@%s" : "@@%s", + use_dynamic_segment == true + ? (char *)symstr_data->d_buf + + verdaux->vda_name + : elf_strptr (ebl->elf, verdef_stridx, + verdaux->vda_name)); + } + } + } + } + + putchar_unlocked ('\n'); + } +} + + +static bool handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { Elf_Data *versym_data = NULL; @@ -2504,7 +2814,7 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) /* Get the data of the section. */ Elf_Data *data = elf_getdata (scn, NULL); if (data == NULL) - return; + return false; /* Find out whether we have other sections we might need. */ Elf_Scn *runscn = NULL; @@ -2574,163 +2884,184 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) Num: Value Size Type Bind Vis Ndx Name\n"), stdout); - for (unsigned int cnt = 0; cnt < nsyms; ++cnt) - { - char typebuf[64]; - char bindbuf[64]; - char scnbuf[64]; - Elf32_Word xndx; - GElf_Sym sym_mem; - GElf_Sym *sym = gelf_getsymshndx (data, xndx_data, cnt, &sym_mem, &xndx); - - if (unlikely (sym == NULL)) - continue; - - /* Determine the real section index. */ - if (likely (sym->st_shndx != SHN_XINDEX)) - xndx = sym->st_shndx; - - printf (_("\ -%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"), - cnt, - class == ELFCLASS32 ? 8 : 16, - sym->st_value, - sym->st_size, - ebl_symbol_type_name (ebl, GELF_ST_TYPE (sym->st_info), - typebuf, sizeof (typebuf)), - ebl_symbol_binding_name (ebl, GELF_ST_BIND (sym->st_info), - bindbuf, sizeof (bindbuf)), - get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)), - ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf, - sizeof (scnbuf), NULL, shnum), - elf_strptr (ebl->elf, shdr->sh_link, sym->st_name)); - - if (versym_data != NULL) - { - /* Get the version information. */ - GElf_Versym versym_mem; - GElf_Versym *versym = gelf_getversym (versym_data, cnt, &versym_mem); - - if (versym != NULL && ((*versym & 0x8000) != 0 || *versym > 1)) - { - bool is_nobits = false; - bool check_def = xndx != SHN_UNDEF; - - if (xndx < SHN_LORESERVE || sym->st_shndx == SHN_XINDEX) - { - GElf_Shdr symshdr_mem; - GElf_Shdr *symshdr = - gelf_getshdr (elf_getscn (ebl->elf, xndx), &symshdr_mem); + process_symtab(ebl, nsyms, shdr->sh_link, verneed_stridx, verdef_stridx, + data, versym_data, NULL, verneed_data, verdef_data, xndx_data); + return true; +} - is_nobits = (symshdr != NULL - && symshdr->sh_type == SHT_NOBITS); - } - if (is_nobits || ! check_def) - { - /* We must test both. */ - GElf_Vernaux vernaux_mem; - GElf_Vernaux *vernaux = NULL; - size_t vn_offset = 0; - - GElf_Verneed verneed_mem; - GElf_Verneed *verneed = gelf_getverneed (verneed_data, 0, - &verneed_mem); - while (verneed != NULL) - { - size_t vna_offset = vn_offset; - - vernaux = gelf_getvernaux (verneed_data, - vna_offset += verneed->vn_aux, - &vernaux_mem); - while (vernaux != NULL - && vernaux->vna_other != *versym - && vernaux->vna_next != 0 - && (verneed_data->d_size - vna_offset - >= vernaux->vna_next)) - { - /* Update the offset. */ - vna_offset += vernaux->vna_next; - - vernaux = (vernaux->vna_next == 0 - ? NULL - : gelf_getvernaux (verneed_data, - vna_offset, - &vernaux_mem)); - } - - /* Check whether we found the version. */ - if (vernaux != NULL && vernaux->vna_other == *versym) - /* Found it. */ - break; +static bool +handle_dynamic_symtab (Ebl *ebl) +{ + GElf_Phdr phdr_mem; + GElf_Phdr *phdr = NULL; + /* phnum is a static variable which was already fetched in function + process_elf_file. */ + for (size_t i = 0; i < phnum; ++i) + { + phdr = gelf_getphdr (ebl->elf, i, &phdr_mem); + if (phdr->p_type == PT_DYNAMIC) + break; + } + if (phdr == NULL) + return false; - if (verneed_data->d_size - vn_offset < verneed->vn_next) - break; + GElf_Addr addrs[i_max] = { + 0, + }; + GElf_Off offs[i_max] = { + 0, + }; + get_dynscn_addrs (ebl->elf, phdr, addrs); + find_offsets (ebl->elf, 0, i_max, addrs, offs); - vn_offset += verneed->vn_next; - verneed = (verneed->vn_next == 0 - ? NULL - : gelf_getverneed (verneed_data, vn_offset, - &verneed_mem)); - } + size_t syments = 0; - if (vernaux != NULL && vernaux->vna_other == *versym) - { - printf ("@%s (%u)", - elf_strptr (ebl->elf, verneed_stridx, - vernaux->vna_name), - (unsigned int) vernaux->vna_other); - check_def = 0; - } - else if (unlikely (! is_nobits)) - error (0, 0, _("bad dynamic symbol")); - else - check_def = 1; - } + GElf_Ehdr ehdr_mem; + GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); - if (check_def && *versym != 0x8001) - { - /* We must test both. */ - size_t vd_offset = 0; + if (offs[i_hash] != 0) + { + /* In the original format, .hash says the size of .dynsym. */ - GElf_Verdef verdef_mem; - GElf_Verdef *verdef = gelf_getverdef (verdef_data, 0, - &verdef_mem); - while (verdef != NULL) - { - if (verdef->vd_ndx == (*versym & 0x7fff)) - /* Found the definition. */ - break; + size_t entsz = SH_ENTSIZE_HASH (ehdr); + Elf_Data *data + = elf_getdata_rawchunk (ebl->elf, offs[i_hash] + entsz, entsz, + (entsz == 4 ? ELF_T_WORD : ELF_T_XWORD)); + if (data != NULL) + syments = (entsz == 4 ? *(const GElf_Word *)data->d_buf + : *(const GElf_Xword *)data->d_buf); + } + if (offs[i_gnu_hash] != 0 && syments == 0) + { + /* In the new format, we can derive it with some work. */ - if (verdef_data->d_size - vd_offset < verdef->vd_next) - break; + const struct + { + Elf32_Word nbuckets; + Elf32_Word symndx; + Elf32_Word maskwords; + Elf32_Word shift2; + } * header; + + Elf_Data *data = elf_getdata_rawchunk (ebl->elf, offs[i_gnu_hash], + sizeof *header, ELF_T_WORD); + if (data != NULL) + { + header = data->d_buf; + Elf32_Word nbuckets = header->nbuckets; + Elf32_Word symndx = header->symndx; + GElf_Off buckets_at + = (offs[i_gnu_hash] + sizeof *header + + (gelf_getclass (ebl->elf) * sizeof (Elf32_Word) + * header->maskwords)); + + // elf_getdata_rawchunk takes a size_t, make sure it + // doesn't overflow. +#if SIZE_MAX <= UINT32_MAX + if (nbuckets > SIZE_MAX / sizeof (Elf32_Word)) + data = NULL; + else +#endif + data = elf_getdata_rawchunk (ebl->elf, buckets_at, + nbuckets * sizeof (Elf32_Word), + ELF_T_WORD); + if (data != NULL && symndx < nbuckets) + { + const Elf32_Word *const buckets = data->d_buf; + Elf32_Word maxndx = symndx; + for (Elf32_Word bucket = 0; bucket < nbuckets; ++bucket) + if (buckets[bucket] > maxndx) + maxndx = buckets[bucket]; + + GElf_Off hasharr_at + = (buckets_at + nbuckets * sizeof (Elf32_Word)); + hasharr_at += (maxndx - symndx) * sizeof (Elf32_Word); + do + { + data = elf_getdata_rawchunk ( + ebl->elf, hasharr_at, sizeof (Elf32_Word), ELF_T_WORD); + if (data != NULL && (*(const Elf32_Word *)data->d_buf & 1u)) + { + syments = maxndx + 1; + break; + } + ++maxndx; + hasharr_at += sizeof (Elf32_Word); + } + while (data != NULL); + } + } + } + if (offs[i_strtab] > offs[i_symtab] && syments == 0) + syments = ((offs[i_strtab] - offs[i_symtab]) + / gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT)); - vd_offset += verdef->vd_next; - verdef = (verdef->vd_next == 0 - ? NULL - : gelf_getverdef (verdef_data, vd_offset, - &verdef_mem)); - } + if (syments <= 0 || offs[i_strtab] == 0 || offs[i_symtab] == 0) + { + error_exit (0, _ ("Dynamic symbol information is not available for " + "displaying symbols.")); + } - if (verdef != NULL) - { - GElf_Verdaux verdaux_mem; - GElf_Verdaux *verdaux - = gelf_getverdaux (verdef_data, - vd_offset + verdef->vd_aux, - &verdaux_mem); - - if (verdaux != NULL) - printf ((*versym & 0x8000) ? "@%s" : "@@%s", - elf_strptr (ebl->elf, verdef_stridx, - verdaux->vda_name)); - } - } - } - } + /* All the data chunk initializaion. */ + Elf_Data *symdata = NULL; + Elf_Data *symstrdata = NULL; + Elf_Data *versym_data = NULL; + Elf_Data *verdef_data = NULL; + Elf_Data *verneed_data = NULL; - putchar_unlocked ('\n'); - } + symdata = elf_getdata_rawchunk ( + ebl->elf, offs[i_symtab], + gelf_fsize (ebl->elf, ELF_T_SYM, syments, EV_CURRENT), ELF_T_SYM); + symstrdata = elf_getdata_rawchunk (ebl->elf, offs[i_strtab], addrs[i_strsz], + ELF_T_BYTE); + versym_data = elf_getdata_rawchunk ( + ebl->elf, offs[i_versym], syments * sizeof (Elf64_Half), ELF_T_HALF); + + /* Get the verneed_data without vernaux. */ + verneed_data = elf_getdata_rawchunk ( + ebl->elf, offs[i_verneed], addrs[i_verneednum] * sizeof (Elf64_Verneed), + ELF_T_VNEED); + size_t vernauxnum = 0; + size_t vn_next_offset = 0; + + for (size_t i = 0; i < addrs[i_verneednum]; i++) + { + GElf_Verneed *verneed + = (GElf_Verneed *)(verneed_data->d_buf + vn_next_offset); + vernauxnum += verneed->vn_cnt; + vn_next_offset += verneed->vn_next; + } + + /* Update the verneed_data to include the vernaux. */ + verneed_data = elf_getdata_rawchunk ( + ebl->elf, offs[i_verneed], + (addrs[i_verneednum] + vernauxnum) * sizeof (GElf_Verneed), ELF_T_VNEED); + + /* Get the verdef_data without verdaux. */ + verdef_data = elf_getdata_rawchunk ( + ebl->elf, offs[i_verdef], addrs[i_verdefnum] * sizeof (Elf64_Verdef), + ELF_T_VDEF); + size_t verdauxnum = 0; + size_t vd_next_offset = 0; + + for (size_t i = 0; i < addrs[i_verdefnum]; i++) + { + GElf_Verdef *verdef + = (GElf_Verdef *)(verdef_data->d_buf + vd_next_offset); + verdauxnum += verdef->vd_cnt; + vd_next_offset += verdef->vd_next; + } + + /* Update the verdef_data to include the verdaux. */ + verdef_data = elf_getdata_rawchunk ( + ebl->elf, offs[i_verdef], + (addrs[i_verdefnum] + verdauxnum) * sizeof (GElf_Verdef), ELF_T_VDEF); + + unsigned int nsyms = (unsigned int)syments; + process_symtab (ebl, nsyms, 0, 0, 0, symdata, versym_data, symstrdata, + verneed_data, verdef_data, NULL); + return true; } @@ -3893,7 +4224,7 @@ get_debug_elf_data (Dwarf *dbg, Ebl *ebl, int idx, Elf_Scn *scn) return elf_getdata (scn, NULL); } -void +static void print_dwarf_addr (Dwfl_Module *dwflmod, int address_size, Dwarf_Addr address, Dwarf_Addr raw) { @@ -4990,13 +5321,25 @@ get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max]) addrs[i_verdef] = dyn->d_un.d_ptr; break; + case DT_VERDEFNUM: + addrs[i_verdefnum] = dyn->d_un.d_val; + break; + case DT_VERNEED: addrs[i_verneed] = dyn->d_un.d_ptr; break; + case DT_VERNEEDNUM: + addrs[i_verneednum] = dyn->d_un.d_val; + break; + case DT_STRSZ: addrs[i_strsz] = dyn->d_un.d_val; break; + + case DT_SYMTAB_SHNDX: + addrs[i_symtab_shndx] = dyn->d_un.d_ptr; + break; } } } @@ -11196,8 +11539,9 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, // hash used for generating the table. Version 6 contains symbols // for inlined functions, older versions didn't. Version 7 adds // symbol kinds. Version 8 just indicates that it correctly includes - // TUs for symbols. - if (vers < 4 || vers > 8) + // TUs for symbols. Version 9 adds shortcut table for information + // regarding the main function. + if (vers < 4 || vers > 9) { printf (_(" unknown version, cannot parse section\n")); return; @@ -11235,6 +11579,17 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, if (unlikely (readp + 4 > dataend)) goto invalid_data; + uint32_t shortcut_off = 0; + if (vers >= 9) + { + shortcut_off = read_4ubyte_unaligned (dbg, readp); + printf (_(" shortcut offset: %#" PRIx32 "\n"), shortcut_off); + + readp += 4; + if (unlikely (readp + 4 > dataend)) + goto invalid_data; + } + uint32_t const_off = read_4ubyte_unaligned (dbg, readp); printf (_(" constant offset: %#" PRIx32 "\n"), const_off); @@ -11332,8 +11687,19 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, if (const_off >= data->d_size) goto invalid_data; + const unsigned char *shortcut_start = NULL; + if (vers >= 9) + { + if (shortcut_off >= data->d_size) + goto invalid_data; + + shortcut_start = data->d_buf + shortcut_off; + nextp = shortcut_start; + } + else + nextp = const_start; + readp = data->d_buf + sym_off; - nextp = const_start; size_t sym_nr = (nextp - readp) / 8; printf (_("\n Symbol table at offset %#" PRIx32 @@ -11407,6 +11773,49 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, } n++; } + + if (vers < 9) + return; + + if (unlikely (shortcut_start == NULL)) + goto invalid_data; + + readp = shortcut_start; + nextp = const_start; + size_t shortcut_nr = (nextp - readp) / 4; + + if (unlikely (shortcut_nr != 2)) + goto invalid_data; + + printf (_("\nShortcut table at offset %#" PRIx32 " contains %zu slots:\n"), + shortcut_off, shortcut_nr); + + uint32_t lang = read_4ubyte_unaligned (dbg, readp); + readp += 4; + + /* Include the hex number of LANG in the output if the language + is unknown. */ + const char *lang_str = dwarf_lang_string (lang); + lang_str = string_or_unknown (lang_str, lang, DW_LANG_lo_user, + DW_LANG_hi_user, true); + + printf (_("Language of main: %s\n"), lang_str); + printf (_("Name of main: ")); + + if (lang != 0) + { + uint32_t name = read_4ubyte_unaligned (dbg, readp); + readp += 4; + const unsigned char *sym = const_start + name; + + if (unlikely ((size_t) (dataend - const_start) < name + || memchr (sym, '\0', dataend - sym) == NULL)) + goto invalid_data; + + printf ("%s\n", sym); + } + else + printf ("<unknown>\n"); } /* Returns true and sets split DWARF CU id if there is a split compile diff --git a/src/srcfiles.cxx b/src/srcfiles.cxx new file mode 100644 index 00000000..3c7afdc4 --- /dev/null +++ b/src/srcfiles.cxx @@ -0,0 +1,218 @@ +/* Print the source files of a given ELF file. + Copyright (C) 2023 Red Hat, Inc. + This file is part of elfutils. + Written by Housam Alamour <alamourh@redhat.com>. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "printversion.h" +#include <dwarf.h> +#include <argp.h> +#include <cstring> +#include <set> +#include <string> +#include <cassert> +#include <config.h> + +#include <libdwfl.h> +#include <fcntl.h> +#include <iostream> +#include <libdw.h> + +using namespace std; + +/* Name and version of program. */ +ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +/* Bug report address. */ +ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT; + +/* Definitions of arguments for argp functions. */ +static const struct argp_option options[] = +{ + { NULL, 0, NULL, OPTION_DOC, N_("Output options:"), 1 }, + { "null", '0', NULL, 0, + N_ ("Separate items by a null instead of a newline."), 0 }, + { "verbose", 'v', NULL, 0, + N_ ("Increase verbosity of logging messages."), 0 }, + { "cu-only", 'c', NULL, 0, N_ ("Only list the CU names."), 0 }, + { NULL, 0, NULL, 0, NULL, 0 } +}; + +/* Short description of program. */ +static const char doc[] = N_("Lists the source files of a DWARF/ELF file. The default input is the file 'a.out'."); + +/* Strings for arguments in help texts. */ +static const char args_doc[] = N_("INPUT"); + +/* Prototype for option handler. */ +static error_t parse_opt (int key, char *arg, struct argp_state *state); + +static struct argp_child argp_children[2]; /* [0] is set in main. */ + +/* Data structure to communicate with argp functions. */ +static const struct argp argp = +{ + options, parse_opt, args_doc, doc, argp_children, NULL, NULL +}; + +/* Verbose message printing. */ +static bool verbose; +/* Delimit the output with nulls. */ +static bool null_arg; +/* Only print compilation unit names. */ +static bool CU_only; + +/* Handle program arguments. */ +static error_t +parse_opt (int key, char *arg, struct argp_state *state) +{ + /* Suppress "unused parameter" warning. */ + (void)arg; + switch (key) + { + case ARGP_KEY_INIT: + state->child_inputs[0] = state->input; + break; + + case '0': + null_arg = true; + break; + + case 'v': + verbose = true; + break; + + case 'c': + CU_only = true; + break; + + default: + return ARGP_ERR_UNKNOWN; + } + return 0; +} + + +/* Global list of collected source files. Normally, it'll contain + the sources of just one named binary, but the '-K' option can cause + multiple dwfl modules to be loaded, thus listed. */ + set<string> debug_sourcefiles; + +static int +collect_sourcefiles (Dwfl_Module *dwflmod, + void **userdata __attribute__ ((unused)), + const char *name __attribute__ ((unused)), + Dwarf_Addr base __attribute__ ((unused)), + void *arg __attribute__ ((unused))) +{ + Dwarf *dbg; + Dwarf_Addr bias; /* ignored - for addressing purposes only */ + + dbg = dwfl_module_getdwarf (dwflmod, &bias); + + Dwarf_Off offset = 0; + Dwarf_Off old_offset; + size_t hsize; + + /* Traverse all CUs of this module. */ + while (dwarf_nextcu (dbg, old_offset = offset, &offset, &hsize, NULL, NULL, NULL) == 0) + { + Dwarf_Die cudie_mem; + Dwarf_Die *cudie = dwarf_offdie (dbg, old_offset + hsize, &cudie_mem); + + if (cudie == NULL) + continue; + + const char *cuname = dwarf_diename (cudie) ?: "<unknown>"; + Dwarf_Files *files; + size_t nfiles; + if (dwarf_getsrcfiles (cudie, &files, &nfiles) != 0) + continue; + + /* extract DW_AT_comp_dir to resolve relative file names */ + const char *comp_dir = ""; + const char *const *dirs; + size_t ndirs; + + if (dwarf_getsrcdirs (files, &dirs, &ndirs) == 0 && dirs[0] != NULL) + comp_dir = dirs[0]; + if (comp_dir == NULL) + comp_dir = ""; + + if (verbose) + std::clog << "searching for sources for cu=" << cuname + << " comp_dir=" << comp_dir << " #files=" << nfiles + << " #dirs=" << ndirs << endl; + + for (size_t f = 1; f < nfiles; f++) + { + const char *hat; + if (CU_only) + { + if (strcmp(cuname, "<unknown>") == 0 || strcmp(cuname, "<artificial>") == 0 ) + continue; + hat = cuname; + } + else + hat = dwarf_filesrc (files, f, NULL, NULL); + + if (hat == NULL) + continue; + + if (string(hat).find("<built-in>") + != std::string::npos) /* gcc intrinsics, don't bother record */ + continue; + + string waldo; + if (hat[0] == '/') /* absolute */ + waldo = (string (hat)); + else if (comp_dir[0] != '\0') /* comp_dir relative */ + waldo = (string (comp_dir) + string ("/") + string (hat)); + debug_sourcefiles.insert (waldo); + } + } + + return DWARF_CB_OK; +} + + +int +main (int argc, char *argv[]) +{ + int remaining; + + /* Parse and process arguments. This includes opening the modules. */ + argp_children[0].argp = dwfl_standard_argp (); + argp_children[0].group = 1; + + Dwfl *dwfl = NULL; + (void) argp_parse (&argp, argc, argv, 0, &remaining, &dwfl); + assert (dwfl != NULL); + /* Process all loaded modules - probably just one, except if -K or -p is used. */ + (void) dwfl_getmodules (dwfl, &collect_sourcefiles, NULL, 0); + + if (!debug_sourcefiles.empty ()) + for (const string &element : debug_sourcefiles) + { + std::cout << element; + if (null_arg) + std::cout << '\0'; + else + std::cout << '\n'; + } + + dwfl_end (dwfl); + return 0; +} diff --git a/src/strip.c b/src/strip.c index 2a2cc801..7f4788b3 100644 --- a/src/strip.c +++ b/src/strip.c @@ -2543,8 +2543,7 @@ while computing checksum for debug information")); { error (0, 0, _("%s: error while creating ELF header: %s"), output_fname ?: fname, elf_errmsg (-1)); - cleanup_debug (); - return 1; + result = 1; } /* The new section header string table index. */ @@ -2552,8 +2551,7 @@ while computing checksum for debug information")); { error (0, 0, _("%s: error updating shdrstrndx: %s"), output_fname ?: fname, elf_errmsg (-1)); - cleanup_debug (); - return 1; + result = 1; } /* We have everything from the old file. */ @@ -2561,8 +2559,7 @@ while computing checksum for debug information")); { error (0, 0, _("%s: error while reading the file: %s"), fname, elf_errmsg (-1)); - cleanup_debug (); - return 1; + result = 1; } /* The ELF library better follows our layout when this is not a diff --git a/tests/ChangeLog b/tests/ChangeLog index eb3e1118..d97749f5 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,21 @@ +2023-09-27 Omar Sandoval <osandov@fb.com> + + * dwarf-getmacros.c (mac): Add DW_MACRO_define_sup, + DW_MACRO_define_strx, DW_MACRO_undef_sup, and DW_MACRO_undef_strx + cases to opcode switch statement. + (getmacros): New function. + (main): If second argument is empty, call getmacros on every unit. + Otherwise, call getmacros on given unit. + +2023-09-27 Omar Sandoval <osandov@fb.com> + + * run-varlocs.sh: Add entry PC to split units. + +2023-04-21 Frank Ch. Eigler <fche@redhat.com> + + * run-debuginfod-IXr.sh: New test. + * Makefile.am: Run it, ship it. + 2023-02-10 Mark Wielaard <mark@klomp.org> * varlocs.c (print_expr): Handle DW_OP_GNU_uninit. diff --git a/tests/Makefile.am b/tests/Makefile.am index fd58bf84..7fb8efb1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -61,7 +61,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ elfcopy addsections xlate_notes elfrdwrnop \ dwelf_elf_e_machine_string \ getphdrnum leb128 read_unaligned \ - msg_tst system-elf-libelf-test \ + msg_tst system-elf-libelf-test system-elf-gelf-test \ nvidia_extended_linemap_libdw \ $(asm_TESTS) @@ -118,7 +118,9 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-strip-test9.sh run-strip-test10.sh run-strip-test11.sh \ run-strip-test12.sh \ run-strip-nothing.sh run-strip-g.sh run-annobingroup.sh \ - run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \ + run-strip-groups.sh run-strip-strmerge.sh \ + run-strip-reloc-ko.sh run-strip-reloc-self.sh \ + run-strip-reloc-ppc64.sh \ run-strip-nobitsalign.sh run-strip-remove-keep.sh \ run-unstrip-test.sh run-unstrip-test2.sh run-unstrip-test3.sh \ run-unstrip-test4.sh run-unstrip-M.sh run-elfstrmerge-test.sh \ @@ -129,6 +131,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-find-prologues.sh run-allregs.sh run-addrcfi.sh \ run-dwarfcfi.sh run-nm-syms.sh \ run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \ + run-srcfiles-self.sh \ run-readelf-compressed.sh \ run-readelf-const-values.sh \ run-varlocs-self.sh run-exprlocs-self.sh \ @@ -193,7 +196,9 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-reloc-bpf.sh \ run-next-cfi.sh run-next-cfi-self.sh \ run-reverse-sections.sh run-reverse-sections-self.sh \ - run-copyadd-sections.sh run-copymany-sections.sh \ + run-copyadd-sections.sh \ + run-copymany-be32.sh run-copymany-le32.sh \ + run-copymany-be64.sh run-copymany-le64.sh \ run-typeiter-many.sh run-strip-test-many.sh \ run-strip-version.sh run-xlate-note.sh \ run-readelf-discr.sh \ @@ -203,7 +208,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-pt_gnu_prop-tests.sh \ run-getphdrnum.sh run-test-includes.sh \ leb128 read_unaligned \ - msg_tst system-elf-libelf-test \ + msg_tst system-elf-libelf-test system-elf-gelf-test \ $(asm_TESTS) run-disasm-bpf.sh run-low_high_pc-dw-form-indirect.sh \ run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \ run-readelf-dw-form-indirect.sh run-strip-largealign.sh \ @@ -261,7 +266,8 @@ TESTS += run-debuginfod-dlopen.sh \ run-debuginfod-response-headers.sh \ run-debuginfod-extraction-passive.sh \ run-debuginfod-webapi-concurrency.sh \ - run-debuginfod-section.sh + run-debuginfod-section.sh \ + run-debuginfod-IXr.sh endif if !OLD_LIBMICROHTTPD # Will crash on too old libmicrohttpd @@ -301,7 +307,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ testfile-annobingroup-x86_64.o.bz2 \ run-strip-strmerge.sh run-strip-nobitsalign.sh \ testfile-nobitsalign.bz2 testfile-nobitsalign.strip.bz2 \ - run-strip-reloc.sh hello_i386.ko.bz2 hello_x86_64.ko.bz2 \ + run-strip-reloc-ko.sh run-strip-reloc-self.sh \ + run-strip-reloc-ppc64.sh strip-reloc-subr.sh \ + hello_i386.ko.bz2 hello_x86_64.ko.bz2 \ hello_ppc64.ko.bz2 hello_s390.ko.bz2 hello_aarch64.ko.bz2 \ hello_m68k.ko.bz2 hello_riscv64.ko.bz2 hello_csky.ko.bz2 \ hello_arc_hs4.ko.bz2 \ @@ -316,7 +324,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \ run-nm-syms.sh testfilesyms32.bz2 testfilesyms64.bz2 \ run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \ - run-readelf-compressed.sh \ + run-srcfiles-self.sh \ + run-readelf-compressed.sh \ run-readelf-compressed-zstd.sh \ run-readelf-const-values.sh testfile-const-values.debug.bz2 \ run-addrcfi.sh run-dwarfcfi.sh \ @@ -410,7 +419,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-readelf-Dd.sh \ testfile-s390x-hash-both.bz2 \ run-readelf-gdb_index.sh testfilegdbindex5.bz2 \ - testfilegdbindex7.bz2 \ + testfilegdbindex7.bz2 testfilegdbindex9.bz2 \ + testfilegdbindex9-no-maininfo.bz2 \ run-readelf-s.sh testfilebazdbg.bz2 testfilebazdyn.bz2 \ testfilebazmin.bz2 testfilebazdbg.debug.bz2 testfilebazmdb.bz2 \ testfilebaztab.bz2 testfilebasmin.bz2 testfilebaxmin.bz2 \ @@ -538,7 +548,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ testfile-riscv64.bz2 testfile-riscv64-s.bz2 \ testfile-riscv64-core.bz2 \ run-reverse-sections.sh run-reverse-sections-self.sh \ - run-copyadd-sections.sh run-copymany-sections.sh \ + run-copyadd-sections.sh test-copymany-subr.sh \ + run-copymany-be32.sh run-copymany-le32.sh \ + run-copymany-be64.sh run-copymany-le64.sh \ run-large-elf-file.sh \ run-typeiter-many.sh run-strip-test-many.sh \ testfile-debug-rel-ppc64-g.o.bz2 \ @@ -578,6 +590,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-debuginfod-extraction-passive.sh \ run-debuginfod-webapi-concurrency.sh \ run-debuginfod-section.sh \ + run-debuginfod-IXr.sh \ debuginfod-rpms/fedora30/hello2-1.0-2.src.rpm \ debuginfod-rpms/fedora30/hello2-1.0-2.x86_64.rpm \ debuginfod-rpms/fedora30/hello2-debuginfo-1.0-2.x86_64.rpm \ @@ -664,7 +677,7 @@ installcheck-local: if BUILD_STATIC libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread -libelf = ../libelf/libelf.a -lz +libelf = ../libelf/libelf.a -lz $(zstd_LIBS) libasm = ../libasm/libasm.a else libdw = ../libdw/libdw.so @@ -795,14 +808,22 @@ leb128_LDADD = $(libelf) $(libdw) read_unaligned_LDADD = $(libelf) $(libdw) nvidia_extended_linemap_libdw_LDADD = $(libelf) $(libdw) -# We want to test the libelf header against the system elf.h header. +# We want to test the libelf headers against the system elf.h header. # Don't include any -I CPPFLAGS. Except when we install our own elf.h. +# For the gelf test we do want our own libelf.h, but nothing else. +BUILT_SOURCES = libelf.h +CLEANFILES += libelf.h +libelf.h: $(top_srcdir)/libelf/libelf.h + cp $< $@ if !INSTALL_ELFH system_elf_libelf_test_CPPFLAGS = +system_elf_gelf_test_CPPFLAGS = -I. else system_elf_libelf_test_CPPFLAGS = -I$(top_srcdir)/libelf +system_elf_gelf_test_CPPFLAGS = -I$(top_srcdir)/libelf endif system_elf_libelf_test_LDADD = $(libelf) +system_elf_gelf_test_LDADD = $(libelf) # A lock file used to make sure only one test dumps core at a time CLEANFILES += core-dump-backtrace.lock diff --git a/tests/addsections.c b/tests/addsections.c index c1b0fa81..a4e42038 100644 --- a/tests/addsections.c +++ b/tests/addsections.c @@ -153,8 +153,8 @@ add_sections (const char *name, size_t nr, int use_mmap, size_t sec_size) size_t bufsz; if (sec_size == 0) { - buf = strdup ("extra"); - bufsz = strlen ("extra") + 1; + buf = ""; + bufsz = 1; } else { @@ -293,7 +293,8 @@ add_sections (const char *name, size_t nr, int use_mmap, size_t sec_size) exit (1); } - free (buf); + if (sec_size != 0) + free (buf); free (new_shstrtab_buf); } diff --git a/tests/backtrace.c b/tests/backtrace.c index afc12fb9..55555301 100644 --- a/tests/backtrace.c +++ b/tests/backtrace.c @@ -90,6 +90,14 @@ callback_verify (pid_t tid, unsigned frameno, Dwarf_Addr pc, return; } Dwfl_Module *mod; + /* Skip frames for which there isn't a function name. */ + static int nulls_seen = 0; + if (symname == NULL) + { + nulls_seen++; + return; + } + frameno -= nulls_seen; /* See case 4. Special case to help out simple frame pointer unwinders. */ static bool duplicate_sigusr2 = false; if (duplicate_sigusr2) diff --git a/tests/dwarf-getmacros.c b/tests/dwarf-getmacros.c index ac70248d..8381d42c 100644 --- a/tests/dwarf-getmacros.c +++ b/tests/dwarf-getmacros.c @@ -82,6 +82,8 @@ mac (Dwarf_Macro *macro, void *dbg) case DW_MACINFO_define: case DW_MACRO_define_strp: + case DW_MACRO_define_sup: + case DW_MACRO_define_strx: { const char *value; dwarf_macro_param2 (macro, NULL, &value); @@ -91,6 +93,8 @@ mac (Dwarf_Macro *macro, void *dbg) case DW_MACINFO_undef: case DW_MACRO_undef_strp: + case DW_MACRO_undef_sup: + case DW_MACRO_undef_strx: break; default: @@ -117,26 +121,57 @@ include (Dwarf *dbg, Dwarf_Off macoff, ptrdiff_t token) } } +static void +getmacros (Dwarf *dbg, Dwarf_Die *die, bool new_style) +{ + for (ptrdiff_t off = new_style ? DWARF_GETMACROS_START : 0; + (off = dwarf_getmacros (die, mac, dbg, off)); ) + if (off == -1) + { + puts (dwarf_errmsg (-1)); + break; + } +} + int main (int argc, char *argv[]) { assert (argc >= 3); const char *name = argv[1]; - ptrdiff_t cuoff = strtol (argv[2], NULL, 0); bool new_style = argc > 3; int fd = open (name, O_RDONLY); Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ); - Dwarf_Die cudie_mem, *cudie = dwarf_offdie (dbg, cuoff, &cudie_mem); - - for (ptrdiff_t off = new_style ? DWARF_GETMACROS_START : 0; - (off = dwarf_getmacros (cudie, mac, dbg, off)); ) - if (off == -1) - { - puts (dwarf_errmsg (dwarf_errno ())); - break; - } + if (argv[2][0] == '\0') + { + Dwarf_CU *cu = NULL; + Dwarf_Die cudie, subdie; + uint8_t unit_type; + while (dwarf_get_units (dbg, cu, &cu, NULL, + &unit_type, &cudie, &subdie) == 0) + { + Dwarf_Die *die = (unit_type == DW_UT_skeleton + ? &subdie : &cudie); + if (! dwarf_hasattr (die, DW_AT_macro_info) + && ! dwarf_hasattr (die, DW_AT_GNU_macros) + && ! dwarf_hasattr (die, DW_AT_macros)) + continue; + printf ("CU %s\n", dwarf_diename (die)); + getmacros (dbg, die, new_style); + } + } + else + { + ptrdiff_t cuoff = strtol (argv[2], NULL, 0); + Dwarf_Die cudie_mem, *cudie = dwarf_offdie (dbg, cuoff, &cudie_mem); + if (cudie == NULL) + { + puts (dwarf_errmsg (-1)); + return 1; + } + getmacros (dbg, cudie, new_style); + } dwarf_end (dbg); diff --git a/tests/run-copymany-be32.sh b/tests/run-copymany-be32.sh new file mode 100755 index 00000000..dc32e7a9 --- /dev/null +++ b/tests/run-copymany-be32.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +. $srcdir/test-copymany-subr.sh + +# 32bit, big endian, rel +testfiles testfile29 +test_copy_and_add testfile29 +test_copy_and_add testfile29.copy + +# 32bit, big endian, non-rel +testfiles testfile26 +test_copy_and_add testfile26 +test_copy_and_add testfile26.copy + +exit 0 diff --git a/tests/run-copymany-be64.sh b/tests/run-copymany-be64.sh new file mode 100755 index 00000000..1f06e077 --- /dev/null +++ b/tests/run-copymany-be64.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +. $srcdir/test-copymany-subr.sh + +# 64bit, big endian, rel +testfiles testfile23 +test_copy_and_add testfile23 +test_copy_and_add testfile23.copy + +# 64bit, big endian, non-rel +testfiles testfile27 +test_copy_and_add testfile27 +test_copy_and_add testfile27.copy + +exit 0 diff --git a/tests/run-copymany-le32.sh b/tests/run-copymany-le32.sh new file mode 100755 index 00000000..d47a90ed --- /dev/null +++ b/tests/run-copymany-le32.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +. $srcdir/test-copymany-subr.sh + +# 32bit, little endian, rel +testfiles testfile9 +test_copy_and_add testfile9 +test_copy_and_add testfile9.copy + +# 32bit, little endian, non-rel +testfiles testfile +test_copy_and_add testfile +test_copy_and_add testfile.copy + +exit 0 diff --git a/tests/run-copymany-le64.sh b/tests/run-copymany-le64.sh new file mode 100755 index 00000000..b563d9de --- /dev/null +++ b/tests/run-copymany-le64.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +. $srcdir/test-copymany-subr.sh + +# 64bit, little endian, rel +testfiles testfile38 +test_copy_and_add testfile38 +test_copy_and_add testfile38.copy + +# 64bit, little endian, non-rel +testfiles testfile10 +test_copy_and_add testfile10 +test_copy_and_add testfile10.copy + +exit 0 diff --git a/tests/run-debuginfod-IXr.sh b/tests/run-debuginfod-IXr.sh new file mode 100755 index 00000000..631b7bbf --- /dev/null +++ b/tests/run-debuginfod-IXr.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +# +# Copyright (C) 2019-2023 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. $srcdir/debuginfod-subr.sh + +# for test case debugging, uncomment: +set -x +unset VALGRIND_CMD + +mkdir R Z +# This variable is essential and ensures no time-race for claiming ports occurs +# set base to a unique multiple of 100 not used in any other 'run-debuginfod-*' test +base=10100 +get_ports + +DB=${PWD}/.debuginfod_tmp.sqlite +tempfiles $DB +export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache + +cp -rvp ${abs_srcdir}/debuginfod-rpms R + +if [ "$zstd" = "false" ]; then # nuke the zstd fedora 31 ones + rm -vrf R/debuginfod-rpms/fedora31 + rpms=0 + tarxz=1 + groomed=2 +else + rpms=6 + tarxz=1 + groomed=8 +fi + +cp -rvp ${abs_srcdir}/debuginfod-tars Z + +env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -X 'hello2' -I 'hello' -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 & +PID1=$! +tempfiles vlog$PORT1 +errfiles vlog$PORT1 +# Server must become ready +wait_ready $PORT1 'ready' 1 + +# Wait till both files are in the index and scan/index fully finished +wait_ready $PORT1 'thread_work_total{role="traverse"}' 1 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 + +# Confirm that the hello3 files are excluded + +wait_ready $PORT1 'scanned_files_total{source=".rpm archive"}' $rpms +wait_ready $PORT1 'scanned_files_total{source=".tar.xz archive"}' $tarxz + + +kill $PID1 +wait $PID1 +PID1=0 + +# Start second debuginfod, with exclusion of everything + +echo 'RERUN WITH -r and -X everything' >> vlog$PORT1 + +env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -r -X '.*' -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z >> vlog$PORT1 2>&1 & +PID1=$! +tempfiles vlog$PORT1 +errfiles vlog$PORT1 +# Server must become ready +wait_ready $PORT1 'ready' 1 + +wait_ready $PORT1 'thread_work_total{role="groom"}' 1 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 + +wait_ready $PORT1 'groomed_total{decision="stale"}' $groomed +wait_ready $PORT1 'groom{statistic="files scanned (#)"}' 0 + +kill $PID1 +wait $PID1 +PID1=0 + +exit 0 diff --git a/tests/run-debuginfod-extraction.sh b/tests/run-debuginfod-extraction.sh index 3ca31b8a..da6b25cf 100755 --- a/tests/run-debuginfod-extraction.sh +++ b/tests/run-debuginfod-extraction.sh @@ -32,7 +32,7 @@ DB=${PWD}/.debuginfod_tmp.sqlite tempfiles $DB export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache -env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 & +env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 --scan-checkpoint=1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 & PID1=$! tempfiles vlog$PORT1 errfiles vlog$PORT1 @@ -61,6 +61,9 @@ wait_ready $PORT1 'thread_work_total{role="traverse"}' 2 wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 wait_ready $PORT1 'thread_busy{role="scan"}' 0 +# Take a dump if possible +type sqlite3 2>/dev/null && sqlite3 $DB '.d' + ######################################################################## # All rpms need to be in the index, except the dummy permission-000 one rpms=$(find R -name \*rpm | grep -v nothing | wc -l) diff --git a/tests/run-debuginfod-federation-metrics.sh b/tests/run-debuginfod-federation-metrics.sh index 3d716246..60fe69ca 100755 --- a/tests/run-debuginfod-federation-metrics.sh +++ b/tests/run-debuginfod-federation-metrics.sh @@ -191,7 +191,8 @@ curl -s http://127.0.0.1:$PORT2/metrics | grep 'dc_pool_op.*reuse' # Use a file that hasn't been previously extracted in to make it # likely that even this test debuginfod will experience concurrency # and impose some "after-you" delays. -(for i in `seq 100`; do +maxreq=256 +(for i in `seq $maxreq`; do curl -s http://127.0.0.1:$PORT1/buildid/87c08d12c78174f1082b7c888b3238219b0eb265/executable >/dev/null & done; wait) diff --git a/tests/run-debuginfod-federation-sqlite.sh b/tests/run-debuginfod-federation-sqlite.sh index d9321526..6b090074 100755 --- a/tests/run-debuginfod-federation-sqlite.sh +++ b/tests/run-debuginfod-federation-sqlite.sh @@ -157,7 +157,9 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID # Use a file that hasn't been previously extracted in to make it # likely that even this test debuginfod will experience concurrency # and impose some "after-you" delays. -(for i in `seq 100`; do +maxreq=$[$(nproc) * 4] +maxreq=$(( $maxreq > 64 ? 64 : $maxreq )) +(for i in `seq $maxreq`; do curl -s http://127.0.0.1:$PORT1/buildid/87c08d12c78174f1082b7c888b3238219b0eb265/executable >/dev/null & done; wait) diff --git a/tests/run-debuginfod-query-retry.sh b/tests/run-debuginfod-query-retry.sh index 2f551ffb..d2cdfd65 100755 --- a/tests/run-debuginfod-query-retry.sh +++ b/tests/run-debuginfod-query-retry.sh @@ -26,7 +26,7 @@ unset VALGRIND_CMD # set up tests for retrying failed queries. retry_attempts=`(testrun env DEBUGINFOD_URLS=http://255.255.255.255/JUNKJUNK DEBUGINFOD_RETRY_LIMIT=10 DEBUGINFOD_VERBOSE=1 DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache \ ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo \ - ${abs_top_builddir}/debuginfod/libdebuginfod.so.1 || true) \ + ${abs_top_builddir}/debuginfod/debuginfod-find || true) \ 2>&1 >/dev/null | grep -c 'Retry failed query'` if [ $retry_attempts -ne 10 ]; then echo "retry mechanism failed." diff --git a/tests/run-debuginfod-response-headers.sh b/tests/run-debuginfod-response-headers.sh index 8cb7b843..fbb6a484 100755 --- a/tests/run-debuginfod-response-headers.sh +++ b/tests/run-debuginfod-response-headers.sh @@ -78,8 +78,8 @@ tempfiles vlog-find$PORT1.1 errfiles vlog-find$PORT1.1 cat vlog-find$PORT1.1 grep 'Headers:' vlog-find$PORT1.1 -grep -i 'X-DEBUGINFOD-FILE: prog' vlog-find$PORT1.1 -grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.1 +grep -i 'X-DEBUGINFOD-FILE: .*/prog' vlog-find$PORT1.1 +grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.1 # Check to see if an executable file located in an archive prints the file's description and archive env DEBUGINFOD_URLS="http://127.0.0.1:"$PORT1 LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find\ @@ -88,9 +88,9 @@ tempfiles vlog-find$PORT1.2 errfiles vlog-find$PORT1.2 cat vlog-find$PORT1.2 grep 'Headers:' vlog-find$PORT1.2 -grep -i 'X-DEBUGINFOD-FILE: ' vlog-find$PORT1.2 +grep -i 'X-DEBUGINFOD-FILE: .*/.*' vlog-find$PORT1.2 grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.2 -grep -i 'X-DEBUGINFOD-ARCHIVE: ' vlog-find$PORT1.2 +grep -i 'X-DEBUGINFOD-ARCHIVE: .*/.*' vlog-find$PORT1.2 # Check that X-DEBUGINFOD-SIZE matches the size of each file for file in vlog-find$PORT1.1 vlog-find$PORT1.2 diff --git a/tests/run-lfs-symbols.sh b/tests/run-lfs-symbols.sh index 762a5d96..88c6270a 100755 --- a/tests/run-lfs-symbols.sh +++ b/tests/run-lfs-symbols.sh @@ -42,13 +42,13 @@ LFS_FORMAT='BEGIN { LFS=$(printf "$LFS_FORMAT" "${abs_srcdir}/lfs-symbols") makeprint() { - make print-$1 -C $2 |& awk -F= "/^$1=/{ print \$2 }" + make print-$1 -C $2 |& gawk -F= "/^$1=/{ print \$2 }" } testrun_lfs() { echo "checking $1" if [ -e "$1" ]; then - bad=$(testrun ${abs_top_builddir}/src/nm -u "$1" | awk "$LFS") + bad=$(testrun ${abs_top_builddir}/src/nm -u "$1" | gawk "$LFS") if [ -n "$bad" ]; then echo "$1 contains non-lfs symbols:" $bad exit_status=1 diff --git a/tests/run-native-test.sh b/tests/run-native-test.sh index d19007f2..042a51c6 100755 --- a/tests/run-native-test.sh +++ b/tests/run-native-test.sh @@ -27,7 +27,8 @@ # in all builds. tempfiles native.c native -echo 'main () { while (1) pause (); }' > native.c +printf '#include <unistd.h>\nint main (void) { while (1) pause (); }\n' \ + > native.c native=0 kill_native() diff --git a/tests/run-readelf-gdb_index.sh b/tests/run-readelf-gdb_index.sh index fcbc3c57..cd437f52 100755 --- a/tests/run-readelf-gdb_index.sh +++ b/tests/run-readelf-gdb_index.sh @@ -63,7 +63,7 @@ # (gdb) save gdb-index . # objcopy --add-section .gdb_index=testfilegdbindex7.gdb-index --set-section-flags .gdb_index=readonly testfilegdbindex7 testfilegdbindex7 -testfiles testfilegdbindex5 testfilegdbindex7 +testfiles testfilegdbindex5 testfilegdbindex7 testfilegdbindex9 testfilegdbindex9-no-maininfo testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex5 <<\EOF @@ -127,4 +127,97 @@ GDB section [33] '.gdb_index' at offset 0xe76 contains 8399 bytes : [ 754] symbol: int, CUs: 0 (type:S) EOF +# testfilegdbindex9-no-maininfo is built the same way as testfilegdbindex7. +testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex9-no-maininfo <<\EOF + +GDB section [33] '.gdb_index' at offset 0x38e1 contains 8415 bytes : + Version: 9 + CU offset: 0x1c + TU offset: 0x3c + address offset: 0x54 + symbol offset: 0x7c + shortcut offset: 0x207c + constant offset: 0x2084 + + CU list at offset 0x1c contains 2 entries: + [ 0] start: 0x00004c, length: 220 + [ 1] start: 0x000128, length: 214 + + TU list at offset 0x3c contains 1 entries: + [ 0] CU offset: 0, type offset: 30, signature: 0x87e03f92cc37cdf0 + + Address list at offset 0x54 contains 2 entries: + [ 0] 0x0000000000401106 <main>..0x000000000040113b <main+0x35>, CU index: 1 + [ 1] 0x000000000040113c <hello>..0x0000000000401173 <say+0x1c>, CU index: 2 + + Symbol table at offset 0x54 contains 1024 slots: + [ 123] symbol: global, CUs: 1 (var:G), 0T (var:G) + [ 489] symbol: main, CUs: 1 (func:G) + [ 518] symbol: char, CUs: 0 (type:S) + [ 661] symbol: foo, CUs: 0 (type:S) + [ 741] symbol: hello, CUs: 1 (var:S), 0T (func:S) + [ 746] symbol: say, CUs: 0T (func:G) + [ 754] symbol: int, CUs: 1 (type:S) + +Shortcut table at offset 0x207c contains 2 slots: +Language of main: ??? (0) +Name of main: <unknown> +EOF + +# testfilegdbindex9.f90 +# +# program repro +# type small_stride +# character*40 long_string +# integer small_pad +# end type small_stride +# type(small_stride), dimension (20), target :: unpleasant +# character*40, pointer, dimension(:):: c40pt +# integer i +# do i = 0,19 +# unpleasant(i+1)%small_pad = i+1 +# unpleasant(i+1)%long_string = char (ichar('0') + i) +# end do +# c40pt => unpleasant%long_string +# print *, c40pt +#end program repro + +# gfortran -g -o testfilegdbindex9 testfilegdbindex9.f90 +# gdb-add-index testfilegdbindex9 + +testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex9 <<\EOF + +GDB section [35] '.gdb_index' at offset 0x37d9 contains 8395 bytes : + Version: 9 + CU offset: 0x1c + TU offset: 0x2c + address offset: 0x2c + symbol offset: 0x40 + shortcut offset: 0x2040 + constant offset: 0x2048 + + CU list at offset 0x1c contains 1 entries: + [ 0] start: 00000000, length: 307 + + TU list at offset 0x2c contains 0 entries: + + Address list at offset 0x2c contains 1 entries: + [ 0] 0x0000000000401166 <MAIN__>..0x00000000004013f0 <main+0x3a>, CU index: 0 + + Symbol table at offset 0x2c contains 1024 slots: + [ 61] symbol: small_stride, CUs: 0 (type:S) + [ 71] symbol: integer(kind=8), CUs: 0 (type:S) + [ 161] symbol: character(kind=1), CUs: 0 (type:S) + [ 397] symbol: unpleasant, CUs: 0 (var:S) + [ 489] symbol: main, CUs: 0 (func:G) + [ 827] symbol: integer(kind=4), CUs: 0 (type:S) + [ 858] symbol: c40pt, CUs: 0 (var:S) + [ 965] symbol: repro, CUs: 0 (func:S) + [1016] symbol: i, CUs: 0 (var:S) + +Shortcut table at offset 0x2040 contains 2 slots: +Language of main: Fortran08 +Name of main: repro +EOF + exit 0 diff --git a/tests/run-readelf-self.sh b/tests/run-readelf-self.sh index f5984597..de528d5e 100755 --- a/tests/run-readelf-self.sh +++ b/tests/run-readelf-self.sh @@ -23,4 +23,4 @@ if test -n "$ELFUTILS_MEMORY_SANITIZER"; then fi # Just makes sure readelf doesn't crash -testrun_on_self_quiet ${abs_top_builddir}/src/readelf -a -w +testrun_on_self_quiet ${abs_top_builddir}/src/readelf -N -a -w diff --git a/tests/run-srcfiles-self.sh b/tests/run-srcfiles-self.sh new file mode 100755 index 00000000..0e64dd2b --- /dev/null +++ b/tests/run-srcfiles-self.sh @@ -0,0 +1,48 @@ +#! /bin/sh +# Copyright (C) 2023 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. $srcdir/test-subr.sh + +# Test different command line combinations on the srcfiles binary itself. +ET_EXEC="${abs_top_builddir}/src/srcfiles" +ET_PID=$$ + +SRC_NAME="srcfiles.cxx" + +# Ensure the output contains the expected source file srcfiles.cxx +testrun $ET_EXEC -e $ET_EXEC | grep $SRC_NAME > /dev/null + +for null_arg in --null ""; do + for verbose_arg in --verbose ""; do + testrun $ET_EXEC $null_arg $verbose_arg -p $ET_PID > /dev/null + + # Ensure that the output contains srclines.cxx + cu_only=$(testrun $ET_EXEC $null_arg $verbose_arg -c -e $ET_EXEC) + default=$(testrun $ET_EXEC $null_arg $verbose_arg -e $ET_EXEC) + result1=$(echo "$cu_only" | grep "$SRC_NAME") + result2=$(echo "$default" | grep "$SRC_NAME") + + if [ -z "$result1" ] || [ -z "$result2" ]; then + exit 1 + fi + + # Ensure that the output with the cu-only option contains less source files + if [ $(echo "$cu_only" | wc -m) -gt $(echo "$default" | wc -m) ]; then + exit 1 + fi + done +done diff --git a/tests/run-strip-reloc-ko.sh b/tests/run-strip-reloc-ko.sh new file mode 100755 index 00000000..55fa74db --- /dev/null +++ b/tests/run-strip-reloc-ko.sh @@ -0,0 +1,51 @@ +#! /bin/sh + +. $srcdir/strip-reloc-subr.sh + +testfiles hello_i386.ko hello_x86_64.ko hello_ppc64.ko hello_s390.ko \ + hello_aarch64.ko hello_m68k.ko hello_riscv64.ko hello_csky.ko \ + hello_arc_hs4.ko + +# Most simple hello world kernel module for various architectures. +# Make sure that it contains debuginfo with CONFIG_DEBUG_INFO=y. +# :::::::::::::: +# Makefile +# :::::::::::::: +# obj-m := hello.o +# hello-y := init.o exit.o +# +# all: +# make -C /lib/modules/$(shell uname -r)/build M=$(PWD) \ +# CONFIG_DEBUG_INFO=y modules +# :::::::::::::: +# init.c +# :::::::::::::: +# #include <linux/kernel.h> +# #include <linux/module.h> +# +# int init_module(void) +# { +# printk(KERN_INFO "Hello, world!\n"); +# return 0; +# } +# :::::::::::::: +# exit.c +# :::::::::::::: +# #include <linux/kernel.h> +# #include <linux/module.h> +# +# void cleanup_module() +# { +# printk(KERN_INFO "Goodbye, World!\n"); +# } +runtest hello_i386.ko 1 +runtest hello_x86_64.ko 1 +runtest hello_ppc64.ko 1 +runtest hello_s390.ko 1 +runtest hello_aarch64.ko 1 +runtest hello_m68k.ko 1 +runtest hello_riscv64.ko 1 +runtest hello_csky.ko 1 +runtest hello_arc_hs4.ko 1 + +exit $runtest_status diff --git a/tests/run-strip-reloc-ppc64.sh b/tests/run-strip-reloc-ppc64.sh new file mode 100755 index 00000000..239c34d9 --- /dev/null +++ b/tests/run-strip-reloc-ppc64.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +. $srcdir/strip-reloc-subr.sh + +# See run-readelf-zdebug-rel.sh +testfiles testfile-debug-rel-ppc64.o +runtest testfile-debug-rel-ppc64.o 1 + +testfiles testfile-debug-rel-ppc64-z.o +runtest testfile-debug-rel-ppc64-z.o 1 + +testfiles testfile-debug-rel-ppc64-g.o +runtest testfile-debug-rel-ppc64-g.o 1 + +exit $runtest_status diff --git a/tests/run-strip-reloc-self.sh b/tests/run-strip-reloc-self.sh new file mode 100755 index 00000000..68ed4cc2 --- /dev/null +++ b/tests/run-strip-reloc-self.sh @@ -0,0 +1,20 @@ +#! /bin/sh + +. $srcdir/strip-reloc-subr.sh + +# self test, shouldn't impact non-ET_REL files at all. +runtest ${abs_top_builddir}/src/strip 0 +runtest ${abs_top_builddir}/src/strip.o 1 + +# Copy ET_REL file for self-test and make sure to run with/without +# elf section compression. +tempfiles strip-uncompressed.o strip-compressed.o +testrun ${abs_top_builddir}/src/elfcompress -o strip-uncompressed.o -t none \ + ${abs_top_builddir}/src/strip.o +testrun ${abs_top_builddir}/src/elfcompress -o strip-compressed.o -t zlib \ + --force ${abs_top_builddir}/src/strip.o + +runtest strip-uncompressed.o 1 +runtest strip-compressed.o 1 + +exit $runtest_status diff --git a/tests/run-strip-reloc.sh b/tests/run-strip-reloc.sh deleted file mode 100755 index 02e626af..00000000 --- a/tests/run-strip-reloc.sh +++ /dev/null @@ -1,156 +0,0 @@ -#! /bin/sh -# Copyright (C) 2011, 2013 Red Hat, Inc. -# This file is part of elfutils. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# elfutils is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -. $srcdir/test-subr.sh - -if test -n "$ELFUTILS_MEMORY_SANITIZER"; then - echo "binaries linked with memory sanitizer are too big" - exit 77 -fi - -testfiles hello_i386.ko hello_x86_64.ko hello_ppc64.ko hello_s390.ko \ - hello_aarch64.ko hello_m68k.ko hello_riscv64.ko hello_csky.ko \ - hello_arc_hs4.ko - -tempfiles readelf.out readelf.out1 readelf.out2 -tempfiles out.stripped1 out.debug1 out.stripped2 out.debug2 - -status=0 -runtest() { - infile=$1 - is_ET_REL=$2 - outfile1=out.stripped1 - debugfile1=out.debug1 - outfile2=out.stripped2 - debugfile2=out.debug2 - - echo "runtest $infile" - - rm -f $outfile1 $debugfile1 $outfile2 $debugfile2 - - testrun ${abs_top_builddir}/src/strip -o $outfile1 -f $debugfile1 $infile || - { echo "*** failure strip $infile"; status=1; } - - testrun ${abs_top_builddir}/src/strip --reloc-debug-sections -o $outfile2 \ - -f $debugfile2 $infile || - { echo "*** failure strip --reloc-debug-sections $infile"; status=1; } - - # shouldn't make any difference for stripped files. - testrun ${abs_top_builddir}/src/readelf -a $outfile1 > readelf.out || - { echo "*** failure readelf -a outfile1 $infile"; status=1; } - - testrun_compare ${abs_top_builddir}/src/readelf -a $outfile2 < readelf.out || - { echo "*** failure compare stripped files $infile"; status=1; } - - # debug files however should be smaller, when ET_REL. - SIZE1=$(stat -c%s $debugfile1) - SIZE2=$(stat -c%s $debugfile2) - test \( \( $is_ET_REL -eq 1 \) -a \( $SIZE1 -gt $SIZE2 \) \) \ - -o \( \( $is_ET_REL -eq 0 \) -a \( $SIZE1 -eq $SIZE2 \) \) || - { echo "*** failure --reloc-debug-sections not smaller $infile"; status=1; } - - # Strip of DWARF section lines, offset will not match. - # Everything else should match. - testrun ${abs_top_builddir}/src/readelf -w $debugfile1 \ - | grep -v ^DWARF\ section > readelf.out1 || - { echo "*** failure readelf -w debugfile1 $infile"; status=1; } - - testrun ${abs_top_builddir}/src/readelf -w $debugfile2 \ - | grep -v ^DWARF\ section > readelf.out2 || - { echo "*** failure readelf -w debugfile2 $infile"; status=1; } - - testrun_compare cat readelf.out1 < readelf.out2 || - { echo "*** failure readelf -w compare $infile"; status=1; } - - testrun ${abs_top_builddir}/src/strip --reloc-debug-sections-only \ - $debugfile1 || - { echo "*** failure strip --reloc-debug-sections-only $debugfile1"; \ - status=1; } - - cmp $debugfile1 $debugfile2 || - { echo "*** failure --reloc-debug-sections[-only] $debugfile1 $debugfile2"; \ - status=1; } -} - -# Most simple hello world kernel module for various architectures. -# Make sure that it contains debuginfo with CONFIG_DEBUG_INFO=y. -# :::::::::::::: -# Makefile -# :::::::::::::: -# obj-m := hello.o -# hello-y := init.o exit.o -# -# all: -# make -C /lib/modules/$(shell uname -r)/build M=$(PWD) \ -# CONFIG_DEBUG_INFO=y modules -# :::::::::::::: -# init.c -# :::::::::::::: -# #include <linux/kernel.h> -# #include <linux/module.h> -# -# int init_module(void) -# { -# printk(KERN_INFO "Hello, world!\n"); -# return 0; -# } -# :::::::::::::: -# exit.c -# :::::::::::::: -# #include <linux/kernel.h> -# #include <linux/module.h> -# -# void cleanup_module() -# { -# printk(KERN_INFO "Goodbye, World!\n"); -# } -runtest hello_i386.ko 1 -runtest hello_x86_64.ko 1 -runtest hello_ppc64.ko 1 -runtest hello_s390.ko 1 -runtest hello_aarch64.ko 1 -runtest hello_m68k.ko 1 -runtest hello_riscv64.ko 1 -runtest hello_csky.ko 1 -runtest hello_arc_hs4.ko 1 - -# self test, shouldn't impact non-ET_REL files at all. -runtest ${abs_top_builddir}/src/strip 0 -runtest ${abs_top_builddir}/src/strip.o 1 - -# Copy ET_REL file for self-test and make sure to run with/without -# elf section compression. -tempfiles strip-uncompressed.o strip-compressed.o -testrun ${abs_top_builddir}/src/elfcompress -o strip-uncompressed.o -t none \ - ${abs_top_builddir}/src/strip.o -testrun ${abs_top_builddir}/src/elfcompress -o strip-compressed.o -t zlib \ - --force ${abs_top_builddir}/src/strip.o - -runtest strip-uncompressed.o 1 -runtest strip-compressed.o 1 - -# See run-readelf-zdebug-rel.sh -testfiles testfile-debug-rel-ppc64.o -runtest testfile-debug-rel-ppc64.o 1 - -testfiles testfile-debug-rel-ppc64-z.o -runtest testfile-debug-rel-ppc64-z.o 1 - -testfiles testfile-debug-rel-ppc64-g.o -runtest testfile-debug-rel-ppc64-g.o 1 - -exit $status diff --git a/tests/run-varlocs.sh b/tests/run-varlocs.sh index b2621776..cbbcf6c7 100755 --- a/tests/run-varlocs.sh +++ b/tests/run-varlocs.sh @@ -206,7 +206,7 @@ testfiles testfilesplitranges5.debug testfiles testfile-ranges-hello5.dwo testfile-ranges-world5.dwo testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfilesplitranges5.debug <<\EOF module 'testfilesplitranges5.debug' -[14] CU 'hello.c' +[14] CU 'hello.c'@0 [1d] function 'no_say'@401160 frame_base: {call_frame_cfa {...}} [33] parameter 'prefix' @@ -236,7 +236,7 @@ module 'testfilesplitranges5.debug' [111] parameter 'count' [401150,401160) {reg4} module 'testfilesplitranges5.debug' -[14] CU 'world.c' +[14] CU 'world.c'@401180 [1d] function 'no_main'@4011d0 frame_base: {call_frame_cfa {...}} [35] parameter 'argc' @@ -282,7 +282,7 @@ testfiles testfilesplitranges4.debug testfiles testfile-ranges-hello.dwo testfile-ranges-world.dwo testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfilesplitranges4.debug <<\EOF module 'testfilesplitranges4.debug' -[b] CU 'hello.c' +[b] CU 'hello.c'@0 [18] function 'no_say'@4004f0 frame_base: {call_frame_cfa {...}} [2f] parameter 'prefix' @@ -310,7 +310,7 @@ module 'testfilesplitranges4.debug' [102] parameter 'count' [4004e0,4004f0) {reg4} module 'testfilesplitranges4.debug' -[b] CU 'world.c' +[b] CU 'world.c'@400500 [18] function 'no_main'@400550 frame_base: {call_frame_cfa {...}} [2f] parameter 'argc' @@ -373,7 +373,7 @@ EOF testfiles testfile-addrx_constx-5 addrx_constx-5.dwo testrun_compare ${abs_top_builddir}/tests/varlocs --exprlocs -e testfile-addrx_constx-5 <<\EOF module 'testfile-addrx_constx-5' -[14] CU 'addrx_constx.c' +[14] CU 'addrx_constx.c'@0 producer (strx) language (data1) name (strx) @@ -467,7 +467,7 @@ EOF testfiles testfile-addrx_constx-4 addrx_constx-4.dwo testrun_compare ${abs_top_builddir}/tests/varlocs --exprlocs -e testfile-addrx_constx-4 <<\EOF module 'testfile-addrx_constx-4' -[b] CU 'addrx_constx.c' +[b] CU 'addrx_constx.c'@0 producer (GNU_str_index) language (data1) name (GNU_str_index) @@ -565,7 +565,7 @@ testfiles splitdwarf4-not-split4.dwo testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfile-splitdwarf4-not-split4.debug <<\EOF module 'testfile-splitdwarf4-not-split4.debug' -[b] CU 'splitdwarf4-not-split4.c' +[b] CU 'splitdwarf4-not-split4.c'@0 [18] function 'main'@401050 frame_base: {call_frame_cfa {...}} [30] parameter 'argc' diff --git a/tests/strip-reloc-subr.sh b/tests/strip-reloc-subr.sh new file mode 100755 index 00000000..c4d55ced --- /dev/null +++ b/tests/strip-reloc-subr.sh @@ -0,0 +1,79 @@ +#! /bin/sh +# Copyright (C) 2011, 2013 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. $srcdir/test-subr.sh + +if test -n "$ELFUTILS_MEMORY_SANITIZER"; then + echo "binaries linked with memory sanitizer are too big" + exit 77 +fi + +tempfiles readelf.out1 readelf.out2 +tempfiles out.stripped1 out.debug1 out.stripped2 out.debug2 + +runtest_status=0 +runtest() { + infile=$1 + is_ET_REL=$2 + outfile1=out.stripped1 + debugfile1=out.debug1 + outfile2=out.stripped2 + debugfile2=out.debug2 + + echo "runtest $infile" + + rm -f $outfile1 $debugfile1 $outfile2 $debugfile2 + + testrun ${abs_top_builddir}/src/strip -o $outfile1 -f $debugfile1 $infile || + { echo "*** failure strip $infile"; runtest_status=1; } + + testrun ${abs_top_builddir}/src/strip --reloc-debug-sections -o $outfile2 \ + -f $debugfile2 $infile || + { echo "*** failure strip --reloc-debug-sections $infile"; runtest_status=1; } + + testrun ${abs_top_builddir}/src/elfcmp $outfile1 $outfile2 || + { echo "*** failure compare stripped files $infile"; runtest_status=1; } + + # debug files however should be smaller, when ET_REL. + SIZE1=$(stat -c%s $debugfile1) + SIZE2=$(stat -c%s $debugfile2) + test \( \( $is_ET_REL -eq 1 \) -a \( $SIZE1 -gt $SIZE2 \) \) \ + -o \( \( $is_ET_REL -eq 0 \) -a \( $SIZE1 -eq $SIZE2 \) \) || + { echo "*** failure --reloc-debug-sections not smaller $infile"; runtest_status=1; } + + # Strip of DWARF section lines, offset will not match. + # Everything else should match. + testrun ${abs_top_builddir}/src/readelf -N -w $debugfile1 \ + | grep -v ^DWARF\ section > readelf.out1 || + { echo "*** failure readelf -N -w debugfile1 $infile"; runtest_status=1; } + + testrun ${abs_top_builddir}/src/readelf -N -w $debugfile2 \ + | grep -v ^DWARF\ section > readelf.out2 || + { echo "*** failure readelf -N -w debugfile2 $infile"; runtest_status=1; } + + testrun_compare cat readelf.out1 < readelf.out2 || + { echo "*** failure readelf -N -w compare $infile"; runtest_status=1; } + + testrun ${abs_top_builddir}/src/strip --reloc-debug-sections-only \ + $debugfile1 || + { echo "*** failure strip --reloc-debug-sections-only $debugfile1"; \ + runtest_status=1; } + + cmp $debugfile1 $debugfile2 || + { echo "*** failure --reloc-debug-sections[-only] $debugfile1 $debugfile2"; \ + runtest_status=1; } +} diff --git a/tests/system-elf-gelf-test.c b/tests/system-elf-gelf-test.c new file mode 100644 index 00000000..5a0e4e76 --- /dev/null +++ b/tests/system-elf-gelf-test.c @@ -0,0 +1,36 @@ +/* Explicit test compiling with system elf.h header plus libelf/gelf headers. + + Copyright (C) Mark J. Wielaard <mark@klomp.org> + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <elf.h> +#include <stddef.h> +#include "../libelf/libelf.h" +#include "../libelf/gelf.h" + +int +main (void) +{ + /* Trivial test, this is really a compile test anyway. */ + if (elf_version (EV_CURRENT) == EV_NONE) + return -1; + + /* This will obviously fail. It is just to check that gelf_getclass + available (both at compile time and runtime). */ + int cls = gelf_getclass (NULL); + + return cls == ELFCLASSNONE ? 0 : -1; +} diff --git a/tests/run-copymany-sections.sh b/tests/test-copymany-subr.sh index 84c052c9..054103b4 100755 --- a/tests/run-copymany-sections.sh +++ b/tests/test-copymany-subr.sh @@ -35,12 +35,13 @@ test_copy_and_add () testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file} # Can we add a section (in-place)? - testrun ${abs_builddir}/addsections 65535 ${out_file} + testrun ${abs_builddir}/addsections 32768 ${out_file} testrun ${abs_top_builddir}/src/readelf -S ${out_file} > readelf.out nr=$(grep '.extra' readelf.out | wc -l) # We try twice... - if test ${nr} != 65535 -a ${nr} != 131070; then + if test ${nr} != 32768 -a ${nr} != 65536; then # Show what went wrong + echo nr: ${nr} testrun ${abs_top_builddir}/src/readelf -S ${out_file} exit 1 fi @@ -54,46 +55,8 @@ test_copy_and_add () # A collection of random testfiles to test 32/64bit, little/big endian # and non-ET_REL (with phdrs)/ET_REL (without phdrs). -# Try to add 0xffff sections twice. +# Try to add 0x0fff sections twice. -# 32bit, big endian, rel -testfiles testfile29 -test_copy_and_add testfile29 -test_copy_and_add testfile29.copy - -# 64bit, big endian, rel -testfiles testfile23 -test_copy_and_add testfile23 -test_copy_and_add testfile23.copy - -# 32bit, little endian, rel -testfiles testfile9 -test_copy_and_add testfile9 -test_copy_and_add testfile9.copy - -# 64bit, little endian, rel -testfiles testfile38 -test_copy_and_add testfile38 -test_copy_and_add testfile38.copy - -# 32bit, big endian, non-rel -testfiles testfile26 -test_copy_and_add testfile26 -test_copy_and_add testfile26.copy - -# 64bit, big endian, non-rel -testfiles testfile27 -test_copy_and_add testfile27 -test_copy_and_add testfile27.copy - -# 32bit, little endian, non-rel -testfiles testfile -test_copy_and_add testfile -test_copy_and_add testfile.copy - -# 64bit, little endian, non-rel -testfiles testfile10 -test_copy_and_add testfile10 -test_copy_and_add testfile10.copy - -exit 0 +# Separated out into subtests +# run-copymany-be32.sh run-copymany-be64.sh +# run-copymany-le32.sh run-copymany-le64.sh diff --git a/tests/testfilegdbindex9-no-maininfo.bz2 b/tests/testfilegdbindex9-no-maininfo.bz2 Binary files differnew file mode 100755 index 00000000..043b8d38 --- /dev/null +++ b/tests/testfilegdbindex9-no-maininfo.bz2 diff --git a/tests/testfilegdbindex9.bz2 b/tests/testfilegdbindex9.bz2 Binary files differnew file mode 100755 index 00000000..9a2c1893 --- /dev/null +++ b/tests/testfilegdbindex9.bz2 @@ -30,7 +30,7 @@ #ifndef _ELFUTILS_VERSION_H #define _ELFUTILS_VERSION_H 1 -#define _ELFUTILS_VERSION 189 +#define _ELFUTILS_VERSION 190 #define _ELFUTILS_PREREQ(major, minor) \ (_ELFUTILS_VERSION >= ((major) * 1000 + (minor))) |