diff options
98 files changed, 6019 insertions, 3308 deletions
@@ -1,3 +1,21 @@ +Version 0.175 + +readelf: Handle mutliple .debug_macro sections. + Recognize and parse GNU Property notes, NT_VERSION notes + and GNU Build Attribute ELF Notes. + +strip: Handle SHT_GROUP correctly. + Add strip --reloc-debug-sections-only option. + Handle relocations against GNU compressed sections. + +libdwelf: New function dwelf_elf_begin. + +libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE. + +backends: RISCV handles ADD/SUB relocations. Handle SHT_X86_64_UNWIND. + +Fixes CVE-2018-18310, CVE-2018-18520 and CVE-2018-18521. + Version 0.174 libelf, libdw and all tools now handle extended shnum and shstrndx correctly. diff --git a/backends/ChangeLog b/backends/ChangeLog index 3e0dd266..245553cb 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -13,6 +13,36 @@ * Makefile.am: Link backends against libgnu.a if requested. +2018-11-06 Mark Wielaard <mark@klomp.org> + + * x86_64_symbol.c (x86_64_section_type_name): New function. + * x86_64_init.c (x86_64_int): Hook section_type_name. + +2018-10-20 Mark Wielaard <mark@klomp.org> + + * ppc_initreg.c (ppc_set_initial_registers_tid): Use define instead of + const for size of dwarf_regs array. + +2018-10-02 Andreas Schwab <schwab@suse.de> + + * riscv_symbol.c (riscv_reloc_simple_type): Add parameter addsub. + Set it for ADD and SUB relocations. + * aarch64_symbol.c (aarch64_reloc_simple_type): Add and ignore + third parameter. + * alpha_symbol.c (alpha_reloc_simple_type): Likewise. + * arm_symbol.c (arm_reloc_simple_type): Likewise. + * bpf_symbol.c (bpf_reloc_simple_type): Likewise. + * i386_symbol.c (i386_reloc_simple_type): Likewise. + * ia64_symbol.c (ia64_reloc_simple_type): Likewise. + * m68k_symbol.c (m68k_reloc_simple_type): Likewise. + * ppc64_symbol.c (ppc64_reloc_simple_type): Likewise. + * ppc_symbol.c (ppc_reloc_simple_type): Likewise. + * s390_symbol.c (s390_reloc_simple_type): Likewise. + * sh_symbol.c (sh_reloc_simple_type): Likewise. + * sparc_symbol.c (sparc_reloc_simple_type): Likewise. + * tilegx_symbol.c (tilegx_reloc_simple_type): Likewise. + * x86_64_symbol.c (x86_64_reloc_simple_type): Likewise. + 2018-09-12 Mark Wielaard <mark@klomp.org> * ppc64_init.c (ppc64_init): Use elf_getshdrstrndx. diff --git a/backends/aarch64_symbol.c b/backends/aarch64_symbol.c index dfd755a5..e30c409d 100644 --- a/backends/aarch64_symbol.c +++ b/backends/aarch64_symbol.c @@ -40,7 +40,8 @@ /* Check for the simple reloc types. */ Elf_Type -aarch64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +aarch64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/alpha_symbol.c b/backends/alpha_symbol.c index b7f7c17a..53a9e7b7 100644 --- a/backends/alpha_symbol.c +++ b/backends/alpha_symbol.c @@ -61,7 +61,8 @@ alpha_dynamic_tag_check (int64_t tag) /* Check for the simple reloc types. */ Elf_Type -alpha_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +alpha_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/arm_symbol.c b/backends/arm_symbol.c index 3edda724..c8e1d7f9 100644 --- a/backends/arm_symbol.c +++ b/backends/arm_symbol.c @@ -109,7 +109,8 @@ arm_machine_flag_check (GElf_Word flags) /* Check for the simple reloc types. */ Elf_Type -arm_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +arm_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/bpf_symbol.c b/backends/bpf_symbol.c index c9856f26..85c948ab 100644 --- a/backends/bpf_symbol.c +++ b/backends/bpf_symbol.c @@ -40,7 +40,8 @@ /* Check for the simple reloc types. */ Elf_Type -bpf_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +bpf_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/i386_symbol.c b/backends/i386_symbol.c index 7dbf899f..a4b6ec08 100644 --- a/backends/i386_symbol.c +++ b/backends/i386_symbol.c @@ -49,7 +49,8 @@ i386_gotpc_reloc_check (Elf *elf __attribute__ ((unused)), int type) /* Check for the simple reloc types. */ Elf_Type -i386_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +i386_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/ia64_symbol.c b/backends/ia64_symbol.c index f928b0b7..0c038f0d 100644 --- a/backends/ia64_symbol.c +++ b/backends/ia64_symbol.c @@ -115,7 +115,8 @@ ia64_section_type_name (int type, /* Check for the simple reloc types. */ Elf_Type -ia64_reloc_simple_type (Ebl *ebl, int type) +ia64_reloc_simple_type (Ebl *ebl, int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/m68k_symbol.c b/backends/m68k_symbol.c index 269d12e5..9551cdfe 100644 --- a/backends/m68k_symbol.c +++ b/backends/m68k_symbol.c @@ -54,7 +54,8 @@ m68k_gotpc_reloc_check (Elf *elf __attribute__ ((unused)), int type) /* Check for the simple reloc types. */ Elf_Type -m68k_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +m68k_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/ppc64_symbol.c b/backends/ppc64_symbol.c index 40ba4f74..81b94cfd 100644 --- a/backends/ppc64_symbol.c +++ b/backends/ppc64_symbol.c @@ -42,7 +42,8 @@ /* Check for the simple reloc types. */ Elf_Type -ppc64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +ppc64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c index 3e4432f6..0e0d3599 100644 --- a/backends/ppc_initreg.c +++ b/backends/ppc_initreg.c @@ -93,11 +93,11 @@ ppc_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), if (errno != 0) return false; } - const size_t gprs = sizeof (user_regs.r.gpr) / sizeof (*user_regs.r.gpr); - Dwarf_Word dwarf_regs[gprs]; - for (unsigned gpr = 0; gpr < gprs; gpr++) +#define GPRS (sizeof (user_regs.r.gpr) / sizeof (*user_regs.r.gpr)) + Dwarf_Word dwarf_regs[GPRS]; + for (unsigned gpr = 0; gpr < GPRS; gpr++) dwarf_regs[gpr] = user_regs.r.gpr[gpr]; - if (! setfunc (0, gprs, dwarf_regs, arg)) + if (! setfunc (0, GPRS, dwarf_regs, arg)) return false; dwarf_regs[0] = user_regs.r.link; // LR uses both 65 and 108 numbers, there is no consistency for it. diff --git a/backends/ppc_symbol.c b/backends/ppc_symbol.c index 35b14319..5a169d54 100644 --- a/backends/ppc_symbol.c +++ b/backends/ppc_symbol.c @@ -42,7 +42,8 @@ /* Check for the simple reloc types. */ Elf_Type -ppc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +ppc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/riscv_symbol.c b/backends/riscv_symbol.c index 866a2d7a..c34b7702 100644 --- a/backends/riscv_symbol.c +++ b/backends/riscv_symbol.c @@ -40,14 +40,38 @@ /* Check for the simple reloc types. */ Elf_Type -riscv_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +riscv_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub) { switch (type) { + case R_RISCV_SET8: + return ELF_T_BYTE; + case R_RISCV_SET16: + return ELF_T_HALF; case R_RISCV_32: + case R_RISCV_SET32: return ELF_T_WORD; case R_RISCV_64: return ELF_T_XWORD; + case R_RISCV_ADD16: + *addsub = 1; + return ELF_T_HALF; + case R_RISCV_SUB16: + *addsub = -1; + return ELF_T_HALF; + case R_RISCV_ADD32: + *addsub = 1; + return ELF_T_WORD; + case R_RISCV_SUB32: + *addsub = -1; + return ELF_T_WORD; + case R_RISCV_ADD64: + *addsub = 1; + return ELF_T_XWORD; + case R_RISCV_SUB64: + *addsub = -1; + return ELF_T_XWORD; default: return ELF_T_NUM; } diff --git a/backends/s390_symbol.c b/backends/s390_symbol.c index a0a4fafa..f91e1373 100644 --- a/backends/s390_symbol.c +++ b/backends/s390_symbol.c @@ -38,7 +38,8 @@ /* Check for the simple reloc types. */ Elf_Type -s390_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +s390_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/sh_symbol.c b/backends/sh_symbol.c index 8101e96f..2761d92c 100644 --- a/backends/sh_symbol.c +++ b/backends/sh_symbol.c @@ -47,7 +47,8 @@ sh_gotpc_reloc_check (Elf *elf __attribute__ ((unused)), int type) /* Check for the simple reloc types. */ Elf_Type -sh_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +sh_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/sparc_symbol.c b/backends/sparc_symbol.c index ec11dc97..e8ee3911 100644 --- a/backends/sparc_symbol.c +++ b/backends/sparc_symbol.c @@ -39,7 +39,8 @@ /* Check for the simple reloc types. */ Elf_Type -sparc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +sparc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/tilegx_symbol.c b/backends/tilegx_symbol.c index b6533266..62a46907 100644 --- a/backends/tilegx_symbol.c +++ b/backends/tilegx_symbol.c @@ -39,7 +39,8 @@ /* Check for the simple reloc types. */ Elf_Type -tilegx_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +tilegx_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c index adfa4791..49f6c6c7 100644 --- a/backends/x86_64_init.c +++ b/backends/x86_64_init.c @@ -1,5 +1,5 @@ /* Initialization of x86-64 specific backend library. - Copyright (C) 2002-2009, 2013 Red Hat, Inc. + Copyright (C) 2002-2009, 2013, 2018 Red Hat, Inc. Copyright (C) H.J. Lu <hjl.tools@gmail.com>, 2015. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -55,6 +55,7 @@ x86_64_init (Elf *elf __attribute__ ((unused)), eh->name = "AMD x86-64"; x86_64_init_reloc (eh); HOOK (eh, reloc_simple_type); + HOOK (eh, section_type_name); if (eh->class == ELFCLASS32) eh->core_note = x32_core_note; else diff --git a/backends/x86_64_symbol.c b/backends/x86_64_symbol.c index 1622461d..98457bcb 100644 --- a/backends/x86_64_symbol.c +++ b/backends/x86_64_symbol.c @@ -1,5 +1,5 @@ /* x86_64 specific symbolic name handling. - Copyright (C) 2002, 2005 Red Hat, Inc. + Copyright (C) 2002, 2005, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -40,7 +40,8 @@ /* Check for the simple reloc types. */ Elf_Type -x86_64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) +x86_64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, + int *addsub __attribute__ ((unused))) { switch (type) { @@ -58,3 +59,15 @@ x86_64_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) return ELF_T_NUM; } } + +/* Return symbolic representation of section type. */ +const char * +x86_64_section_type_name (int type, + char *buf __attribute__ ((unused)), + size_t len __attribute__ ((unused))) +{ + if (type == SHT_X86_64_UNWIND) + return "X86_64_UNWIND"; + + return NULL; +} diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 0f9687d4..e2fb0e4d 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -227,6 +227,20 @@ rm -rf ${RPM_BUILD_ROOT} %{_sysctldir}/10-default-yama-scope.conf %changelog +* Wed Nov 14 2018 Mark Wielaard <mark@klomp.org> 0.175-1 +- readelf: Handle mutliple .debug_macro sections. + Recognize and parse GNU Property notes, NT_VERSION notes and + GNU Build Attribute ELF Notes. +- strip: Handle SHT_GROUP correctly. + Add strip --reloc-debug-sections-only option. + Handle relocations against GNU compressed sections. +- libdwelf: New function dwelf_elf_begin. +- libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT + and BPF_JSLE. +- backends: RISCV handles ADD/SUB relocations. + Handle SHT_X86_64_UNWIND. +- Fixes CVE-2018-18310, CVE-2018-18520 and CVE-2018-18521. + * Fri Sep 14 2018 Mark Wielaard <mark@klomp> 0.174-1 - libelf, libdw and all tools now handle extended shnum and shstrndx correctly. diff --git a/config/upload-release.sh b/config/upload-release.sh index 320d1ada..a44d40c9 100755 --- a/config/upload-release.sh +++ b/config/upload-release.sh @@ -1,5 +1,10 @@ #!/bin/bash +# Must be run in the source directory. +# Should have passed make distcheck. +# And all final changes should already have been pushed. +# Backup copy will be created in $HOME/elfutils-$VERSION + # Any error is fatal set -e @@ -11,21 +16,44 @@ fi VERSION="$1" -# Check we are in the build dir already configured. -ELFUTILS_VERSION=$(echo $VERSION | cut -f2 -d\.) -grep $ELFUTILS_VERSION version.h \ - || (echo "Must be run in configured build dir for $VERSION"; exit -1) +echo Make sure the git repo is tagged, signed and pushed +echo git tag -s -m \"elfutils $VERSION release\" elfutils-$VERSION +echo git push --tags + +# Create a temporary directoy and make sure it is cleaned up. +tempdir=$(mktemp -d) || exit +trap "rm -rf -- ${tempdir}" EXIT + +pushd "${tempdir}" + +# Checkout +git clone git://sourceware.org/git/elfutils.git +cd elfutils +git checkout -b "$VERSION" "elfutils-${VERSION}" +# Create dist +autoreconf -v -f -i +./configure --enable-maintainer-mode make dist +# Sign mkdir $VERSION cp elfutils-$VERSION.tar.bz2 $VERSION/ cd $VERSION/ gpg -b elfutils-$VERSION.tar.bz2 cd .. -scp -r $VERSION sourceware.org:/sourceware/ftp/pub/elfutils/ +# Backup copy +cp -r $VERSION $HOME/elfutils-$VERSION + +# Upload +scp -r $VERSION sourceware.org:/sourceware/ftp/pub/elfutils/ ssh sourceware.org "(cd /sourceware/ftp/pub/elfutils \ && ln -sf $VERSION/elfutils-$VERSION.tar.bz2 elfutils-latest.tar.bz2 \ && ln -sf $VERSION/elfutils-$VERSION.tar.bz2.sig elfutils-latest.tar.bz2.sig \ && ls -lah elfutils-latest*)" + +# Cleanup +popd +trap - EXIT +exit diff --git a/configure.ac b/configure.ac index 4e832a77..b351f086 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,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.174],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) +AC_INIT([elfutils],[0.175],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) dnl Workaround for older autoconf < 2.64 m4_ifndef([AC_PACKAGE_URL], diff --git a/lib/ChangeLog b/lib/ChangeLog index 8aa19734..7bd998e5 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -23,6 +23,10 @@ * eu-config.h: Define unlocked I/O functions to locked ones if they are unavailable. +2018-11-04 Mark Wielaard <mark@klomp.org> + + * bpf.h: Add BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE. + 2018-07-04 Ross Burton <ross.burton@intel.com> * color.c: Remove error.h, add system.h include. @@ -23,6 +23,10 @@ #define BPF_JSGE 0x70 #define BPF_CALL 0x80 #define BPF_EXIT 0x90 +#define BPF_JLT 0xa0 +#define BPF_JLE 0xb0 +#define BPF_JSLT 0xc0 +#define BPF_JSLE 0xd0 #define BPF_W 0x00 #define BPF_H 0x08 diff --git a/libasm/ChangeLog b/libasm/ChangeLog index 4a9a5117..1d0bdc29 100644 --- a/libasm/ChangeLog +++ b/libasm/ChangeLog @@ -11,6 +11,10 @@ * Makefile.am: Use the predefined common library names rather than hardcoding to libasm.so and friends. +2018-10-19 Mark Wielaard <mark@klomp.org> + + * disasm_cb.c (read_symtab_exec): Check sh_entsize is not zero. + 2018-07-04 Ross Burton <ross.burton@intel.com> * asm_end.c: Remove error.h include. diff --git a/libasm/disasm_cb.c b/libasm/disasm_cb.c index cf278c71..80f8b25b 100644 --- a/libasm/disasm_cb.c +++ b/libasm/disasm_cb.c @@ -93,6 +93,8 @@ read_symtab_exec (DisasmCtx_t *ctx) xndxdata = elf_getdata (elf_getscn (ctx->elf, xndxscnidx), NULL); /* Iterate over all symbols. Add all defined symbols. */ + if (shdr->sh_entsize == 0) + continue; int nsyms = shdr->sh_size / shdr->sh_entsize; for (int cnt = 1; cnt < nsyms; ++cnt) { diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog index c6ef82fc..8c85e7a3 100644 --- a/libcpu/ChangeLog +++ b/libcpu/ChangeLog @@ -2,6 +2,11 @@ * Makefile.am: Link gendis agaist libgnu.a if requested. +2018-11-04 Mark Wielaard <mark@klomp.org> + + * bpf_disasm.c (bpf_disasm): Recognize BPF_JLT, BPF_JLE, BPF_JSLT + and BPF_JSLE. + 2018-02-09 Joshua Watt <JPEWhacker@gmail.com> * i386_disasm.c (i386_disasm): Use FALLTHOUGH macro instead of diff --git a/libcpu/bpf_disasm.c b/libcpu/bpf_disasm.c index 054aba2b..3d92d014 100644 --- a/libcpu/bpf_disasm.c +++ b/libcpu/bpf_disasm.c @@ -1,5 +1,5 @@ /* Disassembler for BPF. - Copyright (C) 2016 Red Hat, Inc. + Copyright (C) 2016, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -346,6 +346,18 @@ bpf_disasm (Ebl *ebl, const uint8_t **startp, const uint8_t *end, case BPF_JMP | BPF_JSGE | BPF_K: code_fmt = J64(REGS(1), >=, IMMS(2)); goto do_dst_imm_jmp; + case BPF_JMP | BPF_JLT | BPF_K: + code_fmt = J64(REG(1), <, IMMS(2)); + goto do_dst_imm_jmp; + case BPF_JMP | BPF_JLE | BPF_K: + code_fmt = J64(REG(1), <=, IMMS(2)); + goto do_dst_imm_jmp; + case BPF_JMP | BPF_JSLT | BPF_K: + code_fmt = J64(REGS(1), <, IMMS(2)); + goto do_dst_imm_jmp; + case BPF_JMP | BPF_JSLE | BPF_K: + code_fmt = J64(REGS(1), <=, IMMS(2)); + goto do_dst_imm_jmp; case BPF_JMP | BPF_JEQ | BPF_X: code_fmt = J64(REG(1), ==, REG(2)); @@ -368,6 +380,18 @@ bpf_disasm (Ebl *ebl, const uint8_t **startp, const uint8_t *end, case BPF_JMP | BPF_JSGE | BPF_X: code_fmt = J64(REGS(1), >=, REGS(2)); goto do_dst_src_jmp; + case BPF_JMP | BPF_JLT | BPF_X: + code_fmt = J64(REG(1), <, REG(2)); + goto do_dst_src_jmp; + case BPF_JMP | BPF_JLE | BPF_X: + code_fmt = J64(REG(1), <=, REG(2)); + goto do_dst_src_jmp; + case BPF_JMP | BPF_JSLT | BPF_X: + code_fmt = J64(REGS(1), <, REGS(2)); + goto do_dst_src_jmp; + case BPF_JMP | BPF_JSLE | BPF_X: + code_fmt = J64(REGS(1), <=, REGS(2)); + goto do_dst_src_jmp; case BPF_LDX | BPF_MEM | BPF_B: code_fmt = LOAD(u8); diff --git a/libdw/ChangeLog b/libdw/ChangeLog index c8fe46ba..ee5a956f 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,11 @@ +2018-10-20 Mark Wielaard <mark@klomp.org> + + * libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin. + +2018-10-29 Milian Wolff <milian.wolff@kdab.com> + + * dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type != SHT_NOBITS. + 2018-09-13 Mark Wielaard <mark@klomp.org> * dwarf_begin_elf.c (check_section): Drop ehdr argument, add and diff --git a/libdw/dwarf_getcfi_elf.c b/libdw/dwarf_getcfi_elf.c index 315cc02f..adcaea03 100644 --- a/libdw/dwarf_getcfi_elf.c +++ b/libdw/dwarf_getcfi_elf.c @@ -298,7 +298,7 @@ getcfi_shdr (Elf *elf, const GElf_Ehdr *ehdr) } else if (!strcmp (name, ".eh_frame")) { - if (shdr->sh_type == SHT_PROGBITS) + if (shdr->sh_type != SHT_NOBITS) return getcfi_scn_eh_frame (elf, ehdr, scn, shdr, hdr_scn, hdr_vaddr); else diff --git a/libdw/libdw.map b/libdw/libdw.map index 3fef2ede..55482d58 100644 --- a/libdw/libdw.map +++ b/libdw/libdw.map @@ -356,3 +356,8 @@ ELFUTILS_0.173 { global: dwarf_next_lines; } ELFUTILS_0.171; + +ELFUTILS_0.175 { + global: + dwelf_elf_begin; +} ELFUTILS_0.173;
\ No newline at end of file diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog index a3326556..88be3421 100644 --- a/libdwelf/ChangeLog +++ b/libdwelf/ChangeLog @@ -1,4 +1,15 @@ -2015-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> +2018-10-21 Mark Wielaard <mark@klomp.org> + + * libdwelf.h (dwelf_elf_begin): Add function declaration. + * dwelf_elf_begin.c: New file. + * Makefile.am (libdwelf_a_SOURCES): Add dwelf_elf_begin.c. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * dwelf_elf_gnu_build_id.c (find_elf_build_id): Check p_align to + set ELF type. + +2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> * dwelf_strtab.c: Remove sys/param.h include. (MIN): Remove definition. diff --git a/libdwelf/Makefile.am b/libdwelf/Makefile.am index 7ca767a9..a7933fda 100644 --- a/libdwelf/Makefile.am +++ b/libdwelf/Makefile.am @@ -41,7 +41,7 @@ noinst_HEADERS = libdwelfP.h libdwelf_a_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \ dwelf_elf_gnu_build_id.c dwelf_scn_gnu_compressed_size.c \ - dwelf_strtab.c + dwelf_strtab.c dwelf_elf_begin.c libdwelf = $(libdw) diff --git a/libdwelf/dwelf_elf_begin.c b/libdwelf/dwelf_elf_begin.c new file mode 100644 index 00000000..79825338 --- /dev/null +++ b/libdwelf/dwelf_elf_begin.c @@ -0,0 +1,62 @@ +/* Creates an ELF handle from a possibly compressed file descriptor. + Copyright (C) 2018 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "libdwelfP.h" +#include "libdwflP.h" +#include "libelfP.h" + +#include <unistd.h> + +Elf * +dwelf_elf_begin (int fd) +{ + Elf *elf = NULL; + Dwfl_Error e = __libdw_open_elf (fd, &elf); + if (elf != NULL && elf_kind (elf) != ELF_K_NONE) + return elf; + + /* Elf wasn't usable. Make sure there is a proper elf error message. */ + + if (elf != NULL) + elf_end (elf); + + if (e != DWFL_E_LIBELF) + { + /* Force a bad ELF error. */ + char badelf[EI_NIDENT] = { }; + Elf *belf = elf_memory (badelf, EI_NIDENT); + elf32_getehdr (belf); + elf_end (belf); + } + + return NULL; +} diff --git a/libdwelf/dwelf_elf_gnu_build_id.c b/libdwelf/dwelf_elf_gnu_build_id.c index 8c78c700..dbcfc829 100644 --- a/libdwelf/dwelf_elf_gnu_build_id.c +++ b/libdwelf/dwelf_elf_gnu_build_id.c @@ -88,7 +88,9 @@ find_elf_build_id (Dwfl_Module *mod, int e_type, Elf *elf, result = check_notes (elf_getdata_rawchunk (elf, phdr->p_offset, phdr->p_filesz, - ELF_T_NHDR), + (phdr->p_align == 8 + ? ELF_T_NHDR8 + : ELF_T_NHDR)), phdr->p_vaddr, build_id_bits, build_id_elfaddr, diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h index 72089dbf..6d491847 100644 --- a/libdwelf/libdwelf.h +++ b/libdwelf/libdwelf.h @@ -1,5 +1,5 @@ /* Interfaces for libdwelf. DWARF ELF Low-level Functions. - Copyright (C) 2014, 2015, 2016 Red Hat, Inc. + Copyright (C) 2014, 2015, 2016, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -125,6 +125,14 @@ extern const char *dwelf_strent_str (Dwelf_Strent *se) extern void dwelf_strtab_free (Dwelf_Strtab *st) __nonnull_attribute__ (1); +/* Creates a read-only Elf handle from the given file handle. The + file may be compressed and/or contain a linux kernel image header, + in which case it is eagerly decompressed in full and the Elf handle + is created as if created with elf_memory (). On error NULL is + returned. The Elf handle should be closed with elf_end (). The + file handle will not be closed. Does not return ELF_K_NONE handles. */ +extern Elf *dwelf_elf_begin (int fd); + #ifdef __cplusplus } #endif diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 76d27644..6a597d03 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -35,6 +35,39 @@ * dwfl_error.c: If we don't have a strerror_r returning a char*, output a less useful message in case of a system error. +2018-10-20 Mark Wielaard <mark@klomp.org> + + * libdwflP.h (__libdw_open_elf): New internal function declaration. + * open.c (what_kind): Rename close_fd to may_close_fd. + (__libdw_open_file): Replaced (and renamed) by a call to ... + (libdw_open_elf): this. And add never_close_fd argument. + (__libdw_open_elf): New function that calls libdw_open_elf. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * dwfl_segment_report_module.c (consider_note): Take align as new + argument. Use align to set d_type and calculate padding. + (dwfl_segment_report_module): Pass align to consider_notes. + * core-file.c (dwfl_core_file_report): Check p_align to set ELF + type. + * linux-kernel-modules.c (check_notes): Check name and type of note + to determine padding. + +2018-10-19 Mark Wielaard <mark@klomp.org> + + * dwfl_module_getdwarf.c (find_aux_sym): Check sh_entsize is not zero. + +2018-10-14 Mark Wielaard <mark@klomp.org> + + * dwfl_segment_report_module.c (read_portion): Check requested + filesz isn't larger than buffer_available. + (dwfl_segment_report_module): Check data_size vs filesz after + read_portion call. + +2018-10-02 Andreas Schwab <schwab@suse.de> + + * relocate.c (relocate): Handle ADD/SUB relocations. + 2018-09-13 Mark Wielaard <mark@klomp.org> * dwfl_segment_report_module.c (dwfl_segment_report_module): diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c index 84cb89ac..01109f4b 100644 --- a/libdwfl/core-file.c +++ b/libdwfl/core-file.c @@ -496,7 +496,9 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf, const char *executable) Elf_Data *notes = elf_getdata_rawchunk (elf, notes_phdr.p_offset, notes_phdr.p_filesz, - ELF_T_NHDR); + (notes_phdr.p_align == 8 + ? ELF_T_NHDR8 + : ELF_T_NHDR)); if (likely (notes != NULL)) { size_t pos = 0; diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c index 095a853f..bf68d189 100644 --- a/libdwfl/dwfl_module_getdwarf.c +++ b/libdwfl/dwfl_module_getdwarf.c @@ -1007,6 +1007,8 @@ find_aux_sym (Dwfl_Module *mod __attribute__ ((unused)), switch (shdr->sh_type) { case SHT_SYMTAB: + if (shdr->sh_entsize == 0) + return; minisymtab = true; *aux_symscn = scn; *aux_strshndx = shdr->sh_link; diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 5125decf..d2b43d3b 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -1,5 +1,5 @@ /* Sniff out modules from ELF headers visible in memory segments. - Copyright (C) 2008-2012, 2014, 2015 Red Hat, Inc. + Copyright (C) 2008-2012, 2014, 2015, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -27,7 +27,7 @@ not, see <http://www.gnu.org/licenses/>. */ #include <config.h> -#include "../libelf/libelfP.h" /* For NOTE_ALIGN. */ +#include "../libelf/libelfP.h" /* For NOTE_ALIGN4 and NOTE_ALIGN8. */ #undef _ #include "libdwflP.h" #include "common.h" @@ -301,7 +301,10 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, inline bool read_portion (void **data, size_t *data_size, GElf_Addr vaddr, size_t filesz) { - if (vaddr - start + filesz > buffer_available + /* Check whether we will have to read the segment data, or if it + can be returned from the existing buffer. */ + if (filesz > buffer_available + || vaddr - start > buffer_available - filesz /* If we're in string mode, then don't consider the buffer we have sufficient unless it contains the terminator of the string. */ || (filesz == 0 && memchr (vaddr - start + buffer, '\0', @@ -448,7 +451,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, GElf_Addr build_id_vaddr = 0; /* Consider a PT_NOTE we've found in the image. */ - inline void consider_notes (GElf_Addr vaddr, GElf_Xword filesz) + inline void consider_notes (GElf_Addr vaddr, GElf_Xword filesz, + GElf_Xword align) { /* If we have already seen a build ID, we don't care any more. */ if (build_id != NULL || filesz == 0) @@ -459,6 +463,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, if (read_portion (&data, &data_size, vaddr, filesz)) return; + /* data_size will be zero if we got everything from the initial + buffer, otherwise it will be the size of the new buffer that + could be read. */ + if (data_size != 0) + filesz = data_size; + assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr)); void *notes; @@ -469,7 +479,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, notes = malloc (filesz); if (unlikely (notes == NULL)) return; - xlatefrom.d_type = xlateto.d_type = ELF_T_NHDR; + xlatefrom.d_type = xlateto.d_type = (align == 8 + ? ELF_T_NHDR8 : ELF_T_NHDR); xlatefrom.d_buf = (void *) data; xlatefrom.d_size = filesz; xlateto.d_buf = notes; @@ -480,15 +491,23 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, } const GElf_Nhdr *nh = notes; - while ((const void *) nh < (const void *) notes + filesz) - { - const void *note_name = nh + 1; - const void *note_desc = note_name + NOTE_ALIGN (nh->n_namesz); - if (unlikely ((size_t) ((const void *) notes + filesz - - note_desc) < nh->n_descsz)) + size_t len = 0; + while (filesz > len + sizeof (*nh)) + { + const void *note_name; + const void *note_desc; + + len += sizeof (*nh); + note_name = notes + len; + + len += nh->n_namesz; + len = align == 8 ? NOTE_ALIGN8 (len) : NOTE_ALIGN4 (len); + note_desc = notes + len; + + if (unlikely (filesz < len + nh->n_descsz)) break; - if (nh->n_type == NT_GNU_BUILD_ID + if (nh->n_type == NT_GNU_BUILD_ID && nh->n_descsz > 0 && nh->n_namesz == sizeof "GNU" && !memcmp (note_name, "GNU", sizeof "GNU")) @@ -501,7 +520,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, break; } - nh = note_desc + NOTE_ALIGN (nh->n_descsz); + len += nh->n_descsz; + len = align == 8 ? NOTE_ALIGN8 (len) : NOTE_ALIGN4 (len); + nh = (void *) notes + len; } done: @@ -526,7 +547,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, case PT_NOTE: /* We calculate from the p_offset of the note segment, because we don't yet know the bias for its p_vaddr. */ - consider_notes (start + offset, filesz); + consider_notes (start + offset, filesz, align); break; case PT_LOAD: diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h index dcdb332c..66ebb6ac 100644 --- a/libdwfl/libdwflP.h +++ b/libdwfl/libdwflP.h @@ -626,6 +626,10 @@ extern Dwfl_Error __libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) internal_function; +/* Same as __libdw_open_file, but never closes the given file + descriptor and ELF_K_AR is always an acceptable type. */ +extern Dwfl_Error __libdw_open_elf (int fd, Elf **elfp) internal_function; + /* Fetch PT_DYNAMIC P_VADDR from ELF and store it to *VADDRP. Return success. *VADDRP is not modified if the function fails. */ extern bool __libdwfl_dynamic_vaddr_get (Elf *elf, GElf_Addr *vaddrp) diff --git a/libdwfl/linux-core-attach.c b/libdwfl/linux-core-attach.c index 9f05f72a..6c99b9e2 100644 --- a/libdwfl/linux-core-attach.c +++ b/libdwfl/linux-core-attach.c @@ -355,7 +355,9 @@ dwfl_core_file_attach (Dwfl *dwfl, Elf *core) if (phdr != NULL && phdr->p_type == PT_NOTE) { note_data = elf_getdata_rawchunk (core, phdr->p_offset, - phdr->p_filesz, ELF_T_NHDR); + phdr->p_filesz, (phdr->p_align == 8 + ? ELF_T_NHDR8 + : ELF_T_NHDR)); break; } } diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 4b454d37..884c7c22 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -38,6 +38,7 @@ #include <config.h> +#include "libelfP.h" #include "libdwflP.h" #include <inttypes.h> #include <errno.h> @@ -554,15 +555,41 @@ check_notes (Dwfl_Module *mod, const char *notesfile, return 1; unsigned char *p = buf.data; + size_t len = 0; while (p < &buf.data[n]) { /* No translation required since we are reading the native kernel. */ GElf_Nhdr *nhdr = (void *) p; - p += sizeof *nhdr; + len += sizeof *nhdr; + p += len; unsigned char *name = p; - p += (nhdr->n_namesz + 3) & -4U; - unsigned char *bits = p; - p += (nhdr->n_descsz + 3) & -4U; + unsigned char *bits; + /* This is somewhat ugly, GNU Property notes use different padding, + but all we have is the file content, so we have to actually check + the name and type. */ + if (nhdr->n_type == NT_GNU_PROPERTY_TYPE_0 + && nhdr->n_namesz == sizeof "GNU" + && name + nhdr->n_namesz < &buf.data[n] + && !memcmp (name, "GNU", sizeof "GNU")) + { + len += nhdr->n_namesz; + len = NOTE_ALIGN8 (len); + p = buf.data + len; + bits = p; + len += nhdr->n_descsz; + len = NOTE_ALIGN8 (len); + p = buf.data + len; + } + else + { + len += nhdr->n_namesz; + len = NOTE_ALIGN4 (len); + p = buf.data + len; + bits = p; + len += nhdr->n_descsz; + len = NOTE_ALIGN4 (len); + p = buf.data + len; + } if (p <= &buf.data[n] && nhdr->n_type == NT_GNU_BUILD_ID diff --git a/libdwfl/open.c b/libdwfl/open.c index 4e0461bd..74367359 100644 --- a/libdwfl/open.c +++ b/libdwfl/open.c @@ -95,7 +95,7 @@ decompress (int fd __attribute__ ((unused)), Elf **elf) } static Dwfl_Error -what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *close_fd) +what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *may_close_fd) { Dwfl_Error error = DWFL_E_NOERROR; *kind = elf_kind (*elfp); @@ -108,7 +108,7 @@ what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *close_fd) error = decompress (fd, elfp); if (error == DWFL_E_NOERROR) { - *close_fd = true; + *may_close_fd = true; *kind = elf_kind (*elfp); } } @@ -116,15 +116,16 @@ what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *close_fd) return error; } -Dwfl_Error internal_function -__libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) +static Dwfl_Error +libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok, + bool never_close_fd) { - bool close_fd = false; + bool may_close_fd = false; Elf *elf = elf_begin (*fdp, ELF_C_READ_MMAP_PRIVATE, NULL); Elf_Kind kind; - Dwfl_Error error = what_kind (*fdp, &elf, &kind, &close_fd); + Dwfl_Error error = what_kind (*fdp, &elf, &kind, &may_close_fd); if (error == DWFL_E_BADELF) { /* It's not an ELF file or a compressed file. @@ -153,7 +154,7 @@ __libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) elf->flags &= ~(ELF_F_MMAPPED | ELF_F_MALLOCED); elf_end (elf); elf = subelf; - error = what_kind (*fdp, &elf, &kind, &close_fd); + error = what_kind (*fdp, &elf, &kind, &may_close_fd); } } } @@ -169,7 +170,8 @@ __libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) elf = NULL; } - if (error == DWFL_E_NOERROR ? close_fd : close_on_fail) + if (! never_close_fd + && error == DWFL_E_NOERROR ? may_close_fd : close_on_fail) { close (*fdp); *fdp = -1; @@ -178,3 +180,15 @@ __libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) *elfp = elf; return error; } + +Dwfl_Error internal_function +__libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok) +{ + return libdw_open_elf (fdp, elfp, close_on_fail, archive_ok, false); +} + +Dwfl_Error internal_function +__libdw_open_elf (int fd, Elf **elfp) +{ + return libdw_open_elf (&fd, elfp, false, true, true); +} diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c index 9afcdebe..58c56786 100644 --- a/libdwfl/relocate.c +++ b/libdwfl/relocate.c @@ -338,7 +338,8 @@ relocate (Dwfl_Module * const mod, So we just pretend it's OK without further relocation. */ return DWFL_E_NOERROR; - Elf_Type type = ebl_reloc_simple_type (mod->ebl, rtype); + int addsub = 0; + Elf_Type type = ebl_reloc_simple_type (mod->ebl, rtype, &addsub); if (unlikely (type == ELF_T_NUM)) return DWFL_E_BADRELTYPE; @@ -383,6 +384,9 @@ relocate (Dwfl_Module * const mod, { #define DO_TYPE(NAME, Name) \ case ELF_T_##NAME: \ + if (addsub != 0 && addend == NULL) \ + /* These do not make sense with SHT_REL. */ \ + return DWFL_E_BADRELTYPE; \ size = sizeof (GElf_##Name); \ break TYPES; @@ -417,11 +421,24 @@ relocate (Dwfl_Module * const mod, { /* For the addend form, we have the value already. */ value += *addend; + /* For ADD/SUB relocations we need to fetch the section + contents. */ + if (addsub != 0) + { + Elf_Data *d = gelf_xlatetom (relocated, &tmpdata, &rdata, + ehdr->e_ident[EI_DATA]); + if (d == NULL) + return DWFL_E_LIBELF; + assert (d == &tmpdata); + } switch (type) { #define DO_TYPE(NAME, Name) \ case ELF_T_##NAME: \ - tmpbuf.Name = value; \ + if (addsub != 0) \ + tmpbuf.Name += value * addsub; \ + else \ + tmpbuf.Name = value; \ break TYPES; #undef DO_TYPE diff --git a/libebl/ChangeLog b/libebl/ChangeLog index 0aa4d423..0af5d28c 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -14,6 +14,41 @@ * eblmachineflagname.c: Don't include system.h. * eblopenbackend.c: Likewise. +2018-11-15 Mark Wielaard <mark@klomp.org> + + * eblobjnotetypename.c (ebl_object_note_type_name): Don't update + w, t and len unnecessarily. + +2018-11-12 Mark Wielaard <mark@klomp.org> + + * libebl.h (ebl_object_note): Add new argument namesz. + * eblobjnote.c (ebl_object_note): Likewise and handle GNU Build + Attribute notes. + * eblobjnotetypename.c (ebl_object_note_type_name): Handle GNU + Build Attribute notes. + +2018-11-11 Mark Wielaard <mark@klomp.org> + + * eblobjnote.c (ebl_object_note): Recognize NT_VERSION with zero + descriptor. Add explicit "GNU" name check. + * eblobjnotetypename.c (ebl_object_note_type_name): Add extra + argument descsz. Recognize NT_VERSION using descsz. With "GNU" + name it is NT_GNU_ABI_TAG. + * libebl.h (ebl_object_note_type_name): Add extra argument descsz. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * eblobjnote.c (ebl_object_note): Handle NT_GNU_PROPERTY_TYPE_0. + * eblobjnotetypename.c (ebl_object_note_type_name): Add + GNU_PROPERTY_TYPE_0. + +2018-10-02 Andreas Schwab <schwab@suse.de> + + * ebl-hooks.h (EBLHOOK(reloc_simple_type)): Add third parameter. + * libebl.h (ebl_reloc_simple_type): Likewise. + * eblopenbackend.c (default_reloc_simple_type): Likewise. + * eblrelocsimpletype.c (ebl_reloc_simple_type): Pass it down. + 2018-09-12 Mark Wielaard <mark@klomp.org> * eblsectionstripp.c (ebl_section_strip_p): Drop ehdr argument. diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h index 7a355cd1..1e7960b8 100644 --- a/libebl/ebl-hooks.h +++ b/libebl/ebl-hooks.h @@ -33,7 +33,7 @@ const char *EBLHOOK(reloc_type_name) (int, char *, size_t); bool EBLHOOK(reloc_type_check) (int); /* Check if relocation type is for simple absolute relocations. */ -Elf_Type EBLHOOK(reloc_simple_type) (Ebl *, int); +Elf_Type EBLHOOK(reloc_simple_type) (Ebl *, int, int *); /* Check relocation type use. */ bool EBLHOOK(reloc_valid_use) (Elf *, int); diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c index ca4f155d..58ac86d7 100644 --- a/libebl/eblobjnote.c +++ b/libebl/eblobjnote.c @@ -1,5 +1,5 @@ /* Print contents of object file note. - Copyright (C) 2002, 2007, 2009, 2011, 2015, 2016 Red Hat, Inc. + Copyright (C) 2002, 2007, 2009, 2011, 2015, 2016, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -37,9 +37,14 @@ #include <string.h> #include <libeblP.h> +#include "common.h" +#include "libelfP.h" +#include "libdwP.h" +#include "memory-access.h" + void -ebl_object_note (Ebl *ebl, const char *name, uint32_t type, +ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type, uint32_t descsz, const char *desc) { if (! ebl->object_note (name, type, descsz, desc)) @@ -133,6 +138,160 @@ ebl_object_note (Ebl *ebl, const char *name, uint32_t type, return; } + if (strncmp (name, ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX, + strlen (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX)) == 0 + && (type == NT_GNU_BUILD_ATTRIBUTE_OPEN + || type == NT_GNU_BUILD_ATTRIBUTE_FUNC)) + { + /* There might or might not be a pair of addresses in the desc. */ + if (descsz > 0) + { + printf (" Address Range: "); + + union + { + Elf64_Addr a64[2]; + Elf32_Addr a32[2]; + } addrs; + + size_t addr_size = gelf_fsize (ebl->elf, ELF_T_ADDR, + 2, EV_CURRENT); + if (descsz != addr_size) + printf ("<unknown data>\n"); + else + { + Elf_Data src = + { + .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, + .d_buf = (void *) desc, .d_size = descsz + }; + + Elf_Data dst = + { + .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, + .d_buf = &addrs, .d_size = descsz + }; + + if (gelf_xlatetom (ebl->elf, &dst, &src, + elf_getident (ebl->elf, + NULL)[EI_DATA]) == NULL) + printf ("%s\n", elf_errmsg (-1)); + else + { + if (addr_size == 4) + printf ("%#" PRIx32 " - %#" PRIx32 "\n", + addrs.a32[0], addrs.a32[1]); + else + printf ("%#" PRIx64 " - %#" PRIx64 "\n", + addrs.a64[0], addrs.a64[1]); + } + } + } + + /* Most data actually is inside the name. + https://fedoraproject.org/wiki/Toolchain/Watermark */ + + /* We need at least 2 chars of data to describe the + attribute and value encodings. */ + const char *data = (name + + strlen (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX)); + if (namesz < 2) + { + printf ("<insufficient data>\n"); + return; + } + + printf (" "); + + /* In most cases the value comes right after the encoding bytes. */ + const char *value = &data[2]; + switch (data[1]) + { + case GNU_BUILD_ATTRIBUTE_VERSION: + printf ("VERSION: "); + break; + case GNU_BUILD_ATTRIBUTE_STACK_PROT: + printf ("STACK_PROT: "); + break; + case GNU_BUILD_ATTRIBUTE_RELRO: + printf ("RELRO: "); + break; + case GNU_BUILD_ATTRIBUTE_STACK_SIZE: + printf ("STACK_SIZE: "); + break; + case GNU_BUILD_ATTRIBUTE_TOOL: + printf ("TOOL: "); + break; + case GNU_BUILD_ATTRIBUTE_ABI: + printf ("ABI: "); + break; + case GNU_BUILD_ATTRIBUTE_PIC: + printf ("PIC: "); + break; + case GNU_BUILD_ATTRIBUTE_SHORT_ENUM: + printf ("SHORT_ENUM: "); + break; + case 32 ... 126: + printf ("\"%s\": ", &data[1]); + value += strlen (&data[1]) + 1; + break; + default: + printf ("<unknown>: "); + break; + } + + switch (data[0]) + { + case GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC: + { + /* Any numbers are always in (unsigned) little endian. */ + static const Dwarf dbg + = { .other_byte_order = MY_ELFDATA != ELFDATA2LSB }; + size_t bytes = namesz - (value - name); + uint64_t val; + if (bytes == 1) + val = *(unsigned char *) value; + else if (bytes == 2) + val = read_2ubyte_unaligned (&dbg, value); + else if (bytes == 4) + val = read_4ubyte_unaligned (&dbg, value); + else if (bytes == 8) + val = read_8ubyte_unaligned (&dbg, value); + else + goto unknown; + printf ("%" PRIx64, val); + } + break; + case GNU_BUILD_ATTRIBUTE_TYPE_STRING: + printf ("\"%s\"", value); + break; + case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE: + printf ("TRUE"); + break; + case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE: + printf ("FALSE"); + break; + default: + { + unknown: + printf ("<unknown>"); + } + break; + } + + printf ("\n"); + + return; + } + + /* NT_VERSION doesn't have any info. All data is in the name. */ + if (descsz == 0 && type == NT_VERSION) + return; + + /* Everything else should have the "GNU" owner name. */ + if (strcmp ("GNU", name) != 0) + return; + switch (type) { case NT_GNU_BUILD_ID: @@ -153,8 +312,189 @@ ebl_object_note (Ebl *ebl, const char *name, uint32_t type, (int) descsz, desc); break; + case NT_GNU_PROPERTY_TYPE_0: + if (strcmp (name, "GNU") == 0 && descsz > 0) + { + /* There are at least 2 words. type and datasz. */ + while (descsz >= 8) + { + struct pr_prop + { + GElf_Word pr_type; + GElf_Word pr_datasz; + } prop; + + Elf_Data in = + { + .d_version = EV_CURRENT, + .d_type = ELF_T_WORD, + .d_size = 8, + .d_buf = (void *) desc + }; + Elf_Data out = + { + .d_version = EV_CURRENT, + .d_type = ELF_T_WORD, + .d_size = descsz, + .d_buf = (void *) &prop + }; + + if (gelf_xlatetom (ebl->elf, &out, &in, + elf_getident (ebl->elf, + NULL)[EI_DATA]) == NULL) + { + printf ("%s\n", elf_errmsg (-1)); + return; + } + + desc += 8; + descsz -= 8; + + int elfclass = gelf_getclass (ebl->elf); + char *elfident = elf_getident (ebl->elf, NULL); + GElf_Ehdr ehdr; + gelf_getehdr (ebl->elf, &ehdr); + + /* Prefix. */ + printf (" "); + if (prop.pr_type == GNU_PROPERTY_STACK_SIZE) + { + printf ("STACK_SIZE "); + if (prop.pr_datasz == 4 || prop.pr_datasz == 8) + { + GElf_Addr addr; + in.d_type = ELF_T_ADDR; + out.d_type = ELF_T_ADDR; + in.d_size = prop.pr_datasz; + out.d_size = sizeof (addr); + in.d_buf = (void *) desc; + out.d_buf = (void *) &addr; + + if (gelf_xlatetom (ebl->elf, &out, &in, + elfident[EI_DATA]) == NULL) + { + printf ("%s\n", elf_errmsg (-1)); + return; + } + printf ("%#" PRIx64 "\n", addr); + } + else + printf (" (garbage datasz: %" PRIx32 ")\n", + prop.pr_datasz); + } + else if (prop.pr_type == GNU_PROPERTY_NO_COPY_ON_PROTECTED) + { + printf ("NO_COPY_ON_PROTECTION"); + if (prop.pr_datasz == 0) + printf ("\n"); + else + printf (" (garbage datasz: %" PRIx32 ")\n", + prop.pr_datasz); + } + else if (prop.pr_type >= GNU_PROPERTY_LOPROC + && prop.pr_type <= GNU_PROPERTY_HIPROC + && (ehdr.e_machine == EM_386 + || ehdr.e_machine == EM_X86_64)) + { + printf ("X86 "); + if (prop.pr_type == GNU_PROPERTY_X86_FEATURE_1_AND) + { + printf ("FEATURE_1_AND: "); + + if (prop.pr_datasz == 4) + { + GElf_Word data; + in.d_type = ELF_T_WORD; + out.d_type = ELF_T_WORD; + in.d_size = 4; + out.d_size = 4; + in.d_buf = (void *) desc; + out.d_buf = (void *) &data; + + if (gelf_xlatetom (ebl->elf, &out, &in, + elfident[EI_DATA]) == NULL) + { + printf ("%s\n", elf_errmsg (-1)); + return; + } + printf ("%08" PRIx32 " ", data); + + if ((data & GNU_PROPERTY_X86_FEATURE_1_IBT) + != 0) + { + printf ("IBT"); + data &= ~GNU_PROPERTY_X86_FEATURE_1_IBT; + if (data != 0) + printf (" "); + } + + if ((data & GNU_PROPERTY_X86_FEATURE_1_SHSTK) + != 0) + { + printf ("SHSTK"); + data &= ~GNU_PROPERTY_X86_FEATURE_1_SHSTK; + if (data != 0) + printf (" "); + } + + if (data != 0) + printf ("UNKNOWN"); + } + else + printf ("<bad datasz: %" PRId32 ">", + prop.pr_datasz); + + printf ("\n"); + } + else + { + printf ("%#" PRIx32, prop.pr_type); + if (prop.pr_datasz > 0) + { + printf (" data: "); + size_t i; + for (i = 0; i < prop.pr_datasz - 1; i++) + printf ("%02" PRIx8 " ", (uint8_t) desc[i]); + printf ("%02" PRIx8 "\n", (uint8_t) desc[i]); + } + } + } + else + { + if (prop.pr_type >= GNU_PROPERTY_LOPROC + && prop.pr_type <= GNU_PROPERTY_HIPROC) + printf ("proc_type %#" PRIx32, prop.pr_type); + else if (prop.pr_type >= GNU_PROPERTY_LOUSER + && prop.pr_type <= GNU_PROPERTY_HIUSER) + printf ("app_type %#" PRIx32, prop.pr_type); + else + printf ("unknown_type %#" PRIx32, prop.pr_type); + + if (prop.pr_datasz > 0) + { + printf (" data: "); + size_t i; + for (i = 0; i < prop.pr_datasz - 1; i++) + printf ("%02" PRIx8 " ", (uint8_t) desc[i]); + printf ("%02" PRIx8 "\n", (uint8_t) desc[i]); + } + } + if (elfclass == ELFCLASS32) + { + desc += NOTE_ALIGN4 (prop.pr_datasz); + descsz -= NOTE_ALIGN4 (prop.pr_datasz); + } + else + { + desc += NOTE_ALIGN8 (prop.pr_datasz); + descsz -= NOTE_ALIGN8 (prop.pr_datasz); + } + } + } + break; + case NT_GNU_ABI_TAG: - if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0) + if (descsz >= 8 && descsz % 4 == 0) { Elf_Data in = { diff --git a/libebl/eblobjnotetypename.c b/libebl/eblobjnotetypename.c index db040d29..6b803cef 100644 --- a/libebl/eblobjnotetypename.c +++ b/libebl/eblobjnotetypename.c @@ -1,5 +1,5 @@ /* Return note type name. - Copyright (C) 2002, 2007, 2009, 2011, 2016 Red Hat, Inc. + Copyright (C) 2002, 2007, 2009, 2011, 2016, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -39,6 +39,7 @@ const char * ebl_object_note_type_name (Ebl *ebl, const char *name, uint32_t type, + GElf_Word descsz, char *buf, size_t len) { const char *res = ebl->object_note_type_name (name, type, buf, len); @@ -78,19 +79,46 @@ ebl_object_note_type_name (Ebl *ebl, const char *name, uint32_t type, } } + if (strncmp (name, ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX, + strlen (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX)) == 0) + { + /* GNU Build Attribute notes (ab)use the owner name to store + most of their data. Don't decode everything here. Just + the type.*/ + char *t = buf; + const char *gba = "GNU Build Attribute"; + int w = snprintf (t, len, "%s ", gba); + t += w; + len -= w; + if (type == NT_GNU_BUILD_ATTRIBUTE_OPEN) + snprintf (t, len, "OPEN"); + else if (type == NT_GNU_BUILD_ATTRIBUTE_FUNC) + snprintf (t, len, "FUNC"); + else + snprintf (t, len, "%x", type); + + return buf; + } + if (strcmp (name, "GNU") != 0) { + /* NT_VERSION is special, all data is in the name. */ + if (descsz == 0 && type == NT_VERSION) + return "VERSION"; + snprintf (buf, len, "%s: %" PRIu32, gettext ("<unknown>"), type); return buf; } + /* And finally all the "GNU" note types. */ static const char *knowntypes[] = { #define KNOWNSTYPE(name) [NT_##name] = #name - KNOWNSTYPE (VERSION), + KNOWNSTYPE (GNU_ABI_TAG), KNOWNSTYPE (GNU_HWCAP), KNOWNSTYPE (GNU_BUILD_ID), KNOWNSTYPE (GNU_GOLD_VERSION), + KNOWNSTYPE (GNU_PROPERTY_TYPE_0), }; /* Handle standard names. */ diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c index 75a60fff..9bd1e860 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -144,7 +144,7 @@ static const struct static const char *default_reloc_type_name (int ignore, char *buf, size_t len); static bool default_reloc_type_check (int ignore); static bool default_reloc_valid_use (Elf *elf, int ignore); -static Elf_Type default_reloc_simple_type (Ebl *ebl, int ignore); +static Elf_Type default_reloc_simple_type (Ebl *ebl, int ignore, int *addsub); static bool default_gotpc_reloc_check (Elf *elf, int ignore); static const char *default_segment_type_name (int ignore, char *buf, size_t len); @@ -456,7 +456,8 @@ default_reloc_valid_use (Elf *elf __attribute__ ((unused)), static Elf_Type default_reloc_simple_type (Ebl *eh __attribute__ ((unused)), - int ignore __attribute__ ((unused))) + int ignore __attribute__ ((unused)), + int *addsub __attribute__ ((unused))) { return ELF_T_NUM; } diff --git a/libebl/eblrelocsimpletype.c b/libebl/eblrelocsimpletype.c index 9bd29285..12292804 100644 --- a/libebl/eblrelocsimpletype.c +++ b/libebl/eblrelocsimpletype.c @@ -34,7 +34,7 @@ Elf_Type -ebl_reloc_simple_type (Ebl *ebl, int reloc) +ebl_reloc_simple_type (Ebl *ebl, int reloc, int *addsub) { - return ebl != NULL ? ebl->reloc_simple_type (ebl, reloc) : ELF_T_NUM; + return ebl != NULL ? ebl->reloc_simple_type (ebl, reloc, addsub) : ELF_T_NUM; } diff --git a/libebl/libebl.h b/libebl/libebl.h index 5abc02d8..ca9b9fec 100644 --- a/libebl/libebl.h +++ b/libebl/libebl.h @@ -99,8 +99,10 @@ extern bool ebl_reloc_type_check (Ebl *ebl, int reloc); extern bool ebl_reloc_valid_use (Ebl *ebl, int reloc); /* Check if relocation type is for simple absolute relocations. - Return ELF_T_{BYTE,HALF,SWORD,SXWORD} for a simple type, else ELF_T_NUM. */ -extern Elf_Type ebl_reloc_simple_type (Ebl *ebl, int reloc); + Return ELF_T_{BYTE,HALF,SWORD,SXWORD} for a simple type, else ELF_T_NUM. + If the relocation type is an ADD or SUB relocation, set *ADDSUB to 1 or -1, + resp. */ +extern Elf_Type ebl_reloc_simple_type (Ebl *ebl, int reloc, int *addsub); /* Return true if the symbol type is that referencing the GOT. E.g., R_386_GOTPC. */ @@ -173,12 +175,12 @@ extern const char *ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf, /* Return name of the note section type for an object file. */ extern const char *ebl_object_note_type_name (Ebl *ebl, const char *name, - uint32_t type, char *buf, - size_t len); + uint32_t type, GElf_Word descsz, + char *buf, size_t len); /* Print information about object note if available. */ -extern void ebl_object_note (Ebl *ebl, const char *name, uint32_t type, - uint32_t descsz, const char *desc); +extern void ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, + uint32_t type, uint32_t descsz, const char *desc); /* Check whether an attribute in a .gnu_attributes section is recognized. Fills in *TAG_NAME with the name for this tag. diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 5c3c0b27..e026fbe6 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -21,6 +21,66 @@ * Makefile.am: Link libelf agaist libgnu.a if requested. +2018-11-16 Mark Wielaard <mark@klomp.org> + + * libebl.h (__elf32_msize): Mark with const attribute. + (__elf64_msize): Likewise. + +2018-11-13 Mark Wielaard <mark@klomp.org> + + * elf_getdata.c (__libelf_set_rawdata_wrlock): Explicitly set the + alignment of SHF_COMPRESSED data to the alignment of ELF_T_CHDR. + * elf_compress.c (elf_compress): After compression set sh_addralign + to the alignment of ELF_T_CHDR. + +2018-11-09 Mark Wielaard <mark@klomp.org> + + * elf_compress_gnu.c (elf_compress_gnu): Use elf_getdata. + +2018-11-12 Mark Wielaard <mark@klomp.org> + + * elf-knowledge.c (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX): New define. + (NT_GNU_BUILD_ATTRIBUTE_{OPEN,FUNC}): Likewise. + (GNU_BUILD_ATTRIBUTE_TYPE_{NUMERIC,STRING,BOOL_TRUE,BOOL_FALSE}): + Likewise. + (GNU_BUILD_ATTRIBUTE_{VERSION,STACK_PROT,RELRO,STACK_SIZE,TOOL,ABI, + PIC,SHORT_ENUM}): Likewise. + +2018-11-09 Mark Wielaard <mark@klomp.org> + + * elf_compress.c (__libelf_reset_rawdata): Make rawdata change + explicit by calling __libelf_set_data_list. + * elf_getdata.c (convert_data): Don't convert if type is ELF_T_BYTE + even if endianness is different. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * libelf.h (Elf_Type): Add ELF_T_NHDR8. + * libelfP.h (__libelf_data_type): Add align argument. + (NOTE_ALIGN): Split into... + (NOTE_ALIGN4): ... and ... + (NOTE_ALIGN8): this. + * elf32_xlatetom.c (xlatetom): Recognize both ELF_T_NHDR and + ELF_T_NHDR8. + * elf_compress.c (elf_compress): Pass zdata_align to + __libelf_data_type. + * elf_compress_gnu.c (elf_compress_gnu): Pass sh_addralign to + __libelf_data_type. + * elf_getdata.c (shtype_map): Add ELF_T_NHDR8. + (__libelf_data_type): Take align as extra argument, use it to + determine Elf_Type. + (__libelf_set_rawdata_wrlock): Recognize ELF_T_NHDR8. Pass align to + __libelf_data_type. + * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_NHDR8. + * gelf_getnote.c (gelf_getnote): Use Elf_Type of Elf_Data to calculate + padding. + * gelf_xlate.c (__elf_xfctstom): Set ELF_T_NHDR to elf_cvt_note4, + add ELF_T_NHDR8. + * note_xlate.h (elf_cvt_note): Take nhdr8 argument and use it to + determine padding. + (elf_cvt_note4): New function. + (elf_cvt_note8): Likewise. + 2018-09-13 Mark Wielaard <mark@klomp.org> * elf32_updatefile.c (updatemmap): Use shnum, not ehdr->e_shnum. diff --git a/libelf/elf-knowledge.h b/libelf/elf-knowledge.h index 64f58878..9d3be0ff 100644 --- a/libelf/elf-knowledge.h +++ b/libelf/elf-knowledge.h @@ -77,4 +77,25 @@ || ((Ehdr)->e_machine == EM_S390 \ && (Ehdr)->e_ident[EI_CLASS] == ELFCLASS64) ? 8 : 4) +/* GNU Annobin notes are not fully standardized and abuses the owner name. */ + +#define ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX "GA" + +#define NT_GNU_BUILD_ATTRIBUTE_OPEN 0x100 +#define NT_GNU_BUILD_ATTRIBUTE_FUNC 0x101 + +#define GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC '*' +#define GNU_BUILD_ATTRIBUTE_TYPE_STRING '$' +#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE '+' +#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE '!' + +#define GNU_BUILD_ATTRIBUTE_VERSION 1 +#define GNU_BUILD_ATTRIBUTE_STACK_PROT 2 +#define GNU_BUILD_ATTRIBUTE_RELRO 3 +#define GNU_BUILD_ATTRIBUTE_STACK_SIZE 4 +#define GNU_BUILD_ATTRIBUTE_TOOL 5 +#define GNU_BUILD_ATTRIBUTE_ABI 6 +#define GNU_BUILD_ATTRIBUTE_PIC 7 +#define GNU_BUILD_ATTRIBUTE_SHORT_ENUM 8 + #endif /* elf-knowledge.h */ diff --git a/libelf/elf32_xlatetom.c b/libelf/elf32_xlatetom.c index 13cd485d..3b94cac7 100644 --- a/libelf/elf32_xlatetom.c +++ b/libelf/elf32_xlatetom.c @@ -60,7 +60,7 @@ elfw2(LIBELFBITS, xlatetom) (Elf_Data *dest, const Elf_Data *src, /* We shouldn't require integer number of records when processing notes. Payload bytes follow the header immediately, it's not an array of records as is the case otherwise. */ - if (src->d_type != ELF_T_NHDR + if (src->d_type != ELF_T_NHDR && src->d_type != ELF_T_NHDR8 && src->d_size % recsize != 0) { __libelf_seterrno (ELF_E_INVALID_DATA); diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c index 711be591..be9eeaba 100644 --- a/libelf/elf_compress.c +++ b/libelf/elf_compress.c @@ -326,6 +326,12 @@ __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align, scn->rawdata_base = buf; scn->flags |= ELF_F_MALLOCED; + + /* Pretend we (tried to) read the data from the file and setup the + data (might have to convert the Chdr to native format). */ + scn->data_read = 1; + scn->flags |= ELF_F_FILEDATA; + __libelf_set_data_list_rdlock (scn, 1); } int @@ -449,14 +455,14 @@ elf_compress (Elf_Scn *scn, int type, unsigned int flags) { Elf32_Shdr *shdr = elf32_getshdr (scn); shdr->sh_size = new_size; - shdr->sh_addralign = 1; + shdr->sh_addralign = __libelf_type_align (ELFCLASS32, ELF_T_CHDR); shdr->sh_flags |= SHF_COMPRESSED; } else { Elf64_Shdr *shdr = elf64_getshdr (scn); shdr->sh_size = new_size; - shdr->sh_addralign = 1; + shdr->sh_addralign = __libelf_type_align (ELFCLASS64, ELF_T_CHDR); shdr->sh_flags |= SHF_COMPRESSED; } @@ -513,7 +519,8 @@ elf_compress (Elf_Scn *scn, int type, unsigned int flags) __libelf_reset_rawdata (scn, scn->zdata_base, scn->zdata_size, scn->zdata_align, - __libelf_data_type (elf, sh_type)); + __libelf_data_type (elf, sh_type, + scn->zdata_align)); return 1; } diff --git a/libelf/elf_compress_gnu.c b/libelf/elf_compress_gnu.c index dfa7c571..1ecd6a08 100644 --- a/libelf/elf_compress_gnu.c +++ b/libelf/elf_compress_gnu.c @@ -144,9 +144,10 @@ elf_compress_gnu (Elf_Scn *scn, int inflate, unsigned int flags) else if (inflate == 0) { /* In theory the user could have constucted a compressed section - by hand. But we always just take the rawdata directly and - decompress that. */ - Elf_Data *data = elf_rawdata (scn, NULL); + by hand. And in practice they do. For example when copying + a section from one file to another using elf_newdata. So we + have to use elf_getdata (not elf_rawdata). */ + Elf_Data *data = elf_getdata (scn, NULL); if (data == NULL) return -1; @@ -196,7 +197,7 @@ elf_compress_gnu (Elf_Scn *scn, int inflate, unsigned int flags) } __libelf_reset_rawdata (scn, buf_out, size, sh_addralign, - __libelf_data_type (elf, sh_type)); + __libelf_data_type (elf, sh_type, sh_addralign)); scn->zdata_base = buf_out; diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c index 278dfa8f..639a798e 100644 --- a/libelf/elf_getdata.c +++ b/libelf/elf_getdata.c @@ -65,7 +65,7 @@ static const Elf_Type shtype_map[EV_NUM - 1][TYPEIDX (SHT_HISUNW) + 1] = [SHT_PREINIT_ARRAY] = ELF_T_ADDR, [SHT_GROUP] = ELF_T_WORD, [SHT_SYMTAB_SHNDX] = ELF_T_WORD, - [SHT_NOTE] = ELF_T_NHDR, + [SHT_NOTE] = ELF_T_NHDR, /* Need alignment to guess ELF_T_NHDR8. */ [TYPEIDX (SHT_GNU_verdef)] = ELF_T_VDEF, [TYPEIDX (SHT_GNU_verneed)] = ELF_T_VNEED, [TYPEIDX (SHT_GNU_versym)] = ELF_T_HALF, @@ -106,6 +106,7 @@ const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] [ELF_T_GNUHASH] = __alignof__ (Elf32_Word), \ [ELF_T_AUXV] = __alignof__ (ElfW2(Bits,auxv_t)), \ [ELF_T_CHDR] = __alignof__ (ElfW2(Bits,Chdr)), \ + [ELF_T_NHDR8] = 8 /* Special case for GNU Property note. */ \ } [EV_CURRENT - 1] = { @@ -118,7 +119,7 @@ const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] Elf_Type internal_function -__libelf_data_type (Elf *elf, int sh_type) +__libelf_data_type (Elf *elf, int sh_type, GElf_Xword align) { /* Some broken ELF ABI for 64-bit machines use the wrong hash table entry size. See elf-knowledge.h for more information. */ @@ -129,7 +130,13 @@ __libelf_data_type (Elf *elf, int sh_type) return (SH_ENTSIZE_HASH (ehdr) == 4 ? ELF_T_WORD : ELF_T_XWORD); } else - return shtype_map[LIBELF_EV_IDX][TYPEIDX (sh_type)]; + { + Elf_Type t = shtype_map[LIBELF_EV_IDX][TYPEIDX (sh_type)]; + /* Special case for GNU Property notes. */ + if (t == ELF_T_NHDR && align == 8) + t = ELF_T_NHDR8; + return t; + } } /* Convert the data in the current section. */ @@ -139,7 +146,8 @@ convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass, { const size_t align = __libelf_type_align (eclass, type); - if (data == MY_ELFDATA) + /* Do we need to convert the data and/or adjust for alignment? */ + if (data == MY_ELFDATA || type == ELF_T_BYTE) { if (((((size_t) (char *) scn->rawdata_base)) & (align - 1)) == 0) /* No need to copy, we can use the raw data. */ @@ -260,9 +268,15 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) /* First a test whether the section is valid at all. */ size_t entsize; - /* Compressed data has a header, but then compressed data. */ + /* Compressed data has a header, but then compressed data. + Make sure to set the alignment of the header explicitly, + don't trust the file alignment for the section, it is + often wrong. */ if ((flags & SHF_COMPRESSED) != 0) - entsize = 1; + { + entsize = 1; + align = __libelf_type_align (elf->class, ELF_T_CHDR); + } else if (type == SHT_HASH) { GElf_Ehdr ehdr_mem; @@ -272,7 +286,9 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) else { Elf_Type t = shtype_map[LIBELF_EV_IDX][TYPEIDX (type)]; - if (t == ELF_T_VDEF || t == ELF_T_NHDR + if (t == ELF_T_NHDR && align == 8) + t = ELF_T_NHDR8; + if (t == ELF_T_VDEF || t == ELF_T_NHDR || t == ELF_T_NHDR8 || (t == ELF_T_GNUHASH && elf->class == ELFCLASS64)) entsize = 1; else @@ -357,7 +373,7 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) if ((flags & SHF_COMPRESSED) != 0) scn->rawdata.d.d_type = ELF_T_CHDR; else - scn->rawdata.d.d_type = __libelf_data_type (elf, type); + scn->rawdata.d.d_type = __libelf_data_type (elf, type, align); scn->rawdata.d.d_off = 0; /* Make sure the alignment makes sense. d_align should be aligned both diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c index 0c509265..d04ec5d5 100644 --- a/libelf/gelf_fsize.c +++ b/libelf/gelf_fsize.c @@ -64,6 +64,8 @@ const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] = [ELF_T_VNEED] = sizeof (ElfW2(LIBELFBITS, Ext_Verneed)), \ [ELF_T_VNAUX] = sizeof (ElfW2(LIBELFBITS, Ext_Vernaux)), \ [ELF_T_NHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)), \ + /* Note the header size is the same, but padding is different. */ \ + [ELF_T_NHDR8] = sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)), \ [ELF_T_SYMINFO] = sizeof (ElfW2(LIBELFBITS, Ext_Syminfo)), \ [ELF_T_MOVE] = sizeof (ElfW2(LIBELFBITS, Ext_Move)), \ [ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \ diff --git a/libelf/gelf_getnote.c b/libelf/gelf_getnote.c index c75eddab..6d33b355 100644 --- a/libelf/gelf_getnote.c +++ b/libelf/gelf_getnote.c @@ -1,5 +1,5 @@ /* Get note information at the supplied offset. - Copyright (C) 2007, 2014, 2015 Red Hat, Inc. + Copyright (C) 2007, 2014, 2015, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -43,7 +43,7 @@ gelf_getnote (Elf_Data *data, size_t offset, GElf_Nhdr *result, if (data == NULL) return 0; - if (unlikely (data->d_type != ELF_T_NHDR)) + if (unlikely (data->d_type != ELF_T_NHDR && data->d_type != ELF_T_NHDR8)) { __libelf_seterrno (ELF_E_INVALID_HANDLE); return 0; @@ -69,27 +69,42 @@ gelf_getnote (Elf_Data *data, size_t offset, GElf_Nhdr *result, const GElf_Nhdr *n = data->d_buf + offset; offset += sizeof *n; - /* Include padding. Check below for overflow. */ - GElf_Word namesz = NOTE_ALIGN (n->n_namesz); - GElf_Word descsz = NOTE_ALIGN (n->n_descsz); - - if (unlikely (offset > data->d_size - || data->d_size - offset < namesz - || (namesz == 0 && n->n_namesz != 0))) + if (offset > data->d_size) offset = 0; else { + /* This is slightly tricky, offset is guaranteed to be 4 + byte aligned, which is what we need for the name_offset. + And normally desc_offset is also 4 byte aligned, but not + for GNU Property notes, then it should be 8. So align + the offset, after adding the namesz, and include padding + in descsz to get to the end. */ *name_offset = offset; - offset += namesz; - if (unlikely (offset > data->d_size - || data->d_size - offset < descsz - || (descsz == 0 && n->n_descsz != 0))) + offset += n->n_namesz; + if (offset > data->d_size) offset = 0; else { - *desc_offset = offset; - offset += descsz; - *result = *n; + /* Include padding. Check below for overflow. */ + GElf_Word descsz = (data->d_type == ELF_T_NHDR8 + ? NOTE_ALIGN8 (n->n_descsz) + : NOTE_ALIGN4 (n->n_descsz)); + + if (data->d_type == ELF_T_NHDR8) + offset = NOTE_ALIGN8 (offset); + else + offset = NOTE_ALIGN4 (offset); + + if (unlikely (offset > data->d_size + || data->d_size - offset < descsz + || (descsz == 0 && n->n_descsz != 0))) + offset = 0; + else + { + *desc_offset = offset; + offset += descsz; + *result = *n; + } } } } diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c index 479f1436..b5d6ef3d 100644 --- a/libelf/gelf_xlate.c +++ b/libelf/gelf_xlate.c @@ -195,7 +195,8 @@ const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] [ELF_T_VDAUX] = elf_cvt_Verdef, \ [ELF_T_VNEED] = elf_cvt_Verneed, \ [ELF_T_VNAUX] = elf_cvt_Verneed, \ - [ELF_T_NHDR] = elf_cvt_note, \ + [ELF_T_NHDR] = elf_cvt_note4, \ + [ELF_T_NHDR8] = elf_cvt_note8, \ [ELF_T_SYMINFO] = ElfW2(Bits, cvt_Syminfo), \ [ELF_T_MOVE] = ElfW2(Bits, cvt_Move), \ [ELF_T_LIB] = ElfW2(Bits, cvt_Lib), \ diff --git a/libelf/libelf.h b/libelf/libelf.h index d11358cc..1ff11c95 100644 --- a/libelf/libelf.h +++ b/libelf/libelf.h @@ -117,6 +117,8 @@ typedef enum ELF_T_GNUHASH, /* GNU-style hash section. */ ELF_T_AUXV, /* Elf32_auxv_t, Elf64_auxv_t, ... */ ELF_T_CHDR, /* Compressed, Elf32_Chdr, Elf64_Chdr, ... */ + ELF_T_NHDR8, /* Special GNU Properties note. Same as Nhdr, + except padding. */ /* Keep this the last entry. */ ELF_T_NUM } Elf_Type; diff --git a/libelf/libelfP.h b/libelf/libelfP.h index ed216c8c..9f3e8e9d 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -452,7 +452,8 @@ extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_ /* Given an Elf handle and a section type returns the Elf_Data d_type. Should not be called when SHF_COMPRESSED is set, the d_type should be ELF_T_BYTE. */ -extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; +extern Elf_Type __libelf_data_type (Elf *elf, int sh_type, GElf_Xword align) + internal_function; /* The libelf API does not have such a function but it is still useful. Get the memory size for the given type. @@ -460,9 +461,9 @@ extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; These functions cannot be marked internal since they are aliases of the export elfXX_fsize functions.*/ extern size_t __elf32_msize (Elf_Type __type, size_t __count, - unsigned int __version); + unsigned int __version) __const_attribute__; extern size_t __elf64_msize (Elf_Type __type, size_t __count, - unsigned int __version); + unsigned int __version) __const_attribute__; /* Create Elf descriptor from memory image. */ @@ -624,8 +625,13 @@ extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, } \ } while (0) -/* Align offset to 4 bytes as needed for note name and descriptor data. */ -#define NOTE_ALIGN(n) (((n) + 3) & -4U) +/* Align offset to 4 bytes as needed for note name and descriptor data. + This is almost always used, except for GNU Property notes, which use + 8 byte padding... */ +#define NOTE_ALIGN4(n) (((n) + 3) & -4U) + +/* Special note padding rule for GNU Property notes. */ +#define NOTE_ALIGN8(n) (((n) + 7) & -8U) /* Convenience macro. */ #define INVALID_NDX(ndx, type, data) \ diff --git a/libelf/note_xlate.h b/libelf/note_xlate.h index 62c6f63d..9bdc3e2c 100644 --- a/libelf/note_xlate.h +++ b/libelf/note_xlate.h @@ -1,5 +1,5 @@ /* Conversion functions for notes. - Copyright (C) 2007, 2009, 2014 Red Hat, Inc. + Copyright (C) 2007, 2009, 2014, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -27,38 +27,60 @@ not, see <http://www.gnu.org/licenses/>. */ static void -elf_cvt_note (void *dest, const void *src, size_t len, int encode) +elf_cvt_note (void *dest, const void *src, size_t len, int encode, + bool nhdr8) { + /* Note that the header is always the same size, but the padding + differs for GNU Property notes. */ assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr)); while (len >= sizeof (Elf32_Nhdr)) { + /* Convert the header. */ (1 ? Elf32_cvt_Nhdr : Elf64_cvt_Nhdr) (dest, src, sizeof (Elf32_Nhdr), encode); const Elf32_Nhdr *n = encode ? src : dest; - Elf32_Word namesz = NOTE_ALIGN (n->n_namesz); - Elf32_Word descsz = NOTE_ALIGN (n->n_descsz); - len -= sizeof *n; - src += sizeof *n; - dest += sizeof *n; + size_t note_len = sizeof *n; - if (namesz > len) + /* desc needs to be aligned. */ + note_len += n->n_namesz; + note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len); + if (note_len > len || note_len < 8) break; - len -= namesz; - if (descsz > len) + + /* data as a whole needs to be aligned. */ + note_len += n->n_descsz; + note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len); + if (note_len > len || note_len < 8) break; - len -= descsz; + /* Copy or skip the note data. */ + size_t note_data_len = note_len - sizeof *n; + src += sizeof *n; + dest += sizeof *n; if (src != dest) - memcpy (dest, src, namesz + descsz); + memcpy (dest, src, note_data_len); - src += namesz + descsz; - dest += namesz + descsz; + src += note_data_len; + dest += note_data_len; + len -= note_len; } - /* Copy opver any leftover data unconcerted. Probably part of + /* Copy over any leftover data unconverted. Probably part of truncated name/desc data. */ if (unlikely (len > 0) && src != dest) memcpy (dest, src, len); } + +static void +elf_cvt_note4 (void *dest, const void *src, size_t len, int encode) +{ + elf_cvt_note (dest, src, len, encode, false); +} + +static void +elf_cvt_note8 (void *dest, const void *src, size_t len, int encode) +{ + elf_cvt_note (dest, src, len, encode, true); +} @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2018-09-14 12:05+0200\n" +"POT-Creation-Date: 2018-11-16 12:42+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" @@ -54,8 +54,8 @@ msgstr "" "GARANTIE,\n" "auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n" -#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3409 -#: src/readelf.c:11212 src/unstrip.c:2256 src/unstrip.c:2462 +#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414 +#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr verfügbar" @@ -298,7 +298,7 @@ msgstr "unbekannter Typ" msgid ".debug_addr section missing" msgstr ".debug_line Sektion fehlt" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2403 +#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493 msgid "Input selection options:" msgstr "Eingabeauswahloptionen:" @@ -530,8 +530,8 @@ msgstr "Ungültige ELF Datei" msgid "No backend" msgstr "Kein Backend" -#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:76 -#: libebl/eblobjnotetypename.c:83 libebl/eblobjnotetypename.c:102 +#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77 +#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 #: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:79 msgid "<unknown>" @@ -542,58 +542,58 @@ msgstr "<Unbekannt>" msgid "<unknown>: %#<PRIx64>" msgstr "<Unbekannt>: %#<PRIx64>" -#: libebl/eblobjnote.c:53 +#: libebl/eblobjnote.c:58 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "unbekannte Version" -#: libebl/eblobjnote.c:71 +#: libebl/eblobjnote.c:76 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "ungültiger Datei-Deskriptor" -#: libebl/eblobjnote.c:121 +#: libebl/eblobjnote.c:126 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:123 +#: libebl/eblobjnote.c:128 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:125 +#: libebl/eblobjnote.c:130 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:127 +#: libebl/eblobjnote.c:132 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:129 +#: libebl/eblobjnote.c:134 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:131 +#: libebl/eblobjnote.c:136 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:141 +#: libebl/eblobjnote.c:300 #, c-format msgid " Build ID: " msgstr " Build ID: " #. A non-null terminated version string. -#: libebl/eblobjnote.c:152 +#: libebl/eblobjnote.c:311 #, c-format msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:213 +#: libebl/eblobjnote.c:553 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %s, ABI: " @@ -627,7 +627,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:87 src/readelf.c:6123 +#: libelf/elf_error.c:87 src/readelf.c:6129 #, c-format msgid "invalid encoding" msgstr "ungültige Kodierung" @@ -715,8 +715,8 @@ msgstr "data/scn Unterschied" msgid "invalid section header" msgstr "ungültiger Abschnitts-Header" -#: libelf/elf_error.c:191 src/readelf.c:9758 src/readelf.c:10329 -#: src/readelf.c:10430 src/readelf.c:10611 +#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375 +#: src/readelf.c:10476 src/readelf.c:10658 #, c-format msgid "invalid data" msgstr "Ungültige Daten" @@ -1048,12 +1048,12 @@ msgstr "" msgid "no entry %s in archive\n" msgstr "Kein Eintrag %s in Archiv\n" -#: src/ar.c:472 src/ar.c:917 src/ar.c:1121 +#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 #, c-format msgid "cannot create hash table" msgstr "Konnte Hash-Tabelle nicht erstellen" -#: src/ar.c:479 src/ar.c:924 src/ar.c:1130 +#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 #, c-format msgid "cannot insert into hash table" msgstr "Konnte nicht in Hash-Tabelle einfügen" @@ -1063,97 +1063,97 @@ msgstr "Konnte nicht in Hash-Tabelle einfügen" msgid "cannot stat '%s'" msgstr "" -#: src/ar.c:583 +#: src/ar.c:589 #, c-format msgid "cannot read content of %s: %s" msgstr "Konnte Inhalt von %s: %s nicht lesen" -#: src/ar.c:626 +#: src/ar.c:632 #, c-format msgid "cannot open %.*s" msgstr "Konnte %.*s nicht öffnen" -#: src/ar.c:648 +#: src/ar.c:654 #, c-format msgid "failed to write %s" msgstr "Konnte %s nicht schreiben" -#: src/ar.c:660 +#: src/ar.c:666 #, c-format msgid "cannot change mode of %s" msgstr "" -#: src/ar.c:676 +#: src/ar.c:682 #, c-format msgid "cannot change modification time of %s" msgstr "Konnte Bearbeitungszeit von %s nicht ändern" -#: src/ar.c:722 +#: src/ar.c:728 #, c-format msgid "cannot rename temporary file to %.*s" msgstr "Konnte temporäre Datei nicht in %.*s umbenennen" -#: src/ar.c:758 src/ar.c:1009 src/ar.c:1410 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "neue Datei konnte nicht angelegt werden" -#: src/ar.c:1212 +#: src/ar.c:1218 #, c-format msgid "position member %s not found" msgstr "" -#: src/ar.c:1222 +#: src/ar.c:1228 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: Kein Eintrag %s in dem Archiv!\n" -#: src/ar.c:1251 src/objdump.c:241 +#: src/ar.c:1257 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "Konnte %s nicht öffnen" -#: src/ar.c:1256 +#: src/ar.c:1262 #, c-format msgid "cannot stat %s" msgstr "" -#: src/ar.c:1262 +#: src/ar.c:1268 #, c-format msgid "%s is no regular file" msgstr "%s ist keine reguläre Datei" -#: src/ar.c:1275 +#: src/ar.c:1281 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "" -#: src/ar.c:1295 +#: src/ar.c:1301 #, c-format msgid "cannot read %s: %s" msgstr "Konnte %s: %s nicht lesen" -#: src/ar.c:1470 +#: src/ar.c:1476 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1476 +#: src/ar.c:1482 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1482 +#: src/ar.c:1488 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1488 +#: src/ar.c:1494 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/ar.c:1494 +#: src/ar.c:1500 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "Konnte %s nicht öffnen" @@ -1374,8 +1374,8 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "" #: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141 -#: src/size.c:272 src/strings.c:185 src/strip.c:517 src/strip.c:554 -#: src/unstrip.c:2052 src/unstrip.c:2081 +#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021 +#: src/unstrip.c:2142 src/unstrip.c:2171 #, c-format msgid "cannot open '%s'" msgstr "'%s' kann nicht geöffnet werden" @@ -1390,7 +1390,7 @@ msgstr "" msgid "cannot create EBL descriptor for '%s'" msgstr "" -#: src/elfcmp.c:761 src/findtextrel.c:393 +#: src/elfcmp.c:761 src/findtextrel.c:394 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "" @@ -1405,7 +1405,7 @@ msgstr "" msgid "cannot get relocation: %s" msgstr "" -#: src/elfcompress.c:115 src/strip.c:296 src/unstrip.c:121 +#: src/elfcompress.c:115 src/strip.c:308 src/unstrip.c:121 #, c-format msgid "-o option specified twice" msgstr "" @@ -1458,7 +1458,7 @@ msgid "" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1324 src/strip.c:90 +#: src/elfcompress.c:1324 src/strip.c:93 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "" @@ -1673,7 +1673,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1494 src/elflint.c:1545 src/elflint.c:1651 #: src/elflint.c:1987 src/elflint.c:2313 src/elflint.c:2932 src/elflint.c:3095 -#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4401 +#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4431 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "" @@ -3027,194 +3027,197 @@ msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" msgstr "" -#: src/elflint.c:4344 +#: src/elflint.c:4370 #, c-format -msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n" +msgid "" +"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " +"offset %zu\n" msgstr "" -#: src/elflint.c:4348 +#: src/elflint.c:4375 #, c-format msgid "" -"section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n" +"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " +"'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4365 +#: src/elflint.c:4394 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4384 +#: src/elflint.c:4414 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4387 +#: src/elflint.c:4417 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4408 +#: src/elflint.c:4438 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4415 +#: src/elflint.c:4445 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4418 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4436 +#: src/elflint.c:4466 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4451 +#: src/elflint.c:4481 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4460 +#: src/elflint.c:4490 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" -#: src/elflint.c:4471 +#: src/elflint.c:4501 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4479 +#: src/elflint.c:4509 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4486 +#: src/elflint.c:4516 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4500 +#: src/elflint.c:4530 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4503 +#: src/elflint.c:4533 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4513 +#: src/elflint.c:4543 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4534 +#: src/elflint.c:4564 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4545 +#: src/elflint.c:4575 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4552 +#: src/elflint.c:4582 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4561 src/elflint.c:4584 +#: src/elflint.c:4591 src/elflint.c:4614 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4590 +#: src/elflint.c:4620 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4615 +#: src/elflint.c:4647 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4618 +#: src/elflint.c:4650 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4631 +#: src/elflint.c:4663 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4639 +#: src/elflint.c:4671 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4642 +#: src/elflint.c:4674 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4646 +#: src/elflint.c:4678 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4649 +#: src/elflint.c:4681 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4654 +#: src/elflint.c:4686 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4657 +#: src/elflint.c:4689 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4668 +#: src/elflint.c:4700 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4675 +#: src/elflint.c:4707 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4678 +#: src/elflint.c:4710 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4691 +#: src/elflint.c:4723 #, 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:4725 +#: src/elflint.c:4757 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4751 +#: src/elflint.c:4783 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3238,7 +3241,7 @@ msgstr "" #. Strings for arguments in help texts. #: src/findtextrel.c:74 src/nm.c:108 src/objdump.c:71 src/size.c:80 -#: src/strings.c:87 src/strip.c:98 +#: src/strings.c:87 src/strip.c:101 msgid "[FILE...]" msgstr "" @@ -3257,73 +3260,73 @@ msgstr "" msgid "getting get section header of section %zu: %s" msgstr "" -#: src/findtextrel.c:276 +#: src/findtextrel.c:277 #, c-format msgid "cannot read dynamic section: %s" msgstr "" -#: src/findtextrel.c:297 +#: src/findtextrel.c:298 #, c-format msgid "no text relocations reported in '%s'" msgstr "" -#: src/findtextrel.c:309 +#: src/findtextrel.c:310 #, c-format msgid "while reading ELF file" msgstr "" -#: src/findtextrel.c:313 +#: src/findtextrel.c:314 #, fuzzy, c-format msgid "cannot get program header count: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/findtextrel.c:324 src/findtextrel.c:341 +#: src/findtextrel.c:325 src/findtextrel.c:342 #, fuzzy, c-format msgid "cannot get program header index at offset %zd: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/findtextrel.c:405 +#: src/findtextrel.c:406 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" msgstr "" -#: src/findtextrel.c:425 src/findtextrel.c:448 +#: src/findtextrel.c:427 src/findtextrel.c:450 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" msgstr "" -#: src/findtextrel.c:514 +#: src/findtextrel.c:516 #, c-format msgid "%s not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:567 +#: src/findtextrel.c:570 #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:574 src/findtextrel.c:594 +#: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" "fPIC\n" msgstr "" -#: src/findtextrel.c:582 +#: src/findtextrel.c:585 #, c-format msgid "" "either the file containing the function '%s' or the file containing the " "function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:602 +#: src/findtextrel.c:605 #, c-format msgid "" "a relocation modifies memory at offset %llu in a write-protected segment\n" msgstr "" -#: src/nm.c:66 src/strip.c:69 +#: src/nm.c:66 src/strip.c:70 msgid "Output selection:" msgstr "" @@ -3390,7 +3393,7 @@ msgstr "Kennzeichne schwache Symbole" msgid "Print size of defined symbols" msgstr "Zeige Grösse der definierten Symbole" -#: src/nm.c:91 src/size.c:68 src/strip.c:74 src/unstrip.c:73 +#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:73 msgid "Output options:" msgstr "Ausgabeoptionen:" @@ -3420,18 +3423,18 @@ msgstr "" msgid "Output formatting" msgstr "Ausgabeformat:" -#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:130 +#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: INTERNER FEHLER %d (%s-%s): %s" #: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308 -#: src/strip.c:2505 +#: src/strip.c:2747 #, c-format msgid "while closing '%s'" msgstr "beim Schliessen von '%s'" -#: src/nm.c:403 src/objdump.c:280 src/strip.c:442 +#: src/nm.c:403 src/objdump.c:280 src/strip.c:797 #, c-format msgid "%s: File format not recognized" msgstr "%s: Dateiformat nicht erkannt" @@ -3472,12 +3475,12 @@ msgid "cannot create search tree" msgstr "Kann Suchbaum nicht erstellen" #: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605 -#: src/readelf.c:1410 src/readelf.c:1558 src/readelf.c:1759 src/readelf.c:1965 -#: src/readelf.c:2155 src/readelf.c:2333 src/readelf.c:2409 src/readelf.c:2667 -#: src/readelf.c:2743 src/readelf.c:2830 src/readelf.c:3428 src/readelf.c:3478 -#: src/readelf.c:3541 src/readelf.c:11044 src/readelf.c:12216 -#: src/readelf.c:12419 src/readelf.c:12487 src/size.c:396 src/size.c:465 -#: src/strip.c:571 +#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970 +#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672 +#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483 +#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276 +#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467 +#: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" msgstr "" @@ -3569,11 +3572,11 @@ msgstr "Keine Operation angegeben.\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:363 src/readelf.c:2060 src/readelf.c:2252 +#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257 msgid "INVALID SYMBOL" msgstr "" -#: src/objdump.c:378 src/readelf.c:2094 src/readelf.c:2288 +#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293 msgid "INVALID SECTION" msgstr "" @@ -3773,21 +3776,21 @@ msgstr "" msgid "cannot generate Elf descriptor: %s" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: src/readelf.c:596 src/readelf.c:924 src/strip.c:640 +#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133 #, c-format msgid "cannot determine number of sections: %s" msgstr "" -#: src/readelf.c:614 src/readelf.c:1226 src/readelf.c:1434 +#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436 #, c-format msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:623 src/readelf.c:1233 src/readelf.c:1442 src/readelf.c:12439 -#: src/unstrip.c:394 src/unstrip.c:425 src/unstrip.c:474 src/unstrip.c:584 -#: src/unstrip.c:605 src/unstrip.c:642 src/unstrip.c:846 src/unstrip.c:1138 -#: src/unstrip.c:1330 src/unstrip.c:1391 src/unstrip.c:1564 src/unstrip.c:1679 -#: src/unstrip.c:1819 src/unstrip.c:1914 +#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600 +#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202 +#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766 +#: src/unstrip.c:1909 src/unstrip.c:2004 #, c-format msgid "cannot get section header: %s" msgstr "" @@ -3797,8 +3800,8 @@ msgstr "" msgid "cannot get section name" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:640 src/readelf.c:6533 src/readelf.c:10317 src/readelf.c:10419 -#: src/readelf.c:10596 +#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465 +#: src/readelf.c:10643 #, c-format msgid "cannot get %s content: %s" msgstr "" @@ -3848,274 +3851,279 @@ msgstr "Konnte '%s' nicht lesen: %s" msgid "No such section '%s' in '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:909 +#: src/readelf.c:908 #, c-format msgid "cannot read ELF header: %s" msgstr "" -#: src/readelf.c:917 +#: src/readelf.c:916 #, c-format msgid "cannot create EBL handle" msgstr "" -#: src/readelf.c:930 +#: src/readelf.c:929 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:1020 +#: src/readelf.c:961 +#, fuzzy, c-format +msgid "cannot read ELF: %s" +msgstr "Konnte %s: %s nicht lesen" + +#: src/readelf.c:1022 msgid "NONE (None)" msgstr "" -#: src/readelf.c:1021 +#: src/readelf.c:1023 msgid "REL (Relocatable file)" msgstr "" -#: src/readelf.c:1022 +#: src/readelf.c:1024 msgid "EXEC (Executable file)" msgstr "" -#: src/readelf.c:1023 +#: src/readelf.c:1025 msgid "DYN (Shared object file)" msgstr "" -#: src/readelf.c:1024 +#: src/readelf.c:1026 msgid "CORE (Core file)" msgstr "" -#: src/readelf.c:1029 +#: src/readelf.c:1031 #, c-format msgid "OS Specific: (%x)\n" msgstr "" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1031 +#: src/readelf.c:1033 #, c-format msgid "Processor Specific: (%x)\n" msgstr "" -#: src/readelf.c:1041 +#: src/readelf.c:1043 msgid "" "ELF Header:\n" " Magic: " msgstr "" -#: src/readelf.c:1045 +#: src/readelf.c:1047 #, c-format msgid "" "\n" " Class: %s\n" msgstr "" -#: src/readelf.c:1050 +#: src/readelf.c:1052 #, fuzzy, c-format msgid " Data: %s\n" msgstr " Daten: %s\n" -#: src/readelf.c:1056 +#: src/readelf.c:1058 #, c-format msgid " Ident Version: %hhd %s\n" msgstr "" -#: src/readelf.c:1058 src/readelf.c:1075 +#: src/readelf.c:1060 src/readelf.c:1077 msgid "(current)" msgstr "(aktuell)" -#: src/readelf.c:1062 +#: src/readelf.c:1064 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: src/readelf.c:1065 +#: src/readelf.c:1067 #, c-format msgid " ABI Version: %hhd\n" msgstr "" -#: src/readelf.c:1068 +#: src/readelf.c:1070 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:1071 +#: src/readelf.c:1073 #, c-format msgid " Machine: %s\n" msgstr "" -#: src/readelf.c:1073 +#: src/readelf.c:1075 #, c-format msgid " Version: %d %s\n" msgstr "" -#: src/readelf.c:1077 +#: src/readelf.c:1079 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:1080 +#: src/readelf.c:1082 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:1081 src/readelf.c:1084 +#: src/readelf.c:1083 src/readelf.c:1086 msgid "(bytes into file)" msgstr "" -#: src/readelf.c:1083 +#: src/readelf.c:1085 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:1086 +#: src/readelf.c:1088 #, c-format msgid " Flags: %s\n" msgstr "" -#: src/readelf.c:1089 +#: src/readelf.c:1091 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1090 src/readelf.c:1093 src/readelf.c:1110 +#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112 msgid "(bytes)" msgstr "(Bytes)" -#: src/readelf.c:1092 +#: src/readelf.c:1094 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1095 +#: src/readelf.c:1097 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:1102 +#: src/readelf.c:1104 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "" -#: src/readelf.c:1105 src/readelf.c:1122 src/readelf.c:1136 +#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138 msgid " ([0] not available)" msgstr "" -#: src/readelf.c:1109 +#: src/readelf.c:1111 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:1112 +#: src/readelf.c:1114 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:1119 +#: src/readelf.c:1121 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr "" #. We managed to get the zeroth section. -#: src/readelf.c:1132 +#: src/readelf.c:1134 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "" -#: src/readelf.c:1140 +#: src/readelf.c:1142 #, c-format msgid "" " Section header string table index: XINDEX%s\n" "\n" msgstr "" -#: src/readelf.c:1144 +#: src/readelf.c:1146 #, c-format msgid "" " Section header string table index: %<PRId16>\n" "\n" msgstr "" -#: src/readelf.c:1191 src/readelf.c:1399 +#: src/readelf.c:1193 src/readelf.c:1401 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:1194 +#: src/readelf.c:1196 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" "\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:1203 +#: src/readelf.c:1205 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1206 +#: src/readelf.c:1208 msgid "Section Headers:" msgstr "" -#: src/readelf.c:1209 +#: src/readelf.c:1211 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" msgstr "" -#: src/readelf.c:1211 +#: src/readelf.c:1213 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" msgstr "" -#: src/readelf.c:1216 +#: src/readelf.c:1218 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1218 +#: src/readelf.c:1220 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1294 +#: src/readelf.c:1296 #, c-format msgid "bad compression header for section %zd: %s" msgstr "" -#: src/readelf.c:1305 +#: src/readelf.c:1307 #, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "" -#: src/readelf.c:1323 +#: src/readelf.c:1325 msgid "Program Headers:" msgstr "Programm-Köpfe:" -#: src/readelf.c:1325 +#: src/readelf.c:1327 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" -#: src/readelf.c:1328 +#: src/readelf.c:1330 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" msgstr "" -#: src/readelf.c:1385 +#: src/readelf.c:1387 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "" -#: src/readelf.c:1412 +#: src/readelf.c:1414 msgid "" "\n" " Section to Segment mapping:\n" " Segment Sections..." msgstr "" -#: src/readelf.c:1423 src/unstrip.c:1973 src/unstrip.c:2015 src/unstrip.c:2022 +#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112 #, c-format msgid "cannot get program header: %s" msgstr "" -#: src/readelf.c:1566 +#: src/readelf.c:1571 #, c-format msgid "" "\n" @@ -4126,7 +4134,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1571 +#: src/readelf.c:1576 #, c-format msgid "" "\n" @@ -4137,31 +4145,31 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1579 +#: src/readelf.c:1584 msgid "<INVALID SYMBOL>" msgstr "" -#: src/readelf.c:1593 +#: src/readelf.c:1598 msgid "<INVALID SECTION>" msgstr "" -#: src/readelf.c:1616 src/readelf.c:2343 src/readelf.c:3444 src/readelf.c:12310 -#: src/readelf.c:12317 src/readelf.c:12361 src/readelf.c:12368 +#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371 +#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 +#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:1765 src/readelf.c:2415 src/readelf.c:2673 src/readelf.c:2749 -#: src/readelf.c:3053 src/readelf.c:3127 src/readelf.c:5322 +#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754 +#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:1768 +#: src/readelf.c:1773 #, c-format msgid "" "\n" @@ -4174,43 +4182,43 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1778 +#: src/readelf.c:1783 msgid " Type Value\n" msgstr "" -#: src/readelf.c:1802 +#: src/readelf.c:1807 #, c-format msgid "Shared library: [%s]\n" msgstr "" -#: src/readelf.c:1807 +#: src/readelf.c:1812 #, c-format msgid "Library soname: [%s]\n" msgstr "" -#: src/readelf.c:1812 +#: src/readelf.c:1817 #, c-format msgid "Library rpath: [%s]\n" msgstr "" -#: src/readelf.c:1817 +#: src/readelf.c:1822 #, c-format msgid "Library runpath: [%s]\n" msgstr "" -#: src/readelf.c:1837 +#: src/readelf.c:1842 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "" -#: src/readelf.c:1950 src/readelf.c:2140 +#: src/readelf.c:1955 src/readelf.c:2145 #, c-format msgid "" "\n" "Invalid symbol table at offset %#0<PRIx64>\n" msgstr "" -#: src/readelf.c:1968 src/readelf.c:2158 +#: src/readelf.c:1973 src/readelf.c:2163 #, c-format msgid "" "\n" @@ -4229,7 +4237,7 @@ msgstr[1] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:1983 src/readelf.c:2173 +#: src/readelf.c:1988 src/readelf.c:2178 #, c-format msgid "" "\n" @@ -4240,29 +4248,29 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1993 +#: src/readelf.c:1998 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:1995 +#: src/readelf.c:2000 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:2048 src/readelf.c:2059 src/readelf.c:2072 src/readelf.c:2093 -#: src/readelf.c:2105 src/readelf.c:2239 src/readelf.c:2251 src/readelf.c:2265 -#: src/readelf.c:2287 src/readelf.c:2300 +#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098 +#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270 +#: src/readelf.c:2292 src/readelf.c:2305 msgid "<INVALID RELOC>" msgstr "" -#: src/readelf.c:2183 +#: src/readelf.c:2188 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2185 +#: src/readelf.c:2190 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2423 +#: src/readelf.c:2428 #, c-format msgid "" "\n" @@ -4273,40 +4281,40 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2428 +#: src/readelf.c:2433 #, 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:2436 +#: src/readelf.c:2441 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2438 +#: src/readelf.c:2443 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2458 +#: src/readelf.c:2463 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "" -#: src/readelf.c:2546 +#: src/readelf.c:2551 #, c-format msgid "bad dynamic symbol" msgstr "" -#: src/readelf.c:2628 +#: src/readelf.c:2633 msgid "none" msgstr "keine" -#: src/readelf.c:2645 +#: src/readelf.c:2650 msgid "| <unknown>" msgstr "| <unbekannt>" -#: src/readelf.c:2676 +#: src/readelf.c:2681 #, c-format msgid "" "\n" @@ -4319,17 +4327,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2697 +#: src/readelf.c:2702 #, fuzzy, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n" -#: src/readelf.c:2710 +#: src/readelf.c:2715 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Name: %s Flags: %s Version: %hu\n" -#: src/readelf.c:2753 +#: src/readelf.c:2758 #, c-format msgid "" "\n" @@ -4342,18 +4350,18 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2781 +#: src/readelf.c:2786 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" -#: src/readelf.c:2796 +#: src/readelf.c:2801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" #. Print the header. -#: src/readelf.c:3057 +#: src/readelf.c:3062 #, c-format msgid "" "\n" @@ -4366,15 +4374,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3085 +#: src/readelf.c:3090 msgid " 0 *local* " msgstr " 0 *lokal* " -#: src/readelf.c:3090 +#: src/readelf.c:3095 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:3132 +#: src/readelf.c:3137 #, c-format msgid "" "\n" @@ -4389,66 +4397,66 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3154 +#: src/readelf.c:3159 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr "" -#: src/readelf.c:3156 +#: src/readelf.c:3161 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3163 +#: src/readelf.c:3168 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3176 +#: src/readelf.c:3181 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" "\t\t\t unsuccessful lookup: %f\n" msgstr "" -#: src/readelf.c:3194 src/readelf.c:3258 src/readelf.c:3324 +#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329 #, c-format msgid "cannot get data for section %d: %s" msgstr "" -#: src/readelf.c:3202 +#: src/readelf.c:3207 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3231 +#: src/readelf.c:3236 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3266 +#: src/readelf.c:3271 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3297 +#: src/readelf.c:3302 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3333 +#: src/readelf.c:3338 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3400 +#: src/readelf.c:3405 #, c-format msgid "" " Symbol Bias: %u\n" " Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n" msgstr "" -#: src/readelf.c:3489 +#: src/readelf.c:3494 #, c-format msgid "" "\n" @@ -4459,13 +4467,13 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3503 +#: src/readelf.c:3508 msgid "" " Library Time Stamp Checksum Version " "Flags" msgstr "" -#: src/readelf.c:3553 +#: src/readelf.c:3558 #, c-format msgid "" "\n" @@ -4473,102 +4481,102 @@ msgid "" "%#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:3570 +#: src/readelf.c:3575 msgid " Owner Size\n" msgstr "" -#: src/readelf.c:3599 +#: src/readelf.c:3604 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3638 +#: src/readelf.c:3643 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3643 +#: src/readelf.c:3648 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3692 +#: src/readelf.c:3697 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3695 +#: src/readelf.c:3700 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3698 +#: src/readelf.c:3703 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3708 +#: src/readelf.c:3713 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3711 +#: src/readelf.c:3716 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3781 +#: src/readelf.c:3786 #, fuzzy, c-format msgid "sprintf failure" msgstr "mprotect fehlgeschlagen" -#: src/readelf.c:4263 +#: src/readelf.c:4268 msgid "empty block" msgstr "" -#: src/readelf.c:4266 +#: src/readelf.c:4271 #, c-format msgid "%zu byte block:" msgstr "" -#: src/readelf.c:4744 +#: src/readelf.c:4749 #, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "" -#: src/readelf.c:4808 +#: src/readelf.c:4813 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "" -#: src/readelf.c:4815 +#: src/readelf.c:4820 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "" -#: src/readelf.c:4822 +#: src/readelf.c:4827 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "" -#: src/readelf.c:4829 +#: src/readelf.c:4834 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "" -#: src/readelf.c:4926 +#: src/readelf.c:4931 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr "" -#: src/readelf.c:4934 +#: src/readelf.c:4939 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr "" -#: src/readelf.c:5012 +#: src/readelf.c:5017 #, c-format msgid "" "\n" @@ -4576,79 +4584,79 @@ msgid "" " [ Code]\n" msgstr "" -#: src/readelf.c:5020 +#: src/readelf.c:5025 #, c-format msgid "" "\n" "Abbreviation section at offset %<PRIu64>:\n" msgstr "" -#: src/readelf.c:5033 +#: src/readelf.c:5038 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr "" -#: src/readelf.c:5049 +#: src/readelf.c:5054 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr "" -#: src/readelf.c:5082 src/readelf.c:5391 src/readelf.c:5557 src/readelf.c:5942 -#: src/readelf.c:6543 src/readelf.c:8184 src/readelf.c:8854 src/readelf.c:9290 -#: src/readelf.c:9534 src/readelf.c:9699 src/readelf.c:10060 -#: src/readelf.c:10118 +#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948 +#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306 +#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104 +#: src/readelf.c:10164 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:5095 +#: src/readelf.c:5100 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:5195 src/readelf.c:5219 src/readelf.c:5602 src/readelf.c:8899 +#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5197 src/readelf.c:5234 src/readelf.c:5615 src/readelf.c:8912 +#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5198 src/readelf.c:5243 src/readelf.c:5624 src/readelf.c:8921 +#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5200 src/readelf.c:5253 src/readelf.c:5634 src/readelf.c:8931 +#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5238 src/readelf.c:5619 src/readelf.c:8916 src/readelf.c:10250 +#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296 #, fuzzy, c-format msgid "Unknown version" msgstr "unbekannte Version" -#: src/readelf.c:5248 src/readelf.c:5461 src/readelf.c:5629 src/readelf.c:8926 +#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942 #, fuzzy, c-format msgid "unsupported address size" msgstr "Kein Adress-Wert" -#: src/readelf.c:5259 src/readelf.c:5472 src/readelf.c:5639 src/readelf.c:8936 +#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5312 src/readelf.c:5386 +#: src/readelf.c:5317 src/readelf.c:5391 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "" -#: src/readelf.c:5327 +#: src/readelf.c:5332 #, c-format msgid "" "\n" @@ -4659,241 +4667,241 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:5358 +#: src/readelf.c:5363 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5360 +#: src/readelf.c:5365 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" -#: src/readelf.c:5404 src/readelf.c:8211 +#: src/readelf.c:5409 src/readelf.c:8226 #, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" -#: src/readelf.c:5408 src/readelf.c:5583 src/readelf.c:6567 src/readelf.c:8222 -#: src/readelf.c:8880 +#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237 +#: src/readelf.c:8896 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" -#: src/readelf.c:5424 +#: src/readelf.c:5429 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5436 +#: src/readelf.c:5441 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5440 +#: src/readelf.c:5445 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5451 +#: src/readelf.c:5456 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5457 +#: src/readelf.c:5462 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr "" -#: src/readelf.c:5468 +#: src/readelf.c:5473 #, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr "" -#: src/readelf.c:5523 +#: src/readelf.c:5528 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5566 +#: src/readelf.c:5572 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:5589 src/readelf.c:8886 +#: src/readelf.c:5595 src/readelf.c:8902 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5644 src/readelf.c:8941 +#: src/readelf.c:5650 src/readelf.c:8957 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5660 src/readelf.c:8957 +#: src/readelf.c:5666 src/readelf.c:8973 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5662 src/readelf.c:8959 +#: src/readelf.c:5668 src/readelf.c:8975 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5668 src/readelf.c:8965 +#: src/readelf.c:5674 src/readelf.c:8981 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5679 src/readelf.c:8976 +#: src/readelf.c:5685 src/readelf.c:8992 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5683 src/readelf.c:8980 +#: src/readelf.c:5689 src/readelf.c:8996 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5735 +#: src/readelf.c:5741 #, fuzzy, c-format msgid "invalid range list data" msgstr "Ungültige Daten" -#: src/readelf.c:5920 src/readelf.c:9268 +#: src/readelf.c:5926 src/readelf.c:9284 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5937 +#: src/readelf.c:5943 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "" -#: src/readelf.c:5973 src/readelf.c:9323 +#: src/readelf.c:5979 src/readelf.c:9339 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:5975 src/readelf.c:9325 +#: src/readelf.c:5981 src/readelf.c:9341 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5984 src/readelf.c:9351 src/readelf.c:9377 +#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr "" -#: src/readelf.c:6005 src/readelf.c:9457 +#: src/readelf.c:6011 src/readelf.c:9473 #, c-format msgid "" " [%6tx] base address\n" " " msgstr "" -#: src/readelf.c:6013 src/readelf.c:9465 +#: src/readelf.c:6019 src/readelf.c:9481 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:6268 +#: src/readelf.c:6274 msgid " <INVALID DATA>\n" msgstr "" -#: src/readelf.c:6521 +#: src/readelf.c:6527 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:6539 +#: src/readelf.c:6545 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:6589 +#: src/readelf.c:6595 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:6682 src/readelf.c:6836 +#: src/readelf.c:6696 src/readelf.c:6850 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:6697 +#: src/readelf.c:6711 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:6703 +#: src/readelf.c:6717 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:6813 +#: src/readelf.c:6827 #, c-format msgid " (offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:6820 +#: src/readelf.c:6834 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:6857 +#: src/readelf.c:6871 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:6942 +#: src/readelf.c:6956 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "" -#: src/readelf.c:6952 +#: src/readelf.c:6966 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "" -#: src/readelf.c:6974 +#: src/readelf.c:6988 #, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "" -#: src/readelf.c:7307 +#: src/readelf.c:7321 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "Ungültige Datei" -#: src/readelf.c:7311 +#: src/readelf.c:7325 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr "unbekannte Form %<PRIx64>" -#: src/readelf.c:7315 +#: src/readelf.c:7329 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:7538 +#: src/readelf.c:7552 #, c-format msgid "" "\n" @@ -4901,12 +4909,12 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:7588 +#: src/readelf.c:7602 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:7607 +#: src/readelf.c:7621 #, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -4915,7 +4923,7 @@ msgid "" " Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n" msgstr "" -#: src/readelf.c:7619 +#: src/readelf.c:7633 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -4923,37 +4931,37 @@ msgid "" "%<PRIu8>, Offset size: %<PRIu8>\n" msgstr "" -#: src/readelf.c:7629 src/readelf.c:7792 +#: src/readelf.c:7643 src/readelf.c:7806 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:7656 +#: src/readelf.c:7670 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7685 +#: src/readelf.c:7699 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:7694 +#: src/readelf.c:7708 #, 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:7732 +#: src/readelf.c:7746 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:7740 +#: src/readelf.c:7754 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:7784 +#: src/readelf.c:7798 #, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -4961,7 +4969,7 @@ msgid "" "%<PRIu8>, Offset size: %<PRIu8>\n" msgstr "" -#: src/readelf.c:7835 +#: src/readelf.c:7850 #, c-format msgid "" "\n" @@ -4969,18 +4977,18 @@ msgid "" "\n" msgstr "" -#: src/readelf.c:8167 +#: src/readelf.c:8182 #, fuzzy, c-format msgid "unknown form: %s" msgstr "unbekannte Form %<PRIx64>" -#: src/readelf.c:8198 +#: src/readelf.c:8213 #, c-format msgid "cannot get line data section data: %s" msgstr "" #. Print what we got so far. -#: src/readelf.c:8300 +#: src/readelf.c:8315 #, c-format msgid "" "\n" @@ -4999,171 +5007,171 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:8322 +#: src/readelf.c:8337 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:8330 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "Kein Adress-Wert" -#: src/readelf.c:8338 +#: src/readelf.c:8353 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "" -#: src/readelf.c:8348 +#: src/readelf.c:8363 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:8363 +#: src/readelf.c:8378 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:8374 +#: src/readelf.c:8389 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:8380 src/readelf.c:8455 +#: src/readelf.c:8395 src/readelf.c:8470 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8449 +#: src/readelf.c:8464 msgid "" "\n" "File name table:" msgstr "" -#: src/readelf.c:8510 +#: src/readelf.c:8525 msgid " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:8545 +#: src/readelf.c:8560 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:8568 +#: src/readelf.c:8583 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8602 +#: src/readelf.c:8617 #, c-format msgid " special opcode %u: address+%u = " msgstr "" -#: src/readelf.c:8606 +#: src/readelf.c:8621 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" -#: src/readelf.c:8609 +#: src/readelf.c:8624 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8627 +#: src/readelf.c:8642 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:8632 +#: src/readelf.c:8647 msgid " end of sequence" msgstr "" -#: src/readelf.c:8650 +#: src/readelf.c:8665 #, fuzzy, c-format msgid " set address to " msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:8678 +#: src/readelf.c:8693 #, c-format msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" -#: src/readelf.c:8691 +#: src/readelf.c:8706 #, c-format msgid " set discriminator to %u\n" msgstr "" #. Unknown, ignore it. -#: src/readelf.c:8696 +#: src/readelf.c:8711 #, fuzzy msgid " unknown opcode" msgstr "unbekannter Typ" #. Takes no argument. -#: src/readelf.c:8708 +#: src/readelf.c:8723 msgid " copy" msgstr "" -#: src/readelf.c:8717 +#: src/readelf.c:8732 #, c-format msgid " advance address by %u to " msgstr "" -#: src/readelf.c:8721 src/readelf.c:8777 +#: src/readelf.c:8736 src/readelf.c:8792 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8731 +#: src/readelf.c:8746 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "" -#: src/readelf.c:8739 +#: src/readelf.c:8754 #, c-format msgid " set file to %<PRIu64>\n" msgstr "" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid " set column to %<PRIu64>\n" msgstr "" -#: src/readelf.c:8756 +#: src/readelf.c:8771 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "" #. Takes no argument. -#: src/readelf.c:8762 +#: src/readelf.c:8777 msgid " set basic block flag" msgstr "" -#: src/readelf.c:8773 +#: src/readelf.c:8788 #, c-format msgid " advance address by constant %u to " msgstr "" -#: src/readelf.c:8792 +#: src/readelf.c:8807 #, c-format msgid " advance address by fixed value %u to \n" msgstr "" #. Takes no argument. -#: src/readelf.c:8802 +#: src/readelf.c:8817 msgid " set prologue end flag" msgstr "" #. Takes no argument. -#: src/readelf.c:8807 +#: src/readelf.c:8822 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:8816 +#: src/readelf.c:8831 #, c-format msgid " set isa to %u\n" msgstr "" @@ -5171,103 +5179,103 @@ 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:8825 +#: src/readelf.c:8840 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:8863 +#: src/readelf.c:8879 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/readelf.c:9032 +#: src/readelf.c:9048 #, fuzzy, c-format msgid "invalid loclists data" msgstr "Ungültige Daten" -#: src/readelf.c:9285 +#: src/readelf.c:9301 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "" -#: src/readelf.c:9492 src/readelf.c:10506 +#: src/readelf.c:9508 src/readelf.c:10552 msgid " <INVALID DATA>\n" msgstr "" -#: src/readelf.c:9546 src/readelf.c:9709 +#: src/readelf.c:9563 src/readelf.c:9726 #, c-format msgid "cannot get macro information section data: %s" msgstr "" -#: src/readelf.c:9626 +#: src/readelf.c:9643 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:9649 +#: src/readelf.c:9666 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "" -#: src/readelf.c:9750 +#: src/readelf.c:9767 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:9762 +#: src/readelf.c:9779 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:9768 src/readelf.c:10625 +#: src/readelf.c:9785 src/readelf.c:10672 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9775 +#: src/readelf.c:9792 #, fuzzy, c-format -msgid " Flag: 0x%<PRIx8>\n" +msgid " Flag: 0x%<PRIx8>" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:9778 +#: src/readelf.c:9821 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr "" -#: src/readelf.c:9786 +#: src/readelf.c:9829 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr "" -#: src/readelf.c:9811 +#: src/readelf.c:9854 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr "" -#: src/readelf.c:9818 +#: src/readelf.c:9861 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:9830 +#: src/readelf.c:9873 #, c-format msgid " %<PRIu8> arguments:" msgstr "" -#: src/readelf.c:9845 +#: src/readelf.c:9888 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10046 +#: src/readelf.c:10089 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" -#: src/readelf.c:10088 +#: src/readelf.c:10133 #, c-format msgid "" "\n" @@ -5275,72 +5283,72 @@ msgid "" " %*s String\n" msgstr "" -#: src/readelf.c:10103 +#: src/readelf.c:10148 #, c-format msgid " *** error, missing string terminator\n" msgstr "" -#: src/readelf.c:10131 +#: src/readelf.c:10177 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:10230 +#: src/readelf.c:10276 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10232 +#: src/readelf.c:10278 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10246 +#: src/readelf.c:10292 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10255 +#: src/readelf.c:10301 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10309 +#: src/readelf.c:10355 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:10411 +#: src/readelf.c:10457 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:10434 +#: src/readelf.c:10480 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:10446 +#: src/readelf.c:10492 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:10461 +#: src/readelf.c:10507 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:10474 +#: src/readelf.c:10520 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:10488 +#: src/readelf.c:10534 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5349,142 +5357,142 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:10561 +#: src/readelf.c:10607 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:10587 +#: src/readelf.c:10634 #, c-format msgid "" "\n" "GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n" msgstr "" -#: src/readelf.c:10616 +#: src/readelf.c:10663 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10634 +#: src/readelf.c:10681 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:10641 +#: src/readelf.c:10688 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:10648 +#: src/readelf.c:10695 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:10655 +#: src/readelf.c:10702 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:10662 +#: src/readelf.c:10709 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr "" -#: src/readelf.c:10676 +#: src/readelf.c:10723 #, c-format msgid "" "\n" " CU list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:10701 +#: src/readelf.c:10748 #, c-format msgid "" "\n" " TU list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:10730 +#: src/readelf.c:10777 #, c-format msgid "" "\n" " Address list at offset %#<PRIx32> contains %zu entries:\n" msgstr "" -#: src/readelf.c:10762 +#: src/readelf.c:10809 #, c-format msgid "" "\n" " Symbol table at offset %#<PRIx32> contains %zu slots:\n" msgstr "" -#: src/readelf.c:10900 +#: src/readelf.c:10947 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:11263 src/readelf.c:11885 src/readelf.c:11996 -#: src/readelf.c:12054 +#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043 +#: src/readelf.c:12101 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:11626 +#: src/readelf.c:11673 #, c-format msgid "" "\n" "%*s... <repeats %u more times> ..." msgstr "" -#: src/readelf.c:12133 +#: src/readelf.c:12180 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:12151 +#: src/readelf.c:12209 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr "" -#: src/readelf.c:12201 +#: src/readelf.c:12261 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "Konnte Inhalt von %s: %s nicht lesen" -#: src/readelf.c:12228 +#: src/readelf.c:12288 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12251 +#: src/readelf.c:12311 #, c-format msgid "" "\n" "Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12297 +#: src/readelf.c:12358 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12324 src/readelf.c:12375 +#: src/readelf.c:12385 src/readelf.c:12436 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12329 +#: src/readelf.c:12390 #, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12334 +#: src/readelf.c:12395 #, c-format msgid "" "\n" @@ -5492,21 +5500,21 @@ msgid "" "%#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12348 +#: src/readelf.c:12409 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12380 +#: src/readelf.c:12441 #, c-format msgid "" "\n" "String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12385 +#: src/readelf.c:12446 #, c-format msgid "" "\n" @@ -5514,45 +5522,45 @@ msgid "" "offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:12434 +#: src/readelf.c:12495 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:12463 +#: src/readelf.c:12524 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:12520 +#: src/readelf.c:12581 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:12523 +#: src/readelf.c:12584 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:12527 +#: src/readelf.c:12588 #, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" -#: src/readelf.c:12545 +#: src/readelf.c:12606 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:12550 +#: src/readelf.c:12611 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -5615,12 +5623,12 @@ msgstr "" msgid "%s: file format not recognized" msgstr "" -#: src/size.c:416 src/size.c:549 +#: src/size.c:418 src/size.c:551 #, c-format msgid " (ex %s)" msgstr "" -#: src/size.c:574 +#: src/size.c:576 msgid "(TOTALS)\n" msgstr "" @@ -5806,94 +5814,114 @@ msgstr "mprotect fehlgeschlagen" msgid "Skipping section %zd '%s' data outside file" msgstr "" -#: src/strip.c:70 +#: src/strip.c:71 msgid "Place stripped output into FILE" msgstr "" -#: src/strip.c:71 +#: src/strip.c:72 msgid "Extract the removed sections into FILE" msgstr "" -#: src/strip.c:72 +#: src/strip.c:73 msgid "Embed name FILE instead of -f argument" msgstr "" -#: src/strip.c:76 +#: src/strip.c:77 msgid "Remove all debugging symbols" msgstr "" -#: src/strip.c:80 +#: src/strip.c:81 msgid "Remove section headers (not recommended)" msgstr "" -#: src/strip.c:82 +#: src/strip.c:83 msgid "Copy modified/access timestamps to the output" msgstr "" -#: src/strip.c:84 +#: src/strip.c:85 msgid "" "Resolve all trivial relocations between debug sections if the removed " "sections are placed in a debug file (only relevant for ET_REL files, " "operation is not reversable, needs -f)" msgstr "" -#: src/strip.c:86 +#: src/strip.c:87 +msgid "" +"Similar to --reloc-debug-sections, but resolve all trivial relocations " +"between debug sections in place. No other stripping is performed (operation " +"is not reversable, incompatible with -f, -g, --remove-comment and --remove-" +"section)" +msgstr "" + +#: src/strip.c:89 msgid "Remove .comment section" msgstr "" -#: src/strip.c:87 +#: src/strip.c:90 msgid "" "Remove the named section. SECTION is an extended wildcard pattern. May be " "given more than once. Only non-allocated sections can be removed." msgstr "" -#: src/strip.c:88 +#: src/strip.c:91 msgid "" "Keep the named section. SECTION is an extended wildcard pattern. May be " "given more than once." msgstr "" #. Short description of program. -#: src/strip.c:95 +#: src/strip.c:98 msgid "Discard symbols from object files." msgstr "" -#: src/strip.c:241 +#: src/strip.c:247 #, c-format msgid "--reloc-debug-sections used without -f" msgstr "" -#: src/strip.c:255 +#: src/strip.c:253 +#, c-format +msgid "" +"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --" +"remove-section" +msgstr "" + +#: src/strip.c:267 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" msgstr "" -#: src/strip.c:278 +#: src/strip.c:290 #, c-format msgid "-f option specified twice" msgstr "" -#: src/strip.c:287 +#: src/strip.c:299 #, c-format msgid "-F option specified twice" msgstr "" -#: src/strip.c:346 +#: src/strip.c:362 #, c-format msgid "cannot both keep and remove .comment section" msgstr "" -#: src/strip.c:371 src/strip.c:395 +#: src/strip.c:574 +#, fuzzy, c-format +msgid "bad relocation" +msgstr "Relocations anzeigen" + +#: src/strip.c:726 src/strip.c:750 #, c-format msgid "cannot stat input file '%s'" msgstr "" -#: src/strip.c:385 +#: src/strip.c:740 #, c-format msgid "while opening '%s'" msgstr "" -#: src/strip.c:423 +#: src/strip.c:778 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "" @@ -5904,132 +5932,132 @@ msgstr "" #. result = handle_ar (fd, elf, NULL, fname, #. preserve_dates ? tv : NULL); #. -#: src/strip.c:435 +#: src/strip.c:790 #, fuzzy, c-format msgid "%s: no support for stripping archive" msgstr "%s: Kein Eintrag %s in dem Archiv!\n" -#: src/strip.c:534 +#: src/strip.c:1001 #, c-format msgid "cannot open EBL backend" msgstr "" -#: src/strip.c:579 +#: src/strip.c:1046 #, fuzzy, c-format msgid "cannot get number of phdrs" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/strip.c:595 src/strip.c:619 -#, c-format -msgid "cannot create new file '%s': %s" -msgstr "" +#: src/strip.c:1060 src/strip.c:1103 +#, fuzzy, c-format +msgid "cannot create new ehdr for file '%s': %s" +msgstr "neue Datei konnte nicht angelegt werden" + +#: src/strip.c:1070 src/strip.c:1113 +#, fuzzy, c-format +msgid "cannot create new phdr for file '%s': %s" +msgstr "neue Datei konnte nicht angelegt werden" -#: src/strip.c:701 +#: src/strip.c:1194 #, c-format msgid "illformed file '%s'" msgstr "" -#: src/strip.c:711 +#: src/strip.c:1204 #, fuzzy, c-format msgid "Cannot remove allocated section '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/strip.c:720 +#: src/strip.c:1213 #, fuzzy, c-format msgid "Cannot both keep and remove section '%s'" msgstr "Konnte Archiv '%s' nicht öffnen" -#: src/strip.c:1076 src/strip.c:1210 +#: src/strip.c:1573 src/strip.c:1688 #, c-format msgid "while generating output file: %s" msgstr "" -#: src/strip.c:1141 +#: src/strip.c:1637 #, fuzzy, c-format -msgid "%s: error while getting shdrstrndx: %s" +msgid "%s: error while updating ELF header: %s" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/strip.c:1157 -#, c-format -msgid "%s: error getting zero section: %s" -msgstr "" - -#: src/strip.c:1166 +#: src/strip.c:1646 #, fuzzy, c-format -msgid "%s: error while updating zero section: %s" +msgid "%s: error while getting shdrstrndx: %s" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/strip.c:1176 src/strip.c:2292 -#, c-format -msgid "%s: error while creating ELF header: %s" -msgstr "" +#: src/strip.c:1654 src/strip.c:2534 +#, fuzzy, c-format +msgid "%s: error updating shdrstrndx: %s" +msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/strip.c:1193 +#: src/strip.c:1671 #, c-format msgid "while preparing output for '%s'" msgstr "" -#: src/strip.c:1255 src/strip.c:1318 +#: src/strip.c:1733 src/strip.c:1796 #, c-format msgid "while create section header section: %s" msgstr "" -#: src/strip.c:1264 +#: src/strip.c:1742 #, c-format msgid "cannot allocate section data: %s" msgstr "" -#: src/strip.c:1330 +#: src/strip.c:1808 #, c-format msgid "while create section header string table: %s" msgstr "" -#: src/strip.c:1337 +#: src/strip.c:1815 #, c-format msgid "no memory to create section header string table" msgstr "" -#: src/strip.c:1547 +#: src/strip.c:2027 #, c-format msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2078 -#, fuzzy, c-format -msgid "bad relocation" -msgstr "Relocations anzeigen" - -#: src/strip.c:2203 src/strip.c:2316 +#: src/strip.c:2450 src/strip.c:2558 #, c-format msgid "while writing '%s': %s" msgstr "" -#: src/strip.c:2214 +#: src/strip.c:2461 #, c-format msgid "while creating '%s'" msgstr "" -#: src/strip.c:2237 +#: src/strip.c:2484 #, c-format msgid "while computing checksum for debug information" msgstr "" -#: src/strip.c:2301 +#: src/strip.c:2525 +#, c-format +msgid "%s: error while creating ELF header: %s" +msgstr "" + +#: src/strip.c:2543 #, c-format msgid "%s: error while reading the file: %s" msgstr "" -#: src/strip.c:2341 src/strip.c:2361 +#: src/strip.c:2583 src/strip.c:2603 #, fuzzy, c-format msgid "while writing '%s'" msgstr "beim Schliessen von '%s'" -#: src/strip.c:2398 src/strip.c:2405 +#: src/strip.c:2640 src/strip.c:2647 #, c-format msgid "error while finishing '%s': %s" msgstr "" -#: src/strip.c:2422 src/strip.c:2498 +#: src/strip.c:2664 src/strip.c:2740 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "" @@ -6115,269 +6143,299 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:257 +#: src/unstrip.c:248 src/unstrip.c:2034 +#, c-format +msgid "cannot get ELF header: %s" +msgstr "" + +#: src/unstrip.c:258 #, fuzzy, c-format msgid "cannot get new zero section: %s" msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" -#: src/unstrip.c:260 +#: src/unstrip.c:261 #, fuzzy, c-format msgid "cannot update new zero section: %s" msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" -#: src/unstrip.c:264 +#: src/unstrip.c:265 #, c-format msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:268 src/unstrip.c:1962 src/unstrip.c:2005 +#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:273 src/unstrip.c:1966 +#: src/unstrip.c:274 src/unstrip.c:2056 #, c-format msgid "cannot create program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:279 +#: src/unstrip.c:280 #, c-format msgid "cannot copy program header: %s" msgstr "konnte Programm-Kopf nicht kopieren: %s" -#: src/unstrip.c:289 +#: src/unstrip.c:290 #, c-format msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:292 src/unstrip.c:1597 +#: src/unstrip.c:293 src/unstrip.c:1665 #, c-format msgid "cannot get section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:294 src/unstrip.c:1599 +#: src/unstrip.c:295 src/unstrip.c:1667 #, c-format msgid "cannot copy section data: %s" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/unstrip.c:318 +#: src/unstrip.c:319 #, c-format msgid "cannot create directory '%s'" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: src/unstrip.c:390 src/unstrip.c:820 src/unstrip.c:1631 +#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702 #, c-format msgid "cannot get symbol table entry: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/unstrip.c:406 src/unstrip.c:631 src/unstrip.c:652 src/unstrip.c:664 -#: src/unstrip.c:1652 src/unstrip.c:1828 src/unstrip.c:1852 +#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682 +#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942 #, c-format msgid "cannot update symbol table: %s" msgstr "konnte Symboltabelle nicht aktualisieren: %s" -#: src/unstrip.c:416 +#: src/unstrip.c:417 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:455 src/unstrip.c:466 +#: src/unstrip.c:459 src/unstrip.c:473 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:554 +#: src/unstrip.c:570 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:567 +#: src/unstrip.c:583 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:826 +#: src/unstrip.c:851 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "ungültiger Offset %zu für Symbol %s" -#: src/unstrip.c:984 src/unstrip.c:1334 +#: src/unstrip.c:1009 src/unstrip.c:1398 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1025 src/unstrip.c:1044 src/unstrip.c:1082 +#: src/unstrip.c:1024 +#, fuzzy, c-format +msgid "bad sh_link for group section: %s" +msgstr "ungültige .debug_line Sektion" + +#: src/unstrip.c:1030 +#, fuzzy, c-format +msgid "couldn't get shdr for group section: %s" +msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" + +#: src/unstrip.c:1035 +#, fuzzy, c-format +msgid "bad data for group symbol section: %s" +msgstr "ungültige .debug_line Sektion" + +#: src/unstrip.c:1041 +#, fuzzy, c-format +msgid "couldn't get symbol for group section: %s" +msgstr "konnte Programm-Kopf nicht erstellen: %s" + +#: src/unstrip.c:1046 +#, fuzzy, c-format +msgid "bad symbol name for group section: %s" +msgstr "konnte Programm-Kopf nicht erstellen: %s" + +#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1062 +#: src/unstrip.c:1125 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 +#: src/unstrip.c:1136 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1128 src/unstrip.c:1456 +#: src/unstrip.c:1192 src/unstrip.c:1524 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1253 src/unstrip.c:1268 src/unstrip.c:1535 src/unstrip.c:1787 +#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1277 +#: src/unstrip.c:1341 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1305 src/unstrip.c:1309 +#: src/unstrip.c:1369 src/unstrip.c:1373 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1313 src/unstrip.c:1317 src/unstrip.c:1550 +#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1320 +#: src/unstrip.c:1384 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1379 src/unstrip.c:1471 +#: src/unstrip.c:1446 src/unstrip.c:1539 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1529 +#: src/unstrip.c:1597 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1639 +#: src/unstrip.c:1710 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:1923 +#: src/unstrip.c:1742 +#, fuzzy, c-format +msgid "group has invalid section index [%zd]" +msgstr "ungültiger Abschnittsindex" + +#: src/unstrip.c:2013 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1944 -#, c-format -msgid "cannot get ELF header: %s" -msgstr "" - -#: src/unstrip.c:1952 +#: src/unstrip.c:2042 #, c-format msgid "cannot update ELF header: %s" msgstr "" -#: src/unstrip.c:1976 +#: src/unstrip.c:2066 #, c-format msgid "cannot update program header: %s" msgstr "konnte Programm-Kopf nicht aktualisieren: %s" -#: src/unstrip.c:1981 src/unstrip.c:2063 +#: src/unstrip.c:2071 src/unstrip.c:2153 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2032 +#: src/unstrip.c:2122 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2035 +#: src/unstrip.c:2125 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2054 src/unstrip.c:2105 src/unstrip.c:2117 src/unstrip.c:2203 +#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2096 +#: src/unstrip.c:2186 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2098 +#: src/unstrip.c:2188 msgid ", use --force" msgstr "" -#: src/unstrip.c:2121 +#: src/unstrip.c:2211 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2124 +#: src/unstrip.c:2214 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2127 +#: src/unstrip.c:2217 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2130 +#: src/unstrip.c:2220 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2160 +#: src/unstrip.c:2250 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2164 +#: src/unstrip.c:2254 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2179 +#: src/unstrip.c:2269 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2183 +#: src/unstrip.c:2273 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2196 +#: src/unstrip.c:2286 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2227 +#: src/unstrip.c:2317 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2360 +#: src/unstrip.c:2450 #, c-format msgid "no matching modules found" msgstr "kein passendes Modul gefunden" -#: src/unstrip.c:2369 +#: src/unstrip.c:2459 #, c-format msgid "matched more than one module" msgstr "mehr als ein passendes Modul" -#: src/unstrip.c:2413 +#: src/unstrip.c:2503 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2414 +#: src/unstrip.c:2504 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils.master.es\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2018-09-14 12:05+0200\n" +"POT-Creation-Date: 2018-11-16 12:42+0100\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz." "com.ar>\n" @@ -57,8 +57,8 @@ msgstr "" "garantÃa, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN " "DETERMINADO.\n" -#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3409 -#: src/readelf.c:11212 src/unstrip.c:2256 src/unstrip.c:2462 +#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414 +#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552 #, c-format msgid "memory exhausted" msgstr "memoria agotada" @@ -300,7 +300,7 @@ msgstr "código operativo desconocido " msgid ".debug_addr section missing" msgstr ".debug_ranges section faltante" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2403 +#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493 msgid "Input selection options:" msgstr "Opciones de selección de entrada:" @@ -528,8 +528,8 @@ msgstr "no es un archivo ELF válido" msgid "No backend" msgstr "No hay segundo plano (Backend)" -#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:76 -#: libebl/eblobjnotetypename.c:83 libebl/eblobjnotetypename.c:102 +#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77 +#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 #: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:79 msgid "<unknown>" @@ -540,58 +540,58 @@ msgstr "<desconocido>" msgid "<unknown>: %#<PRIx64>" msgstr "<desconocido>: %#<PRIx64>" -#: libebl/eblobjnote.c:53 +#: libebl/eblobjnote.c:58 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "versión desconocida" -#: libebl/eblobjnote.c:71 +#: libebl/eblobjnote.c:76 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "descriptor de archivo inválido" -#: libebl/eblobjnote.c:121 +#: libebl/eblobjnote.c:126 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:123 +#: libebl/eblobjnote.c:128 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:125 +#: libebl/eblobjnote.c:130 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:127 +#: libebl/eblobjnote.c:132 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:129 +#: libebl/eblobjnote.c:134 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:131 +#: libebl/eblobjnote.c:136 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:141 +#: libebl/eblobjnote.c:300 #, c-format msgid " Build ID: " msgstr " Build ID: " #. A non-null terminated version string. -#: libebl/eblobjnote.c:152 +#: libebl/eblobjnote.c:311 #, c-format msgid " Linker version: %.*s\n" msgstr " Versión del Enlazador: %.*s\n" -#: libebl/eblobjnote.c:213 +#: libebl/eblobjnote.c:553 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %s, ABI: " @@ -625,7 +625,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:87 src/readelf.c:6123 +#: libelf/elf_error.c:87 src/readelf.c:6129 #, c-format msgid "invalid encoding" msgstr "codificación inválida" @@ -711,8 +711,8 @@ msgstr "no coinciden los datos/scn" msgid "invalid section header" msgstr "encabezamiento de sección inválida" -#: libelf/elf_error.c:191 src/readelf.c:9758 src/readelf.c:10329 -#: src/readelf.c:10430 src/readelf.c:10611 +#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375 +#: src/readelf.c:10476 src/readelf.c:10658 #, c-format msgid "invalid data" msgstr "datos inválidos" @@ -1051,12 +1051,12 @@ msgstr "no sepuede stat el archivo '%s'" msgid "no entry %s in archive\n" msgstr "no hay entrada %s en archivo\n" -#: src/ar.c:472 src/ar.c:917 src/ar.c:1121 +#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 #, c-format msgid "cannot create hash table" msgstr "Falló al crear la tabla de dispersión" -#: src/ar.c:479 src/ar.c:924 src/ar.c:1130 +#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 #, c-format msgid "cannot insert into hash table" msgstr "no sepuede insertar en tabla de dispersión" @@ -1066,97 +1066,97 @@ msgstr "no sepuede insertar en tabla de dispersión" msgid "cannot stat '%s'" msgstr "no se puede stat '%s'" -#: src/ar.c:583 +#: src/ar.c:589 #, c-format msgid "cannot read content of %s: %s" msgstr "no se puede leer el contenido de %s: %s" -#: src/ar.c:626 +#: src/ar.c:632 #, c-format msgid "cannot open %.*s" msgstr " Imposible abrir %.*s" -#: src/ar.c:648 +#: src/ar.c:654 #, c-format msgid "failed to write %s" msgstr "Falló al escribir %s" -#: src/ar.c:660 +#: src/ar.c:666 #, c-format msgid "cannot change mode of %s" msgstr "No se puede cambiar el modo de %s" -#: src/ar.c:676 +#: src/ar.c:682 #, c-format msgid "cannot change modification time of %s" msgstr "No puede cambiar tiempo de modificación de %s" -#: src/ar.c:722 +#: src/ar.c:728 #, c-format msgid "cannot rename temporary file to %.*s" msgstr "no sepuede renombrar fichero temporal para %.*s" -#: src/ar.c:758 src/ar.c:1009 src/ar.c:1410 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "no sepuede crear fichero nuevo" -#: src/ar.c:1212 +#: src/ar.c:1218 #, c-format msgid "position member %s not found" msgstr "no se encuentra miembro de posición %s " -#: src/ar.c:1222 +#: src/ar.c:1228 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: ¡no hay entrada %s en archive!\n" -#: src/ar.c:1251 src/objdump.c:241 +#: src/ar.c:1257 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "no sepuede abrir %s" -#: src/ar.c:1256 +#: src/ar.c:1262 #, c-format msgid "cannot stat %s" msgstr "no sepuede efectuar stat %s" -#: src/ar.c:1262 +#: src/ar.c:1268 #, c-format msgid "%s is no regular file" msgstr " %s no es un fichero ordinario " -#: src/ar.c:1275 +#: src/ar.c:1281 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "no sepuede obtener descriptor ELF para %s: %s\n" -#: src/ar.c:1295 +#: src/ar.c:1301 #, c-format msgid "cannot read %s: %s" msgstr "no sepuede leer %s: %s" -#: src/ar.c:1470 +#: src/ar.c:1476 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1476 +#: src/ar.c:1482 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1482 +#: src/ar.c:1488 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1488 +#: src/ar.c:1494 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/ar.c:1494 +#: src/ar.c:1500 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "no sepuede abrir %s" @@ -1381,8 +1381,8 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "Valor inválido '%s' para parámetro --gaps" #: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141 -#: src/size.c:272 src/strings.c:185 src/strip.c:517 src/strip.c:554 -#: src/unstrip.c:2052 src/unstrip.c:2081 +#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021 +#: src/unstrip.c:2142 src/unstrip.c:2171 #, c-format msgid "cannot open '%s'" msgstr "Imposible abrir '%s'" @@ -1397,7 +1397,7 @@ msgstr "No puede crear descriptor ELF para '%s': %s" msgid "cannot create EBL descriptor for '%s'" msgstr "no se puede crear el descriptor EBL para '%s'" -#: src/elfcmp.c:761 src/findtextrel.c:393 +#: src/elfcmp.c:761 src/findtextrel.c:394 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "No se puede obtener el encabezamiento de sección %zu: %s" @@ -1412,7 +1412,7 @@ msgstr "No se puede obtener contenido de sección %zu: %s" msgid "cannot get relocation: %s" msgstr "No se puede obtener reubicación: %s" -#: src/elfcompress.c:115 src/strip.c:296 src/unstrip.c:121 +#: src/elfcompress.c:115 src/strip.c:308 src/unstrip.c:121 #, c-format msgid "-o option specified twice" msgstr "opción -o especificada dos veces" @@ -1466,7 +1466,7 @@ msgid "" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1324 src/strip.c:90 +#: src/elfcompress.c:1324 src/strip.c:93 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Relaja algunas reglas para manejar ficheros ELF rotos" @@ -1692,7 +1692,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1494 src/elflint.c:1545 src/elflint.c:1651 #: src/elflint.c:1987 src/elflint.c:2313 src/elflint.c:2932 src/elflint.c:3095 -#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4401 +#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4431 #, 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" @@ -3288,55 +3288,58 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4344 +#: src/elflint.c:4370 #, fuzzy, c-format -msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n" +msgid "" +"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " +"offset %zu\n" msgstr "" "phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4348 +#: src/elflint.c:4375 #, fuzzy, c-format msgid "" -"section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n" +"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " +"'%s' at offset %zu\n" msgstr "" "Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en " "compensación %Zu\n" -#: src/elflint.c:4365 +#: src/elflint.c:4394 #, 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:4384 +#: src/elflint.c:4414 #, 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:4387 +#: src/elflint.c:4417 #, 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:4408 +#: src/elflint.c:4438 #, 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:4415 +#: src/elflint.c:4445 #, 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:4418 +#: src/elflint.c:4448 #, 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:4436 +#: src/elflint.c:4466 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3344,145 +3347,145 @@ msgstr "" "Sólo ejecutables, objetos compartidos y ficheros core pueden tener " "encabezamientos de programas\n" -#: src/elflint.c:4451 +#: src/elflint.c:4481 #, 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:4460 +#: src/elflint.c:4490 #, 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:4471 +#: src/elflint.c:4501 #, 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:4479 +#: src/elflint.c:4509 #, 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:4486 +#: src/elflint.c:4516 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "ejecutable estático no puede tener secciones dinámicas\n" -#: src/elflint.c:4500 +#: src/elflint.c:4530 #, 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:4503 +#: src/elflint.c:4533 #, 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:4513 +#: src/elflint.c:4543 #, 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:4534 +#: src/elflint.c:4564 #, 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:4545 +#: src/elflint.c:4575 #, 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:4552 +#: src/elflint.c:4582 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4561 src/elflint.c:4584 +#: src/elflint.c:4591 src/elflint.c:4614 #, 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:4590 +#: src/elflint.c:4620 #, 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:4615 +#: src/elflint.c:4647 #, 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:4618 +#: src/elflint.c:4650 #, 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:4631 +#: src/elflint.c:4663 #, 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:4639 +#: src/elflint.c:4671 #, 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:4642 +#: src/elflint.c:4674 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:4646 +#: src/elflint.c:4678 #, 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:4649 +#: src/elflint.c:4681 #, 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:4654 +#: src/elflint.c:4686 #, 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:4657 +#: src/elflint.c:4689 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:4668 +#: src/elflint.c:4700 #, 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:4675 +#: src/elflint.c:4707 #, 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:4678 +#: src/elflint.c:4710 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3491,7 +3494,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:4691 +#: src/elflint.c:4723 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3500,12 +3503,12 @@ msgstr "" "ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de " "encabezamiento de programa PT_GNU_EH_FRAME" -#: src/elflint.c:4725 +#: src/elflint.c:4757 #, c-format msgid "cannot read ELF header: %s\n" msgstr "No se puede leer encabezamiento ELF: %s\n" -#: src/elflint.c:4751 +#: src/elflint.c:4783 #, c-format msgid "text relocation flag set but not needed\n" msgstr "Bandera de reubicación de texto establecida pero no necesaria\n" @@ -3530,7 +3533,7 @@ msgstr "" #. Strings for arguments in help texts. #: src/findtextrel.c:74 src/nm.c:108 src/objdump.c:71 src/size.c:80 -#: src/strings.c:87 src/strip.c:98 +#: src/strings.c:87 src/strip.c:101 msgid "[FILE...]" msgstr "[FICHERO...]" @@ -3549,57 +3552,57 @@ msgstr "'%s' es no un DSO o PIE" msgid "getting get section header of section %zu: %s" msgstr "obtener encabezamiento de sección get de sección %zu: %s" -#: src/findtextrel.c:276 +#: src/findtextrel.c:277 #, c-format msgid "cannot read dynamic section: %s" msgstr "No se puede leer sección dinámica: %s" -#: src/findtextrel.c:297 +#: src/findtextrel.c:298 #, c-format msgid "no text relocations reported in '%s'" msgstr "no hay reubicaciones de texto reportado en '%s'" -#: src/findtextrel.c:309 +#: src/findtextrel.c:310 #, c-format msgid "while reading ELF file" msgstr "Error al leer fichero ELF" -#: src/findtextrel.c:313 +#: src/findtextrel.c:314 #, fuzzy, c-format msgid "cannot get program header count: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" -#: src/findtextrel.c:324 src/findtextrel.c:341 +#: src/findtextrel.c:325 src/findtextrel.c:342 #, fuzzy, c-format msgid "cannot get program header index at offset %zd: %s" msgstr "" "Nos se puede obtener el Ãndice de encabezamiento de programa en compensación " "%d: %s" -#: src/findtextrel.c:405 +#: src/findtextrel.c:406 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" msgstr "No se puede obtener tabla de sÃmbolos %zu en '%s': %s" -#: src/findtextrel.c:425 src/findtextrel.c:448 +#: src/findtextrel.c:427 src/findtextrel.c:450 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" msgstr "" "No se puede obtener reubicación en Ãndice %d en sección %zu en '%s': %s" -#: src/findtextrel.c:514 +#: src/findtextrel.c:516 #, c-format msgid "%s not compiled with -fpic/-fPIC\n" msgstr "%s no compilado con -fpic/-fPIC\n" -#: src/findtextrel.c:567 +#: src/findtextrel.c:570 #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" "El archivo que contiene la función '%s' no está compilado con -fpic/-fPIC\n" -#: src/findtextrel.c:574 src/findtextrel.c:594 +#: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" @@ -3608,7 +3611,7 @@ msgstr "" "el fichero que contiene la función '%s' podrÃa no estar compilado con -fpic/-" "fPIC\n" -#: src/findtextrel.c:582 +#: src/findtextrel.c:585 #, c-format msgid "" "either the file containing the function '%s' or the file containing the " @@ -3617,7 +3620,7 @@ msgstr "" "Tanto el fichero que contiene la función '%s' como el fichero que contiene " "la función '%s' no están compilados con -fpic/-fPIC\n" -#: src/findtextrel.c:602 +#: src/findtextrel.c:605 #, c-format msgid "" "a relocation modifies memory at offset %llu in a write-protected segment\n" @@ -3625,7 +3628,7 @@ msgstr "" "Una reubicación modifica memoria en compensación %llu en un segmento " "protegido contra escritura\n" -#: src/nm.c:66 src/strip.c:69 +#: src/nm.c:66 src/strip.c:70 msgid "Output selection:" msgstr "Selección de salida:" @@ -3690,7 +3693,7 @@ msgstr "Marcar sÃmbolos débiles" msgid "Print size of defined symbols" msgstr "Tamaño de impresión de sÃmbolos definidos" -#: src/nm.c:91 src/size.c:68 src/strip.c:74 src/unstrip.c:73 +#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:73 msgid "Output options:" msgstr "Opciones de salida:" @@ -3720,18 +3723,18 @@ msgstr "Listar sÃmbolos de FICHEROS (a.out por defecto)." msgid "Output formatting" msgstr "Formato de salida:" -#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:130 +#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: ERROR INTERNO %d (%s-%s): %s" #: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308 -#: src/strip.c:2505 +#: src/strip.c:2747 #, c-format msgid "while closing '%s'" msgstr "error al cerrar '%s'" -#: src/nm.c:403 src/objdump.c:280 src/strip.c:442 +#: src/nm.c:403 src/objdump.c:280 src/strip.c:797 #, c-format msgid "%s: File format not recognized" msgstr "%s: No se reconoce el formato del fichero" @@ -3772,12 +3775,12 @@ msgid "cannot create search tree" msgstr "No se puede crear el árbol de búsqueda" #: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605 -#: src/readelf.c:1410 src/readelf.c:1558 src/readelf.c:1759 src/readelf.c:1965 -#: src/readelf.c:2155 src/readelf.c:2333 src/readelf.c:2409 src/readelf.c:2667 -#: src/readelf.c:2743 src/readelf.c:2830 src/readelf.c:3428 src/readelf.c:3478 -#: src/readelf.c:3541 src/readelf.c:11044 src/readelf.c:12216 -#: src/readelf.c:12419 src/readelf.c:12487 src/size.c:396 src/size.c:465 -#: src/strip.c:571 +#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970 +#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672 +#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483 +#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276 +#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467 +#: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" msgstr "no se puede obtener Ãndice de cadena de encabezamiento de sección" @@ -3873,11 +3876,11 @@ msgstr "No se especificó una operación.\n" msgid "while close `%s'" msgstr "mientras cierra `%s'" -#: src/objdump.c:363 src/readelf.c:2060 src/readelf.c:2252 +#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257 msgid "INVALID SYMBOL" msgstr "SÃMBOLO INVÃLIDO" -#: src/objdump.c:378 src/readelf.c:2094 src/readelf.c:2288 +#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293 msgid "INVALID SECTION" msgstr "SECCIÓN INVÃLIDA" @@ -4084,21 +4087,21 @@ msgstr "Sección de depuración DWARF desconocida `%s'.\n" msgid "cannot generate Elf descriptor: %s" msgstr "no se puede crear descriptor ELF: %s" -#: src/readelf.c:596 src/readelf.c:924 src/strip.c:640 +#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133 #, c-format msgid "cannot determine number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" -#: src/readelf.c:614 src/readelf.c:1226 src/readelf.c:1434 +#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436 #, c-format msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:623 src/readelf.c:1233 src/readelf.c:1442 src/readelf.c:12439 -#: src/unstrip.c:394 src/unstrip.c:425 src/unstrip.c:474 src/unstrip.c:584 -#: src/unstrip.c:605 src/unstrip.c:642 src/unstrip.c:846 src/unstrip.c:1138 -#: src/unstrip.c:1330 src/unstrip.c:1391 src/unstrip.c:1564 src/unstrip.c:1679 -#: src/unstrip.c:1819 src/unstrip.c:1914 +#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600 +#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202 +#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766 +#: src/unstrip.c:1909 src/unstrip.c:2004 #, c-format msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" @@ -4108,8 +4111,8 @@ msgstr "No se puede obtener encabezamiento de sección: %s" msgid "cannot get section name" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/readelf.c:640 src/readelf.c:6533 src/readelf.c:10317 src/readelf.c:10419 -#: src/readelf.c:10596 +#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465 +#: src/readelf.c:10643 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" @@ -4159,53 +4162,58 @@ msgstr "Falló lectura de '%s': %s" msgid "No such section '%s' in '%s'" msgstr "No se puede obtener contenido de sección %zu en '%s': %s" -#: src/readelf.c:909 +#: src/readelf.c:908 #, c-format msgid "cannot read ELF header: %s" msgstr "no se pudo leer encabezamiento ELF: %s" -#: src/readelf.c:917 +#: src/readelf.c:916 #, c-format msgid "cannot create EBL handle" msgstr "no se puede crear EBL" -#: src/readelf.c:930 +#: src/readelf.c:929 #, 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:1020 +#: src/readelf.c:961 +#, fuzzy, c-format +msgid "cannot read ELF: %s" +msgstr "no sepuede leer %s: %s" + +#: src/readelf.c:1022 msgid "NONE (None)" msgstr "NONE (Ninguno)" -#: src/readelf.c:1021 +#: src/readelf.c:1023 msgid "REL (Relocatable file)" msgstr "REL (Fichero reubicable)" -#: src/readelf.c:1022 +#: src/readelf.c:1024 msgid "EXEC (Executable file)" msgstr "EXEC (Fichero ejecutable)" -#: src/readelf.c:1023 +#: src/readelf.c:1025 msgid "DYN (Shared object file)" msgstr "DYN (Fichero objeto compartido)" -#: src/readelf.c:1024 +#: src/readelf.c:1026 msgid "CORE (Core file)" msgstr "CORE (Fichero núcleo)" -#: src/readelf.c:1029 +#: src/readelf.c:1031 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS Specific: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1031 +#: src/readelf.c:1033 #, c-format msgid "Processor Specific: (%x)\n" msgstr "EspecÃfico del procesador: (%x)\n" -#: src/readelf.c:1041 +#: src/readelf.c:1043 msgid "" "ELF Header:\n" " Magic: " @@ -4213,7 +4221,7 @@ msgstr "" "Encabezamiento ELF:\n" " Mágico: " -#: src/readelf.c:1045 +#: src/readelf.c:1047 #, c-format msgid "" "\n" @@ -4222,120 +4230,120 @@ msgstr "" "\n" " Clase: %s\n" -#: src/readelf.c:1050 +#: src/readelf.c:1052 #, c-format msgid " Data: %s\n" msgstr " Datos: %s\n" -#: src/readelf.c:1056 +#: src/readelf.c:1058 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Versión ident: %hhd %s\n" -#: src/readelf.c:1058 src/readelf.c:1075 +#: src/readelf.c:1060 src/readelf.c:1077 msgid "(current)" msgstr "(actual)" -#: src/readelf.c:1062 +#: src/readelf.c:1064 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:1065 +#: src/readelf.c:1067 #, c-format msgid " ABI Version: %hhd\n" msgstr " Versión ABI: %hhd\n" -#: src/readelf.c:1068 +#: src/readelf.c:1070 msgid " Type: " msgstr " Tipo: " -#: src/readelf.c:1071 +#: src/readelf.c:1073 #, c-format msgid " Machine: %s\n" msgstr " Máquina: %s\n" -#: src/readelf.c:1073 +#: src/readelf.c:1075 #, c-format msgid " Version: %d %s\n" msgstr " Versión: %d %s\n" -#: src/readelf.c:1077 +#: src/readelf.c:1079 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Dirección de punto de entrada: %#<PRIx64>\n" -#: src/readelf.c:1080 +#: src/readelf.c:1082 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n" -#: src/readelf.c:1081 src/readelf.c:1084 +#: src/readelf.c:1083 src/readelf.c:1086 msgid "(bytes into file)" msgstr " (bytes en el archivo)" -#: src/readelf.c:1083 +#: src/readelf.c:1085 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n" -#: src/readelf.c:1086 +#: src/readelf.c:1088 #, c-format msgid " Flags: %s\n" msgstr " Indicadores: %s\n" -#: src/readelf.c:1089 +#: src/readelf.c:1091 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n" -#: src/readelf.c:1090 src/readelf.c:1093 src/readelf.c:1110 +#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112 msgid "(bytes)" msgstr "(bytes)" -#: src/readelf.c:1092 +#: src/readelf.c:1094 #, 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:1095 +#: src/readelf.c:1097 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>" -#: src/readelf.c:1102 +#: src/readelf.c:1104 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> in [0].sh_info)" -#: src/readelf.c:1105 src/readelf.c:1122 src/readelf.c:1136 +#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138 msgid " ([0] not available)" msgstr " ([0] no disponible)" -#: src/readelf.c:1109 +#: src/readelf.c:1111 #, 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:1112 +#: src/readelf.c:1114 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>" -#: src/readelf.c:1119 +#: src/readelf.c:1121 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> en [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1132 +#: src/readelf.c:1134 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> en [0].sh_link)" -#: src/readelf.c:1140 +#: src/readelf.c:1142 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4344,19 +4352,19 @@ msgstr "" " Ãndice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n" "\n" -#: src/readelf.c:1144 +#: src/readelf.c:1146 #, 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:1191 src/readelf.c:1399 +#: src/readelf.c:1193 src/readelf.c:1401 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" -#: src/readelf.c:1194 +#: src/readelf.c:1196 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4365,16 +4373,16 @@ msgstr "" "Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n" "\n" -#: src/readelf.c:1203 +#: src/readelf.c:1205 #, 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:1206 +#: src/readelf.c:1208 msgid "Section Headers:" msgstr "encabezamientos de sección:" -#: src/readelf.c:1209 +#: src/readelf.c:1211 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4382,7 +4390,7 @@ msgstr "" "[Nr] Nombre Tipo Dirección Off Tamaño Inf Al " "Enlace banderas ES" -#: src/readelf.c:1211 +#: src/readelf.c:1213 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4390,36 +4398,36 @@ msgstr "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" -#: src/readelf.c:1216 +#: src/readelf.c:1218 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1218 +#: src/readelf.c:1220 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1294 +#: src/readelf.c:1296 #, 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:1305 +#: src/readelf.c:1307 #, 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:1323 +#: src/readelf.c:1325 msgid "Program Headers:" msgstr "encabezamientos de programa:" -#: src/readelf.c:1325 +#: src/readelf.c:1327 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:1328 +#: src/readelf.c:1330 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4427,12 +4435,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:1385 +#: src/readelf.c:1387 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Solicitando intérprete de programa: %s]\n" -#: src/readelf.c:1412 +#: src/readelf.c:1414 msgid "" "\n" " Section to Segment mapping:\n" @@ -4442,12 +4450,12 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1423 src/unstrip.c:1973 src/unstrip.c:2015 src/unstrip.c:2022 +#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" -#: src/readelf.c:1566 +#: src/readelf.c:1571 #, c-format msgid "" "\n" @@ -4462,7 +4470,7 @@ msgstr[1] "" "\n" "Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1571 +#: src/readelf.c:1576 #, c-format msgid "" "\n" @@ -4477,31 +4485,31 @@ msgstr[1] "" "\n" "Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1579 +#: src/readelf.c:1584 msgid "<INVALID SYMBOL>" msgstr "<SÃMBOLO INVÃLIDO>" -#: src/readelf.c:1593 +#: src/readelf.c:1598 msgid "<INVALID SECTION>" msgstr "<SECCIÓN INVÃLIDA>" -#: src/readelf.c:1616 src/readelf.c:2343 src/readelf.c:3444 src/readelf.c:12310 -#: src/readelf.c:12317 src/readelf.c:12361 src/readelf.c:12368 +#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371 +#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 +#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" -#: src/readelf.c:1765 src/readelf.c:2415 src/readelf.c:2673 src/readelf.c:2749 -#: src/readelf.c:3053 src/readelf.c:3127 src/readelf.c:5322 +#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754 +#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr ".debug_line section inválida" -#: src/readelf.c:1768 +#: src/readelf.c:1773 #, c-format msgid "" "\n" @@ -4522,36 +4530,36 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:1778 +#: src/readelf.c:1783 msgid " Type Value\n" msgstr " Tipo Valor\n" -#: src/readelf.c:1802 +#: src/readelf.c:1807 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteca compartida: [%s]\n" -#: src/readelf.c:1807 +#: src/readelf.c:1812 #, c-format msgid "Library soname: [%s]\n" msgstr "Nombre-so de la biblioteca: [%s]\n" -#: src/readelf.c:1812 +#: src/readelf.c:1817 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath de la biblioteca: [%s]\n" -#: src/readelf.c:1817 +#: src/readelf.c:1822 #, c-format msgid "Library runpath: [%s]\n" msgstr "Ruta de ejecución de la biblioteca: [%s]\n" -#: src/readelf.c:1837 +#: src/readelf.c:1842 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bytes)\n" -#: src/readelf.c:1950 src/readelf.c:2140 +#: src/readelf.c:1955 src/readelf.c:2145 #, c-format msgid "" "\n" @@ -4560,7 +4568,7 @@ msgstr "" "\n" "Tabla de sÃmbolos inválida en compensación %#0<PRIx64>\n" -#: src/readelf.c:1968 src/readelf.c:2158 +#: src/readelf.c:1973 src/readelf.c:2163 #, c-format msgid "" "\n" @@ -4585,7 +4593,7 @@ msgstr[1] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:1983 src/readelf.c:2173 +#: src/readelf.c:1988 src/readelf.c:2178 #, c-format msgid "" "\n" @@ -4602,29 +4610,29 @@ msgstr[1] "" "Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene " "entradas %d:\n" -#: src/readelf.c:1993 +#: src/readelf.c:1998 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:1995 +#: src/readelf.c:2000 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:2048 src/readelf.c:2059 src/readelf.c:2072 src/readelf.c:2093 -#: src/readelf.c:2105 src/readelf.c:2239 src/readelf.c:2251 src/readelf.c:2265 -#: src/readelf.c:2287 src/readelf.c:2300 +#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098 +#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270 +#: src/readelf.c:2292 src/readelf.c:2305 msgid "<INVALID RELOC>" msgstr "<REUBIC INVÃLIDA>" -#: src/readelf.c:2183 +#: src/readelf.c:2188 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2185 +#: src/readelf.c:2190 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2423 +#: src/readelf.c:2428 #, c-format msgid "" "\n" @@ -4639,40 +4647,40 @@ msgstr[1] "" "\n" "La tabla de sÃmbolos [%2u] '%s' contiene entradas %u:\n" -#: src/readelf.c:2428 +#: src/readelf.c:2433 #, 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:2436 +#: src/readelf.c:2441 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:2438 +#: src/readelf.c:2443 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:2458 +#: src/readelf.c:2463 #, 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:2546 +#: src/readelf.c:2551 #, c-format msgid "bad dynamic symbol" msgstr "sÃmbolo dinámico erróneo" -#: src/readelf.c:2628 +#: src/readelf.c:2633 msgid "none" msgstr "nada" -#: src/readelf.c:2645 +#: src/readelf.c:2650 msgid "| <unknown>" msgstr "| <desconocido>" -#: src/readelf.c:2676 +#: src/readelf.c:2681 #, c-format msgid "" "\n" @@ -4693,17 +4701,17 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2697 +#: src/readelf.c:2702 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n" -#: src/readelf.c:2710 +#: src/readelf.c:2715 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n" -#: src/readelf.c:2753 +#: src/readelf.c:2758 #, c-format msgid "" "\n" @@ -4724,19 +4732,19 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2781 +#: src/readelf.c:2786 #, 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:2796 +#: src/readelf.c:2801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Principal %d: %s\n" #. Print the header. -#: src/readelf.c:3057 +#: src/readelf.c:3062 #, c-format msgid "" "\n" @@ -4757,15 +4765,15 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'" -#: src/readelf.c:3085 +#: src/readelf.c:3090 msgid " 0 *local* " msgstr " 0 *local* " -#: src/readelf.c:3090 +#: src/readelf.c:3095 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:3132 +#: src/readelf.c:3137 #, c-format msgid "" "\n" @@ -4790,22 +4798,22 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:3154 +#: src/readelf.c:3159 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Longitud Número % of total Cobertura\n" -#: src/readelf.c:3156 +#: src/readelf.c:3161 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3163 +#: src/readelf.c:3168 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3176 +#: src/readelf.c:3181 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4814,37 +4822,37 @@ msgstr "" " Número promedio de pruebas: búsqueda exitosa: %f\n" " búsqueda sin éxito: %f\n" -#: src/readelf.c:3194 src/readelf.c:3258 src/readelf.c:3324 +#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329 #, 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:3202 +#: src/readelf.c:3207 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3231 +#: src/readelf.c:3236 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3266 +#: src/readelf.c:3271 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3297 +#: src/readelf.c:3302 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3333 +#: src/readelf.c:3338 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3400 +#: src/readelf.c:3405 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4854,7 +4862,7 @@ msgstr "" " Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo " "cambio de dispersión: %u\n" -#: src/readelf.c:3489 +#: src/readelf.c:3494 #, c-format msgid "" "\n" @@ -4871,7 +4879,7 @@ msgstr[1] "" "Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> " "contiene entradas %d:\n" -#: src/readelf.c:3503 +#: src/readelf.c:3508 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4879,7 +4887,7 @@ msgstr "" " Biblioteca Marca de tiempo Indicadores " "de versión de suma de verificación" -#: src/readelf.c:3553 +#: src/readelf.c:3558 #, c-format msgid "" "\n" @@ -4890,102 +4898,102 @@ msgstr "" "Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con " "desplazamiento %#0<PRIx64>:\n" -#: src/readelf.c:3570 +#: src/readelf.c:3575 msgid " Owner Size\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:3599 +#: src/readelf.c:3604 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3638 +#: src/readelf.c:3643 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3643 +#: src/readelf.c:3648 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3692 +#: src/readelf.c:3697 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3695 +#: src/readelf.c:3700 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3698 +#: src/readelf.c:3703 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3708 +#: src/readelf.c:3713 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3711 +#: src/readelf.c:3716 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3781 +#: src/readelf.c:3786 #, fuzzy, c-format msgid "sprintf failure" msgstr "mprotect falló" -#: src/readelf.c:4263 +#: src/readelf.c:4268 msgid "empty block" msgstr "bloque vacÃo" -#: src/readelf.c:4266 +#: src/readelf.c:4271 #, c-format msgid "%zu byte block:" msgstr "bloque de byte %zu:" -#: src/readelf.c:4744 +#: src/readelf.c:4749 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:4808 +#: src/readelf.c:4813 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño" -#: src/readelf.c:4815 +#: src/readelf.c:4820 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño" -#: src/readelf.c:4822 +#: src/readelf.c:4827 #, fuzzy, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño" -#: src/readelf.c:4829 +#: src/readelf.c:4834 #, 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:4926 +#: src/readelf.c:4931 #, 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:4934 +#: src/readelf.c:4939 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n" -#: src/readelf.c:5012 +#: src/readelf.c:5017 #, c-format msgid "" "\n" @@ -4996,7 +5004,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [ Código]\n" -#: src/readelf.c:5020 +#: src/readelf.c:5025 #, c-format msgid "" "\n" @@ -5005,20 +5013,20 @@ msgstr "" "\n" "Sección de abreviatura en compensación %<PRIu64>:\n" -#: src/readelf.c:5033 +#: src/readelf.c:5038 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** error en lectura de abreviatura: %s\n" -#: src/readelf.c:5049 +#: src/readelf.c:5054 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n" -#: src/readelf.c:5082 src/readelf.c:5391 src/readelf.c:5557 src/readelf.c:5942 -#: src/readelf.c:6543 src/readelf.c:8184 src/readelf.c:8854 src/readelf.c:9290 -#: src/readelf.c:9534 src/readelf.c:9699 src/readelf.c:10060 -#: src/readelf.c:10118 +#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948 +#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306 +#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104 +#: src/readelf.c:10164 #, c-format msgid "" "\n" @@ -5027,52 +5035,52 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" -#: src/readelf.c:5095 +#: src/readelf.c:5100 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/readelf.c:5195 src/readelf.c:5219 src/readelf.c:5602 src/readelf.c:8899 +#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5197 src/readelf.c:5234 src/readelf.c:5615 src/readelf.c:8912 +#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5198 src/readelf.c:5243 src/readelf.c:5624 src/readelf.c:8921 +#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5200 src/readelf.c:5253 src/readelf.c:5634 src/readelf.c:8931 +#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:5238 src/readelf.c:5619 src/readelf.c:8916 src/readelf.c:10250 +#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296 #, fuzzy, c-format msgid "Unknown version" msgstr "versión desconocida" -#: src/readelf.c:5248 src/readelf.c:5461 src/readelf.c:5629 src/readelf.c:8926 +#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942 #, fuzzy, c-format msgid "unsupported address size" msgstr "no hay valor de dirección" -#: src/readelf.c:5259 src/readelf.c:5472 src/readelf.c:5639 src/readelf.c:8936 +#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5312 src/readelf.c:5386 +#: src/readelf.c:5317 src/readelf.c:5391 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "no se ha podido obtener contenido de .debug_aranges: %s" -#: src/readelf.c:5327 +#: src/readelf.c:5332 #, c-format msgid "" "\n" @@ -5087,12 +5095,12 @@ msgstr[1] "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n" -#: src/readelf.c:5358 +#: src/readelf.c:5363 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5360 +#: src/readelf.c:5365 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5100,7 +5108,7 @@ msgstr "" " Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5404 src/readelf.c:8211 +#: src/readelf.c:5409 src/readelf.c:8226 #, fuzzy, c-format msgid "" "\n" @@ -5109,152 +5117,152 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:5408 src/readelf.c:5583 src/readelf.c:6567 src/readelf.c:8222 -#: src/readelf.c:8880 +#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237 +#: src/readelf.c:8896 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:5424 +#: src/readelf.c:5429 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5436 +#: src/readelf.c:5441 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5440 +#: src/readelf.c:5445 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5451 +#: src/readelf.c:5456 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5457 +#: src/readelf.c:5462 #, fuzzy, c-format msgid " Address size: %6<PRIu64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5468 +#: src/readelf.c:5473 #, fuzzy, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:5523 +#: src/readelf.c:5528 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5566 +#: src/readelf.c:5572 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:5589 src/readelf.c:8886 +#: src/readelf.c:5595 src/readelf.c:8902 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5644 src/readelf.c:8941 +#: src/readelf.c:5650 src/readelf.c:8957 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5660 src/readelf.c:8957 +#: src/readelf.c:5666 src/readelf.c:8973 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5662 src/readelf.c:8959 +#: src/readelf.c:5668 src/readelf.c:8975 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5668 src/readelf.c:8965 +#: src/readelf.c:5674 src/readelf.c:8981 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5679 src/readelf.c:8976 +#: src/readelf.c:5685 src/readelf.c:8992 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5683 src/readelf.c:8980 +#: src/readelf.c:5689 src/readelf.c:8996 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:5735 +#: src/readelf.c:5741 #, fuzzy, c-format msgid "invalid range list data" msgstr "datos inválidos" -#: src/readelf.c:5920 src/readelf.c:9268 +#: src/readelf.c:5926 src/readelf.c:9284 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5937 +#: src/readelf.c:5943 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:5973 src/readelf.c:9323 +#: src/readelf.c:5979 src/readelf.c:9339 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:5975 src/readelf.c:9325 +#: src/readelf.c:5981 src/readelf.c:9341 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5984 src/readelf.c:9351 src/readelf.c:9377 +#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <DATOS INVÃLIDOS>\n" -#: src/readelf.c:6005 src/readelf.c:9457 +#: src/readelf.c:6011 src/readelf.c:9473 #, fuzzy, c-format msgid "" " [%6tx] base address\n" " " msgstr " [%6tx] (dirección base) %s\n" -#: src/readelf.c:6013 src/readelf.c:9465 +#: src/readelf.c:6019 src/readelf.c:9481 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] lista vacÃa\n" -#: src/readelf.c:6268 +#: src/readelf.c:6274 #, fuzzy msgid " <INVALID DATA>\n" msgstr " <DATOS INVÃLIDOS>\n" -#: src/readelf.c:6521 +#: src/readelf.c:6527 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:6539 +#: src/readelf.c:6545 #, c-format msgid "" "\n" @@ -5264,7 +5272,7 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación " "%#<PRIx64>:\n" -#: src/readelf.c:6589 +#: src/readelf.c:6595 #, c-format msgid "" "\n" @@ -5273,65 +5281,65 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:6682 src/readelf.c:6836 +#: src/readelf.c:6696 src/readelf.c:6850 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:6697 +#: src/readelf.c:6711 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:6703 +#: src/readelf.c:6717 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:6813 +#: src/readelf.c:6827 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:6820 +#: src/readelf.c:6834 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:6857 +#: src/readelf.c:6871 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "Puntero %-26sLSDA: %#<PRIx64>\n" -#: src/readelf.c:6942 +#: src/readelf.c:6956 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:6952 +#: src/readelf.c:6966 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:6974 +#: src/readelf.c:6988 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:7307 +#: src/readelf.c:7321 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "Archivo inválido" -#: src/readelf.c:7311 +#: src/readelf.c:7325 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:7315 +#: src/readelf.c:7329 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:7538 +#: src/readelf.c:7552 #, c-format msgid "" "\n" @@ -5342,12 +5350,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:7588 +#: src/readelf.c:7602 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7607 +#: src/readelf.c:7621 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5360,7 +5368,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:7619 +#: src/readelf.c:7633 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5371,39 +5379,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:7629 src/readelf.c:7792 +#: src/readelf.c:7643 src/readelf.c:7806 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:7656 +#: src/readelf.c:7670 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7685 +#: src/readelf.c:7699 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:7694 +#: src/readelf.c:7708 #, 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:7732 +#: src/readelf.c:7746 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:7740 +#: src/readelf.c:7754 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7784 +#: src/readelf.c:7798 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5414,7 +5422,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:7835 +#: src/readelf.c:7850 #, fuzzy, c-format msgid "" "\n" @@ -5424,18 +5432,18 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" -#: src/readelf.c:8167 +#: src/readelf.c:8182 #, fuzzy, c-format msgid "unknown form: %s" msgstr "Forma %<PRIx64> desconocida" -#: src/readelf.c:8198 +#: src/readelf.c:8213 #, c-format msgid "cannot get line data section data: %s" msgstr "No se puede obtener sección de datos de lÃnea: %s" #. Print what we got so far. -#: src/readelf.c:8300 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "" "\n" @@ -5466,34 +5474,34 @@ msgstr "" "\n" "Códigos operativos:\n" -#: src/readelf.c:8322 +#: src/readelf.c:8337 #, 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:8330 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "no hay valor de dirección" -#: src/readelf.c:8338 +#: src/readelf.c:8353 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:8348 +#: src/readelf.c:8363 #, 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:8363 +#: src/readelf.c:8378 #, 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:8374 +#: src/readelf.c:8389 msgid "" "\n" "Directory table:" @@ -5501,12 +5509,12 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:8380 src/readelf.c:8455 +#: src/readelf.c:8395 src/readelf.c:8470 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8449 +#: src/readelf.c:8464 #, fuzzy msgid "" "\n" @@ -5515,7 +5523,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:8510 +#: src/readelf.c:8525 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5523,7 +5531,7 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:8545 +#: src/readelf.c:8560 msgid "" "\n" "Line number statements:" @@ -5531,121 +5539,121 @@ msgstr "" "\n" " Declaraciones de número de LÃnea:" -#: src/readelf.c:8568 +#: src/readelf.c:8583 #, 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:8602 +#: src/readelf.c:8617 #, 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:8606 +#: src/readelf.c:8621 #, 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:8609 +#: src/readelf.c:8624 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8627 +#: src/readelf.c:8642 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:8632 +#: src/readelf.c:8647 #, fuzzy msgid " end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:8650 +#: src/readelf.c:8665 #, fuzzy, c-format msgid " set address to " msgstr "Establecer dirección a %s\n" -#: src/readelf.c:8678 +#: src/readelf.c:8693 #, 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:8691 +#: src/readelf.c:8706 #, c-format msgid " set discriminator to %u\n" msgstr " establecer discriminador a %u\n" #. Unknown, ignore it. -#: src/readelf.c:8696 +#: src/readelf.c:8711 #, fuzzy msgid " unknown opcode" msgstr "código operativo desconocido " #. Takes no argument. -#: src/readelf.c:8708 +#: src/readelf.c:8723 msgid " copy" msgstr "Copiar" -#: src/readelf.c:8717 +#: src/readelf.c:8732 #, fuzzy, c-format msgid " advance address by %u to " msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:8721 src/readelf.c:8777 +#: src/readelf.c:8736 src/readelf.c:8792 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8731 +#: src/readelf.c:8746 #, 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:8739 +#: src/readelf.c:8754 #, c-format msgid " set file to %<PRIu64>\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid " set column to %<PRIu64>\n" msgstr " Establecer columna a %<PRIu64>\n" -#: src/readelf.c:8756 +#: src/readelf.c:8771 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "Establecer '%s' a %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:8762 +#: src/readelf.c:8777 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:8773 +#: src/readelf.c:8788 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:8792 +#: src/readelf.c:8807 #, 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:8802 +#: src/readelf.c:8817 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" #. Takes no argument. -#: src/readelf.c:8807 +#: src/readelf.c:8822 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:8816 +#: src/readelf.c:8831 #, c-format msgid " set isa to %u\n" msgstr " establecer isa para %u\n" @@ -5653,105 +5661,105 @@ 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:8825 +#: src/readelf.c:8840 #, 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:8863 +#: src/readelf.c:8879 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9032 +#: src/readelf.c:9048 #, fuzzy, c-format msgid "invalid loclists data" msgstr "datos inválidos" -#: src/readelf.c:9285 +#: src/readelf.c:9301 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9492 src/readelf.c:10506 +#: src/readelf.c:9508 src/readelf.c:10552 msgid " <INVALID DATA>\n" msgstr " <DATOS INVÃLIDOS>\n" -#: src/readelf.c:9546 src/readelf.c:9709 +#: src/readelf.c:9563 src/readelf.c:9726 #, c-format msgid "cannot get macro information section data: %s" msgstr "no es posible obtener datos de la sección de macro información: %s" -#: src/readelf.c:9626 +#: src/readelf.c:9643 #, 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:9649 +#: src/readelf.c:9666 #, 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:9750 +#: src/readelf.c:9767 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:9762 +#: src/readelf.c:9779 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:9768 src/readelf.c:10625 +#: src/readelf.c:9785 src/readelf.c:10672 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9775 +#: src/readelf.c:9792 #, fuzzy, c-format -msgid " Flag: 0x%<PRIx8>\n" +msgid " Flag: 0x%<PRIx8>" msgstr " Dirección de punto de entrada: %#<PRIx64>\n" -#: src/readelf.c:9778 +#: src/readelf.c:9821 #, fuzzy, c-format msgid " Offset length: %<PRIu8>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:9786 +#: src/readelf.c:9829 #, fuzzy, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:9811 +#: src/readelf.c:9854 #, fuzzy, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " opcódigo con parámetro %<PRIu8> desconocido:" -#: src/readelf.c:9818 +#: src/readelf.c:9861 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:9830 +#: src/readelf.c:9873 #, fuzzy, c-format msgid " %<PRIu8> arguments:" msgstr " [%*<PRIuFAST8>] argumento %hhu \n" -#: src/readelf.c:9845 +#: src/readelf.c:9888 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10046 +#: src/readelf.c:10089 #, 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:10088 +#: src/readelf.c:10133 #, c-format msgid "" "\n" @@ -5762,37 +5770,37 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " %*s String\n" -#: src/readelf.c:10103 +#: src/readelf.c:10148 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:10131 +#: src/readelf.c:10177 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/readelf.c:10230 +#: src/readelf.c:10276 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10232 +#: src/readelf.c:10278 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10246 +#: src/readelf.c:10292 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10255 +#: src/readelf.c:10301 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10309 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5801,7 +5809,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10411 +#: src/readelf.c:10457 #, c-format msgid "" "\n" @@ -5810,22 +5818,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10434 +#: src/readelf.c:10480 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:10446 +#: src/readelf.c:10492 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:10461 +#: src/readelf.c:10507 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:10474 +#: src/readelf.c:10520 msgid "" "\n" " Call site table:" @@ -5833,7 +5841,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:10488 +#: src/readelf.c:10534 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5846,12 +5854,12 @@ msgstr "" " Landing pad: %#<PRIx64>\n" " Action: %u\n" -#: src/readelf.c:10561 +#: src/readelf.c:10607 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:10587 +#: src/readelf.c:10634 #, fuzzy, c-format msgid "" "\n" @@ -5860,37 +5868,37 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:10616 +#: src/readelf.c:10663 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10634 +#: src/readelf.c:10681 #, fuzzy, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10641 +#: src/readelf.c:10688 #, fuzzy, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10648 +#: src/readelf.c:10695 #, fuzzy, c-format msgid " address offset: %#<PRIx32>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:10655 +#: src/readelf.c:10702 #, fuzzy, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:10662 +#: src/readelf.c:10709 #, fuzzy, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:10676 +#: src/readelf.c:10723 #, fuzzy, c-format msgid "" "\n" @@ -5899,7 +5907,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:10701 +#: src/readelf.c:10748 #, fuzzy, c-format msgid "" "\n" @@ -5908,7 +5916,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:10730 +#: src/readelf.c:10777 #, fuzzy, c-format msgid "" "\n" @@ -5917,7 +5925,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n" -#: src/readelf.c:10762 +#: src/readelf.c:10809 #, fuzzy, c-format msgid "" "\n" @@ -5926,18 +5934,18 @@ msgstr "" "\n" "Tabla de sÃmbolos inválida en compensación %#0<PRIx64>\n" -#: src/readelf.c:10900 +#: src/readelf.c:10947 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:11263 src/readelf.c:11885 src/readelf.c:11996 -#: src/readelf.c:12054 +#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043 +#: src/readelf.c:12101 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:11626 +#: src/readelf.c:11673 #, c-format msgid "" "\n" @@ -5946,21 +5954,21 @@ msgstr "" "\n" "%*s... <repeats %u more times> ..." -#: src/readelf.c:12133 +#: src/readelf.c:12180 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:12151 +#: src/readelf.c:12209 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12201 +#: src/readelf.c:12261 #, 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:12228 +#: src/readelf.c:12288 #, c-format msgid "" "\n" @@ -5969,7 +5977,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:12251 +#: src/readelf.c:12311 #, c-format msgid "" "\n" @@ -5978,7 +5986,7 @@ msgstr "" "\n" "Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:12297 +#: src/readelf.c:12358 #, fuzzy, c-format msgid "" "\n" @@ -5987,12 +5995,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12324 src/readelf.c:12375 +#: src/readelf.c:12385 src/readelf.c:12436 #, 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:12329 +#: src/readelf.c:12390 #, fuzzy, c-format msgid "" "\n" @@ -6002,7 +6010,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12334 +#: src/readelf.c:12395 #, fuzzy, c-format msgid "" "\n" @@ -6013,7 +6021,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12348 +#: src/readelf.c:12409 #, fuzzy, c-format msgid "" "\n" @@ -6022,7 +6030,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12380 +#: src/readelf.c:12441 #, fuzzy, c-format msgid "" "\n" @@ -6032,7 +6040,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12385 +#: src/readelf.c:12446 #, fuzzy, c-format msgid "" "\n" @@ -6043,7 +6051,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación " "%#0<PRIx64>:\n" -#: src/readelf.c:12434 +#: src/readelf.c:12495 #, c-format msgid "" "\n" @@ -6052,7 +6060,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:12463 +#: src/readelf.c:12524 #, c-format msgid "" "\n" @@ -6061,12 +6069,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:12520 +#: src/readelf.c:12581 #, 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:12523 +#: src/readelf.c:12584 #, c-format msgid "" "\n" @@ -6075,7 +6083,7 @@ msgstr "" "\n" "Archivo '%s' no tiene Ãndice de sÃmbolo\n" -#: src/readelf.c:12527 +#: src/readelf.c:12588 #, fuzzy, c-format msgid "" "\n" @@ -6084,12 +6092,12 @@ msgstr "" "\n" "Ãndice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:12545 +#: src/readelf.c:12606 #, 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:12550 +#: src/readelf.c:12611 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6156,12 +6164,12 @@ msgstr "Radical inválido: %s" msgid "%s: file format not recognized" msgstr "%s: No se reconoce el formato del fichero" -#: src/size.c:416 src/size.c:549 +#: src/size.c:418 src/size.c:551 #, c-format msgid " (ex %s)" msgstr " (ex %s)" -#: src/size.c:574 +#: src/size.c:576 msgid "(TOTALS)\n" msgstr "(TOTALES)\n" @@ -6350,94 +6358,114 @@ msgstr "mprotect falló" msgid "Skipping section %zd '%s' data outside file" msgstr "" -#: src/strip.c:70 +#: src/strip.c:71 msgid "Place stripped output into FILE" msgstr "Colocar la salida obtenida en FICHERO" -#: src/strip.c:71 +#: src/strip.c:72 msgid "Extract the removed sections into FILE" msgstr "Extraer secciones eliminadas en FICHERO" -#: src/strip.c:72 +#: src/strip.c:73 msgid "Embed name FILE instead of -f argument" msgstr "Incorporar nombre FILE en lugar de argumento -f" -#: src/strip.c:76 +#: src/strip.c:77 msgid "Remove all debugging symbols" msgstr "Elimina todos los sÃmbolos de depuración" -#: src/strip.c:80 +#: src/strip.c:81 msgid "Remove section headers (not recommended)" msgstr "Quitar sección de cabeceras (no recomendado)" -#: src/strip.c:82 +#: src/strip.c:83 msgid "Copy modified/access timestamps to the output" msgstr "Copiar marcas de tiempo modificadas/acceso a la salida" -#: src/strip.c:84 +#: src/strip.c:85 msgid "" "Resolve all trivial relocations between debug sections if the removed " "sections are placed in a debug file (only relevant for ET_REL files, " "operation is not reversable, needs -f)" msgstr "" -#: src/strip.c:86 +#: src/strip.c:87 +msgid "" +"Similar to --reloc-debug-sections, but resolve all trivial relocations " +"between debug sections in place. No other stripping is performed (operation " +"is not reversable, incompatible with -f, -g, --remove-comment and --remove-" +"section)" +msgstr "" + +#: src/strip.c:89 msgid "Remove .comment section" msgstr "Quitar sección de comentario" -#: src/strip.c:87 +#: src/strip.c:90 msgid "" "Remove the named section. SECTION is an extended wildcard pattern. May be " "given more than once. Only non-allocated sections can be removed." msgstr "" -#: src/strip.c:88 +#: src/strip.c:91 msgid "" "Keep the named section. SECTION is an extended wildcard pattern. May be " "given more than once." msgstr "" #. Short description of program. -#: src/strip.c:95 +#: src/strip.c:98 msgid "Discard symbols from object files." msgstr "Descarta sÃmbolos de archivos objeto." -#: src/strip.c:241 +#: src/strip.c:247 #, c-format msgid "--reloc-debug-sections used without -f" msgstr "" -#: src/strip.c:255 +#: src/strip.c:253 +#, c-format +msgid "" +"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --" +"remove-section" +msgstr "" + +#: src/strip.c:267 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" msgstr "Sólo se permite ingresar un archivo junto con '-o' y '-f'" -#: src/strip.c:278 +#: src/strip.c:290 #, c-format msgid "-f option specified twice" msgstr "opción -f especificada dos veces" -#: src/strip.c:287 +#: src/strip.c:299 #, c-format msgid "-F option specified twice" msgstr "opción -F especificada dos veces" -#: src/strip.c:346 +#: src/strip.c:362 #, fuzzy, c-format msgid "cannot both keep and remove .comment section" msgstr "Quitar sección de comentario" -#: src/strip.c:371 src/strip.c:395 +#: src/strip.c:574 +#, fuzzy, c-format +msgid "bad relocation" +msgstr "Mostrar reubicaciones" + +#: src/strip.c:726 src/strip.c:750 #, c-format msgid "cannot stat input file '%s'" msgstr "no sepuede stat fichero de entrada '%s'" -#: src/strip.c:385 +#: src/strip.c:740 #, c-format msgid "while opening '%s'" msgstr "mientras se abrÃa '%s'" -#: src/strip.c:423 +#: src/strip.c:778 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo" @@ -6448,132 +6476,132 @@ msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo" #. result = handle_ar (fd, elf, NULL, fname, #. preserve_dates ? tv : NULL); #. -#: src/strip.c:435 +#: src/strip.c:790 #, fuzzy, c-format msgid "%s: no support for stripping archive" msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo" -#: src/strip.c:534 +#: src/strip.c:1001 #, c-format msgid "cannot open EBL backend" msgstr "No se puede abrir el segundo plano EBL" -#: src/strip.c:579 +#: src/strip.c:1046 #, fuzzy, c-format msgid "cannot get number of phdrs" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/strip.c:595 src/strip.c:619 -#, c-format -msgid "cannot create new file '%s': %s" +#: src/strip.c:1060 src/strip.c:1103 +#, fuzzy, c-format +msgid "cannot create new ehdr for file '%s': %s" msgstr "no se puede crear fichero nuevo '%s': %s" -#: src/strip.c:701 +#: src/strip.c:1070 src/strip.c:1113 +#, fuzzy, c-format +msgid "cannot create new phdr for file '%s': %s" +msgstr "no se puede crear fichero nuevo '%s': %s" + +#: src/strip.c:1194 #, c-format msgid "illformed file '%s'" msgstr "Fichero illformed '%s'" -#: src/strip.c:711 +#: src/strip.c:1204 #, fuzzy, c-format msgid "Cannot remove allocated section '%s'" msgstr "No se puede asignar sección PLT: %s" -#: src/strip.c:720 +#: src/strip.c:1213 #, fuzzy, c-format msgid "Cannot both keep and remove section '%s'" msgstr "No se puede añadir nueva sección: %s" -#: src/strip.c:1076 src/strip.c:1210 +#: src/strip.c:1573 src/strip.c:1688 #, c-format msgid "while generating output file: %s" msgstr "al generar fichero de salida: %s" -#: src/strip.c:1141 +#: src/strip.c:1637 #, fuzzy, c-format -msgid "%s: error while getting shdrstrndx: %s" +msgid "%s: error while updating ELF header: %s" msgstr "%s: error al crear encabezamiento ELF: %s" -#: src/strip.c:1157 +#: src/strip.c:1646 #, fuzzy, c-format -msgid "%s: error getting zero section: %s" -msgstr "%s: error al leer el fichero: %s" +msgid "%s: error while getting shdrstrndx: %s" +msgstr "%s: error al crear encabezamiento ELF: %s" -#: src/strip.c:1166 +#: src/strip.c:1654 src/strip.c:2534 #, fuzzy, c-format -msgid "%s: error while updating zero section: %s" -msgstr "%s: error al leer el fichero: %s" - -#: src/strip.c:1176 src/strip.c:2292 -#, c-format -msgid "%s: error while creating ELF header: %s" +msgid "%s: error updating shdrstrndx: %s" msgstr "%s: error al crear encabezamiento ELF: %s" -#: src/strip.c:1193 +#: src/strip.c:1671 #, c-format msgid "while preparing output for '%s'" msgstr "al preparar salida para '%s'" -#: src/strip.c:1255 src/strip.c:1318 +#: src/strip.c:1733 src/strip.c:1796 #, c-format msgid "while create section header section: %s" msgstr "al crear sección de encabezamiento de sección: %s" -#: src/strip.c:1264 +#: src/strip.c:1742 #, c-format msgid "cannot allocate section data: %s" msgstr "no se puede asignar espacio para los datos: %s" -#: src/strip.c:1330 +#: src/strip.c:1808 #, c-format msgid "while create section header string table: %s" msgstr "al crear tabla de cadenas de encabezamiento de sección: %s" -#: src/strip.c:1337 +#: src/strip.c:1815 #, fuzzy, c-format msgid "no memory to create section header string table" msgstr "al crear tabla de cadenas de encabezamiento de sección: %s" -#: src/strip.c:1547 +#: src/strip.c:2027 #, c-format msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2078 -#, fuzzy, c-format -msgid "bad relocation" -msgstr "Mostrar reubicaciones" - -#: src/strip.c:2203 src/strip.c:2316 +#: src/strip.c:2450 src/strip.c:2558 #, c-format msgid "while writing '%s': %s" msgstr "al escribir '%s': %s" -#: src/strip.c:2214 +#: src/strip.c:2461 #, c-format msgid "while creating '%s'" msgstr "al crear '%s'" -#: src/strip.c:2237 +#: src/strip.c:2484 #, c-format msgid "while computing checksum for debug information" msgstr "al computar la suma de verificación para información de depuración" -#: src/strip.c:2301 +#: src/strip.c:2525 +#, c-format +msgid "%s: error while creating ELF header: %s" +msgstr "%s: error al crear encabezamiento ELF: %s" + +#: src/strip.c:2543 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: error al leer el fichero: %s" -#: src/strip.c:2341 src/strip.c:2361 +#: src/strip.c:2583 src/strip.c:2603 #, c-format msgid "while writing '%s'" msgstr "al escribir '%s'" -#: src/strip.c:2398 src/strip.c:2405 +#: src/strip.c:2640 src/strip.c:2647 #, c-format msgid "error while finishing '%s': %s" msgstr "Error al terminar '%s': %s" -#: src/strip.c:2422 src/strip.c:2498 +#: src/strip.c:2664 src/strip.c:2740 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "no es posible establecer acceso y fecha de modificación de '%s'" @@ -6661,196 +6689,226 @@ msgstr "no se puede crear el encabezamiento ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "No se puede encontrar la sección: %s" -#: src/unstrip.c:257 +#: src/unstrip.c:248 src/unstrip.c:2034 +#, c-format +msgid "cannot get ELF header: %s" +msgstr "no se puede leer encabezamiento ELF: %s" + +#: src/unstrip.c:258 #, fuzzy, c-format msgid "cannot get new zero section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/unstrip.c:260 +#: src/unstrip.c:261 #, fuzzy, c-format msgid "cannot update new zero section: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:264 +#: src/unstrip.c:265 #, c-format msgid "cannot copy ELF header: %s" msgstr "no se puede copiar encabezamiento ELF: %s" -#: src/unstrip.c:268 src/unstrip.c:1962 src/unstrip.c:2005 +#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/unstrip.c:273 src/unstrip.c:1966 +#: src/unstrip.c:274 src/unstrip.c:2056 #, c-format msgid "cannot create program headers: %s" msgstr "No pueden crear encabezamientos de programa: %s" -#: src/unstrip.c:279 +#: src/unstrip.c:280 #, c-format msgid "cannot copy program header: %s" msgstr "no puede copiar encabezamiento de programa: %s" -#: src/unstrip.c:289 +#: src/unstrip.c:290 #, c-format msgid "cannot copy section header: %s" msgstr "no se puede copiar encabezamiento de sección: %s" -#: src/unstrip.c:292 src/unstrip.c:1597 +#: src/unstrip.c:293 src/unstrip.c:1665 #, c-format msgid "cannot get section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:294 src/unstrip.c:1599 +#: src/unstrip.c:295 src/unstrip.c:1667 #, c-format msgid "cannot copy section data: %s" msgstr "no pueden copiar datos de sección: %s" -#: src/unstrip.c:318 +#: src/unstrip.c:319 #, c-format msgid "cannot create directory '%s'" msgstr "no se puede crear el directorio '%s'" -#: src/unstrip.c:390 src/unstrip.c:820 src/unstrip.c:1631 +#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702 #, c-format msgid "cannot get symbol table entry: %s" msgstr "no se puede obtener entrada de tabla de sÃmbolos: %s" -#: src/unstrip.c:406 src/unstrip.c:631 src/unstrip.c:652 src/unstrip.c:664 -#: src/unstrip.c:1652 src/unstrip.c:1828 src/unstrip.c:1852 +#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682 +#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942 #, c-format msgid "cannot update symbol table: %s" msgstr "no se puede actualizar tabla de sÃmbolos: %s" -#: src/unstrip.c:416 +#: src/unstrip.c:417 #, c-format msgid "cannot update section header: %s" msgstr "no se puede actualizar encabezamiento de sección: %s" -#: src/unstrip.c:455 src/unstrip.c:466 +#: src/unstrip.c:459 src/unstrip.c:473 #, c-format msgid "cannot update relocation: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:554 +#: src/unstrip.c:570 #, c-format msgid "cannot get symbol version: %s" msgstr "no se puede obtener versión de sÃmbolo: %s" -#: src/unstrip.c:567 +#: src/unstrip.c:583 #, fuzzy, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "tipo de sección inesperado en [%Zu] con sh_link para symtab" -#: src/unstrip.c:826 +#: src/unstrip.c:851 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "compensación de cadena inválida en sÃmbolo [%Zu]" -#: src/unstrip.c:984 src/unstrip.c:1334 +#: src/unstrip.c:1009 src/unstrip.c:1398 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "no se puede leer nombre [%Zu]: %s" -#: src/unstrip.c:1025 src/unstrip.c:1044 src/unstrip.c:1082 +#: src/unstrip.c:1024 +#, fuzzy, c-format +msgid "bad sh_link for group section: %s" +msgstr ".debug_line section inválida" + +#: src/unstrip.c:1030 +#, fuzzy, c-format +msgid "couldn't get shdr for group section: %s" +msgstr "No se puede obtener encabezamiento de sección 0th: %s" + +#: src/unstrip.c:1035 +#, fuzzy, c-format +msgid "bad data for group symbol section: %s" +msgstr "no se puede obtener sección para sÃmbolos\n" + +#: src/unstrip.c:1041 +#, fuzzy, c-format +msgid "couldn't get symbol for group section: %s" +msgstr "no se puede obtener versión de sÃmbolo: %s" + +#: src/unstrip.c:1046 +#, fuzzy, c-format +msgid "bad symbol name for group section: %s" +msgstr "No se puede obtener el encabezamiento de sección %zu: %s" + +#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: src/unstrip.c:1062 +#: src/unstrip.c:1125 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 +#: src/unstrip.c:1136 #, c-format msgid "invalid contents in '%s' section" msgstr "contenido inválido en sección '%s'" -#: src/unstrip.c:1128 src/unstrip.c:1456 +#: src/unstrip.c:1192 src/unstrip.c:1524 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "no se puede hallar sección coincidente para [%Zu] '%s'" -#: src/unstrip.c:1253 src/unstrip.c:1268 src/unstrip.c:1535 src/unstrip.c:1787 +#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877 #, c-format msgid "cannot add section name to string table: %s" msgstr "no se puede añadir nombre de sección a tabla de cadenas: %s" -#: src/unstrip.c:1277 +#: src/unstrip.c:1341 #, c-format msgid "cannot update section header string table data: %s" msgstr "" "no se pueden actualizar datos de tabla de cadenas de encabezamiento de " "sección: %s" -#: src/unstrip.c:1305 src/unstrip.c:1309 +#: src/unstrip.c:1369 src/unstrip.c:1373 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "no se puede obtener Ãndice de sección de tabla de cadenas de encabezamiento " "de sección: %s" -#: src/unstrip.c:1313 src/unstrip.c:1317 src/unstrip.c:1550 +#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618 #, c-format msgid "cannot get section count: %s" msgstr "No se puede obtener cuenta de sección: %s" -#: src/unstrip.c:1320 +#: src/unstrip.c:1384 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "más secciones en el archivo despojado que en el archivo de depuración -- " "¿argumentos invertidos?" -#: src/unstrip.c:1379 src/unstrip.c:1471 +#: src/unstrip.c:1446 src/unstrip.c:1539 #, c-format msgid "cannot read section header string table: %s" msgstr "no se puede obtener tabla de cadenas de encabezamiento de sección: %s" -#: src/unstrip.c:1529 +#: src/unstrip.c:1597 #, c-format msgid "cannot add new section: %s" msgstr "No se puede añadir nueva sección: %s" -#: src/unstrip.c:1639 +#: src/unstrip.c:1710 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "sÃmbolo [%Zu] tiene Ãndice de sección inválido" -#: src/unstrip.c:1923 +#: src/unstrip.c:1742 +#, fuzzy, c-format +msgid "group has invalid section index [%zd]" +msgstr "sÃmbolo [%Zu] tiene Ãndice de sección inválido" + +#: src/unstrip.c:2013 #, c-format msgid "cannot read section data: %s" msgstr "no se puede leer la sección de datos: %s" -#: src/unstrip.c:1944 -#, c-format -msgid "cannot get ELF header: %s" -msgstr "no se puede leer encabezamiento ELF: %s" - -#: src/unstrip.c:1952 +#: src/unstrip.c:2042 #, c-format msgid "cannot update ELF header: %s" msgstr "No se puede actualizar encabezamiento ELF: %s" -#: src/unstrip.c:1976 +#: src/unstrip.c:2066 #, c-format msgid "cannot update program header: %s" msgstr "no se puede actualizar encabezamiento de programa: %s" -#: src/unstrip.c:1981 src/unstrip.c:2063 +#: src/unstrip.c:2071 src/unstrip.c:2153 #, c-format msgid "cannot write output file: %s" msgstr "no se puede escribir al archivo de salida: %s" -#: src/unstrip.c:2032 +#: src/unstrip.c:2122 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "datos DWARF no se ajustan para polarización de pre-enlace; considere prelink " "-u" -#: src/unstrip.c:2035 +#: src/unstrip.c:2125 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6858,77 +6916,77 @@ msgstr "" "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere " "prelink -u" -#: src/unstrip.c:2054 src/unstrip.c:2105 src/unstrip.c:2117 src/unstrip.c:2203 +#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "no se puede crear un descriptor ELF: %s" -#: src/unstrip.c:2096 +#: src/unstrip.c:2186 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2098 +#: src/unstrip.c:2188 msgid ", use --force" msgstr "" -#: src/unstrip.c:2121 +#: src/unstrip.c:2211 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2124 +#: src/unstrip.c:2214 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2127 +#: src/unstrip.c:2217 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2130 +#: src/unstrip.c:2220 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2160 +#: src/unstrip.c:2250 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "no se puede hallar archivo obtenido para módulo '%s': %s " -#: src/unstrip.c:2164 +#: src/unstrip.c:2254 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "No se puede abrir el archivo '%s' obtenido para módulo '%s': %s" -#: src/unstrip.c:2179 +#: src/unstrip.c:2269 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "no puede hallar archivo de depuración para módulo '%s': %su" -#: src/unstrip.c:2183 +#: src/unstrip.c:2273 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "No puede abrir archivo de depuración '%s' para módulo '%s': %s" -#: src/unstrip.c:2196 +#: src/unstrip.c:2286 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "No se obtuvo el archivo '%s' de módulo '%s' " -#: src/unstrip.c:2227 +#: src/unstrip.c:2317 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" "No puede almacenar en cache direcciones de sección para módulo '%s': %s" -#: src/unstrip.c:2360 +#: src/unstrip.c:2450 #, c-format msgid "no matching modules found" msgstr "No se encontraron módulos coincidentes" -#: src/unstrip.c:2369 +#: src/unstrip.c:2459 #, c-format msgid "matched more than one module" msgstr "coincidió con más de un módulo" -#: src/unstrip.c:2413 +#: src/unstrip.c:2503 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -6936,7 +6994,7 @@ msgstr "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" -#: src/unstrip.c:2414 +#: src/unstrip.c:2504 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" @@ -7002,6 +7060,14 @@ msgstr "También mostrar nombres de función" msgid "Show instances of inlined functions" msgstr "" +#, fuzzy +#~ msgid "%s: error getting zero section: %s" +#~ msgstr "%s: error al leer el fichero: %s" + +#, fuzzy +#~ msgid "%s: error while updating zero section: %s" +#~ msgstr "%s: error al leer el fichero: %s" + #~ msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" #~ msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" @@ -7524,9 +7590,6 @@ msgstr "" #~ msgid "internal error: non-nobits section follows nobits section" #~ msgstr "error interno: sección non-nobits sigue a sección nobits" -#~ msgid "cannot get header of 0th section: %s" -#~ msgstr "No se puede obtener encabezamiento de sección 0th: %s" - #~ msgid "linker backend didn't specify function to relocate section" #~ msgstr "" #~ "enlazador de segundo plano no especificó función para reubicar sección" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2018-09-14 12:05+0200\n" +"POT-Creation-Date: 2018-11-16 12:42+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" @@ -50,8 +50,8 @@ msgstr "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3409 -#: src/readelf.c:11212 src/unstrip.c:2256 src/unstrip.c:2462 +#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414 +#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552 #, c-format msgid "memory exhausted" msgstr "メモリー消費済ã¿" @@ -293,7 +293,7 @@ msgstr "ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰" msgid ".debug_addr section missing" msgstr ".debug_ranges セクションãŒã‚ã‚Šã¾ã›ã‚“" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2403 +#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493 msgid "Input selection options:" msgstr "é¸æŠžã‚ªãƒ—ションを入力ã—ã¦ãã ã•ã„:" @@ -527,8 +527,8 @@ msgstr "ä¸å½“㪠ELF ファイル" msgid "No backend" msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒã‚ã‚Šã¾ã›ã‚“" -#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:76 -#: libebl/eblobjnotetypename.c:83 libebl/eblobjnotetypename.c:102 +#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77 +#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 #: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:79 msgid "<unknown>" @@ -539,58 +539,58 @@ msgstr "<ä¸æ˜Ž>" msgid "<unknown>: %#<PRIx64>" msgstr "<ä¸æ˜Ž>: %#<PRIx64>" -#: libebl/eblobjnote.c:53 +#: libebl/eblobjnote.c:58 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³" -#: libebl/eblobjnote.c:71 +#: libebl/eblobjnote.c:76 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å" -#: libebl/eblobjnote.c:121 +#: libebl/eblobjnote.c:126 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:123 +#: libebl/eblobjnote.c:128 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:125 +#: libebl/eblobjnote.c:130 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:127 +#: libebl/eblobjnote.c:132 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:129 +#: libebl/eblobjnote.c:134 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:131 +#: libebl/eblobjnote.c:136 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:141 +#: libebl/eblobjnote.c:300 #, c-format msgid " Build ID: " msgstr " ビルト ID: " #. A non-null terminated version string. -#: libebl/eblobjnote.c:152 +#: libebl/eblobjnote.c:311 #, c-format msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:213 +#: libebl/eblobjnote.c:553 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %sã€ABI: " @@ -624,7 +624,7 @@ msgstr "ソース演算åã®å¤§ãã•ãŒç„¡åŠ¹" msgid "invalid size of destination operand" msgstr "宛先演算åã®å¤§ãã•ãŒç„¡åŠ¹" -#: libelf/elf_error.c:87 src/readelf.c:6123 +#: libelf/elf_error.c:87 src/readelf.c:6129 #, c-format msgid "invalid encoding" msgstr "無効ãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰" @@ -711,8 +711,8 @@ msgstr "データ/scnãŒä¸æ•´åˆã§ã™" msgid "invalid section header" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼" -#: libelf/elf_error.c:191 src/readelf.c:9758 src/readelf.c:10329 -#: src/readelf.c:10430 src/readelf.c:10611 +#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375 +#: src/readelf.c:10476 src/readelf.c:10658 #, c-format msgid "invalid data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" @@ -1046,12 +1046,12 @@ msgstr "アーカイブ㫠stat ã§ãã¾ã›ã‚“: '%s'" msgid "no entry %s in archive\n" msgstr "アーカイブã«é …ç›® %s ãŒã‚ã‚Šã¾ã›ã‚“\n" -#: src/ar.c:472 src/ar.c:917 src/ar.c:1121 +#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 #, c-format msgid "cannot create hash table" msgstr "ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルを生æˆã§ãã¾ã›ã‚“" -#: src/ar.c:479 src/ar.c:924 src/ar.c:1130 +#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 #, c-format msgid "cannot insert into hash table" msgstr "ãƒãƒƒã‚·ãƒ¥ã«æŒ¿å…¥ã§ãã¾ã›ã‚“" @@ -1061,97 +1061,97 @@ msgstr "ãƒãƒƒã‚·ãƒ¥ã«æŒ¿å…¥ã§ãã¾ã›ã‚“" msgid "cannot stat '%s'" msgstr "'%s' ã« stat ã§ãã¾ã›ã‚“" -#: src/ar.c:583 +#: src/ar.c:589 #, c-format msgid "cannot read content of %s: %s" msgstr "%s ã®å†…容をèªã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“: %s" -#: src/ar.c:626 +#: src/ar.c:632 #, c-format msgid "cannot open %.*s" msgstr "%.*s ã‚’é–‹ã‘ã¾ã›ã‚“" -#: src/ar.c:648 +#: src/ar.c:654 #, c-format msgid "failed to write %s" msgstr "%s ã¸ã®æ›¸è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: src/ar.c:660 +#: src/ar.c:666 #, c-format msgid "cannot change mode of %s" msgstr "%s ã®ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã§ãã¾ã›ã‚“" -#: src/ar.c:676 +#: src/ar.c:682 #, c-format msgid "cannot change modification time of %s" msgstr "%s ã®æ›´æ–°æ™‚間を変更ã§ãã¾ã›ã‚“" -#: src/ar.c:722 +#: src/ar.c:728 #, c-format msgid "cannot rename temporary file to %.*s" msgstr "一時ファイルを %.*s ã«åå‰å¤‰æ›´ã§ãã¾ã›ã‚“" -#: src/ar.c:758 src/ar.c:1009 src/ar.c:1410 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "æ–°ã—ã„ファイルを生æˆã§ãã¾ã›ã‚“" -#: src/ar.c:1212 +#: src/ar.c:1218 #, c-format msgid "position member %s not found" msgstr "ä½ç½®ãƒ¡ãƒ³ãƒãƒ¼ %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: src/ar.c:1222 +#: src/ar.c:1228 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: é …ç›® %s ãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã«ã‚ã‚Šã¾ã›ã‚“!\n" -#: src/ar.c:1251 src/objdump.c:241 +#: src/ar.c:1257 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "%s ã‚’é–‹ã‘ã¾ã›ã‚“" -#: src/ar.c:1256 +#: src/ar.c:1262 #, c-format msgid "cannot stat %s" msgstr "%s ã‚’ stat ã§ãã¾ã›ã‚“" -#: src/ar.c:1262 +#: src/ar.c:1268 #, c-format msgid "%s is no regular file" msgstr "%s ã¯ä¸€èˆ¬ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: src/ar.c:1275 +#: src/ar.c:1281 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "%s ã® ELF 記述åを得られã¾ã›ã‚“: %s\n" -#: src/ar.c:1295 +#: src/ar.c:1301 #, c-format msgid "cannot read %s: %s" msgstr "%s ã‚’èªã¿ã¾ã›ã‚“: %s" -#: src/ar.c:1470 +#: src/ar.c:1476 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/ar.c:1476 +#: src/ar.c:1482 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/ar.c:1482 +#: src/ar.c:1488 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/ar.c:1488 +#: src/ar.c:1494 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/ar.c:1494 +#: src/ar.c:1500 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "%s ã‚’é–‹ã‘ã¾ã›ã‚“" @@ -1373,8 +1373,8 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "" #: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141 -#: src/size.c:272 src/strings.c:185 src/strip.c:517 src/strip.c:554 -#: src/unstrip.c:2052 src/unstrip.c:2081 +#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021 +#: src/unstrip.c:2142 src/unstrip.c:2171 #, c-format msgid "cannot open '%s'" msgstr "'%s' ã‚’é–‹ã‘ã¾ã›ã‚“" @@ -1389,7 +1389,7 @@ msgstr "" msgid "cannot create EBL descriptor for '%s'" msgstr "" -#: src/elfcmp.c:761 src/findtextrel.c:393 +#: src/elfcmp.c:761 src/findtextrel.c:394 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "" @@ -1404,7 +1404,7 @@ msgstr "" msgid "cannot get relocation: %s" msgstr "" -#: src/elfcompress.c:115 src/strip.c:296 src/unstrip.c:121 +#: src/elfcompress.c:115 src/strip.c:308 src/unstrip.c:121 #, c-format msgid "-o option specified twice" msgstr "-o オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™" @@ -1458,7 +1458,7 @@ msgid "" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1324 src/strip.c:90 +#: src/elfcompress.c:1324 src/strip.c:93 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "å°‘ã—壊れ㟠ELF ファイルをå–り扱ã†ãŸã‚ã«ãƒ«ãƒ¼ãƒ«ã‚’å°‘ã—ç·©å’Œã™ã‚‹" @@ -1679,7 +1679,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1494 src/elflint.c:1545 src/elflint.c:1651 #: src/elflint.c:1987 src/elflint.c:2313 src/elflint.c:2932 src/elflint.c:3095 -#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4401 +#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4431 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n" @@ -3108,194 +3108,197 @@ msgid "" "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n" msgstr "" -#: src/elflint.c:4344 +#: src/elflint.c:4370 #, c-format -msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n" +msgid "" +"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " +"offset %zu\n" msgstr "" -#: src/elflint.c:4348 +#: src/elflint.c:4375 #, c-format msgid "" -"section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n" +"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " +"'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4365 +#: src/elflint.c:4394 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4384 +#: src/elflint.c:4414 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4387 +#: src/elflint.c:4417 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4408 +#: src/elflint.c:4438 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4415 +#: src/elflint.c:4445 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4418 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" -#: src/elflint.c:4436 +#: src/elflint.c:4466 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4451 +#: src/elflint.c:4481 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4460 +#: src/elflint.c:4490 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" -#: src/elflint.c:4471 +#: src/elflint.c:4501 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4479 +#: src/elflint.c:4509 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4486 +#: src/elflint.c:4516 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4500 +#: src/elflint.c:4530 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4503 +#: src/elflint.c:4533 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4513 +#: src/elflint.c:4543 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4534 +#: src/elflint.c:4564 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4545 +#: src/elflint.c:4575 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4552 +#: src/elflint.c:4582 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4561 src/elflint.c:4584 +#: src/elflint.c:4591 src/elflint.c:4614 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4590 +#: src/elflint.c:4620 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4615 +#: src/elflint.c:4647 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4618 +#: src/elflint.c:4650 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4631 +#: src/elflint.c:4663 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4639 +#: src/elflint.c:4671 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4642 +#: src/elflint.c:4674 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4646 +#: src/elflint.c:4678 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4649 +#: src/elflint.c:4681 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4654 +#: src/elflint.c:4686 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4657 +#: src/elflint.c:4689 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4668 +#: src/elflint.c:4700 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4675 +#: src/elflint.c:4707 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4678 +#: src/elflint.c:4710 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4691 +#: src/elflint.c:4723 #, 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:4725 +#: src/elflint.c:4757 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4751 +#: src/elflint.c:4783 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3319,7 +3322,7 @@ msgstr "" #. Strings for arguments in help texts. #: src/findtextrel.c:74 src/nm.c:108 src/objdump.c:71 src/size.c:80 -#: src/strings.c:87 src/strip.c:98 +#: src/strings.c:87 src/strip.c:101 msgid "[FILE...]" msgstr "[ãµãã„ã‚‹...]" @@ -3338,73 +3341,73 @@ msgstr "" msgid "getting get section header of section %zu: %s" msgstr "" -#: src/findtextrel.c:276 +#: src/findtextrel.c:277 #, c-format msgid "cannot read dynamic section: %s" msgstr "" -#: src/findtextrel.c:297 +#: src/findtextrel.c:298 #, c-format msgid "no text relocations reported in '%s'" msgstr "" -#: src/findtextrel.c:309 +#: src/findtextrel.c:310 #, c-format msgid "while reading ELF file" msgstr "" -#: src/findtextrel.c:313 +#: src/findtextrel.c:314 #, fuzzy, c-format msgid "cannot get program header count: %s" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダーを得られã¾ã›ã‚“: %s" -#: src/findtextrel.c:324 src/findtextrel.c:341 +#: src/findtextrel.c:325 src/findtextrel.c:342 #, fuzzy, c-format msgid "cannot get program header index at offset %zd: %s" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダーを得られã¾ã›ã‚“: %s" -#: src/findtextrel.c:405 +#: src/findtextrel.c:406 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" msgstr "" -#: src/findtextrel.c:425 src/findtextrel.c:448 +#: src/findtextrel.c:427 src/findtextrel.c:450 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" msgstr "" -#: src/findtextrel.c:514 +#: src/findtextrel.c:516 #, c-format msgid "%s not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:567 +#: src/findtextrel.c:570 #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:574 src/findtextrel.c:594 +#: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" "fPIC\n" msgstr "" -#: src/findtextrel.c:582 +#: src/findtextrel.c:585 #, c-format msgid "" "either the file containing the function '%s' or the file containing the " "function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -#: src/findtextrel.c:602 +#: src/findtextrel.c:605 #, c-format msgid "" "a relocation modifies memory at offset %llu in a write-protected segment\n" msgstr "" -#: src/nm.c:66 src/strip.c:69 +#: src/nm.c:66 src/strip.c:70 msgid "Output selection:" msgstr "出力é¸æŠž:" @@ -3469,7 +3472,7 @@ msgstr "å¼±ã„シンボルã«å°ã‚’点ã‘ã‚‹" msgid "Print size of defined symbols" msgstr "定義ã•ã‚ŒãŸã‚·ãƒ³ãƒœãƒ«ã®å°åˆ·ã‚µã‚¤ã‚º" -#: src/nm.c:91 src/size.c:68 src/strip.c:74 src/unstrip.c:73 +#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:73 msgid "Output options:" msgstr "出力オプション:" @@ -3499,18 +3502,18 @@ msgstr "ãµãã„ã‚‹ ã‹ã‚‰ã‚·ãƒ³ãƒœãƒ«ã‚’表示 (デフォルトã§ã¯a.out)。 msgid "Output formatting" msgstr "出力形å¼:" -#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:130 +#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: 内部エラー %d (%s-%s): %s" #: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308 -#: src/strip.c:2505 +#: src/strip.c:2747 #, c-format msgid "while closing '%s'" msgstr "'%s' ã‚’é–‰ã˜ã¦ã„る最ä¸" -#: src/nm.c:403 src/objdump.c:280 src/strip.c:442 +#: src/nm.c:403 src/objdump.c:280 src/strip.c:797 #, c-format msgid "%s: File format not recognized" msgstr "%s: ファイル形å¼ã‚’èªè˜ã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -3551,12 +3554,12 @@ msgid "cannot create search tree" msgstr "検索ツリーを生æˆã§ãã¾ã›ã‚“" #: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605 -#: src/readelf.c:1410 src/readelf.c:1558 src/readelf.c:1759 src/readelf.c:1965 -#: src/readelf.c:2155 src/readelf.c:2333 src/readelf.c:2409 src/readelf.c:2667 -#: src/readelf.c:2743 src/readelf.c:2830 src/readelf.c:3428 src/readelf.c:3478 -#: src/readelf.c:3541 src/readelf.c:11044 src/readelf.c:12216 -#: src/readelf.c:12419 src/readelf.c:12487 src/size.c:396 src/size.c:465 -#: src/strip.c:571 +#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970 +#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672 +#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483 +#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276 +#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467 +#: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" msgstr "セクションヘッダー文å—列テーブル索引ãŒå¾—られã¾ã›ã‚“" @@ -3650,11 +3653,11 @@ msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:363 src/readelf.c:2060 src/readelf.c:2252 +#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257 msgid "INVALID SYMBOL" msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«" -#: src/objdump.c:378 src/readelf.c:2094 src/readelf.c:2288 +#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293 msgid "INVALID SECTION" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³" @@ -3858,21 +3861,21 @@ msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n" msgid "cannot generate Elf descriptor: %s" msgstr "Elf 記述åを生æˆã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:596 src/readelf.c:924 src/strip.c:640 +#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133 #, c-format msgid "cannot determine number of sections: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:614 src/readelf.c:1226 src/readelf.c:1434 +#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436 #, c-format msgid "cannot get section: %s" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/readelf.c:623 src/readelf.c:1233 src/readelf.c:1442 src/readelf.c:12439 -#: src/unstrip.c:394 src/unstrip.c:425 src/unstrip.c:474 src/unstrip.c:584 -#: src/unstrip.c:605 src/unstrip.c:642 src/unstrip.c:846 src/unstrip.c:1138 -#: src/unstrip.c:1330 src/unstrip.c:1391 src/unstrip.c:1564 src/unstrip.c:1679 -#: src/unstrip.c:1819 src/unstrip.c:1914 +#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600 +#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202 +#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766 +#: src/unstrip.c:1909 src/unstrip.c:2004 #, c-format msgid "cannot get section header: %s" msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s" @@ -3882,8 +3885,8 @@ msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s" msgid "cannot get section name" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/readelf.c:640 src/readelf.c:6533 src/readelf.c:10317 src/readelf.c:10419 -#: src/readelf.c:10596 +#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465 +#: src/readelf.c:10643 #, c-format msgid "cannot get %s content: %s" msgstr "%s ã®å†…容を得られã¾ã›ã‚“: %s" @@ -3933,53 +3936,58 @@ msgstr "'%s' ã®èªè¾¼ã¿ã«å¤±æ•—: %s" msgid "No such section '%s' in '%s'" msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s" -#: src/readelf.c:909 +#: src/readelf.c:908 #, c-format msgid "cannot read ELF header: %s" msgstr "ELF ヘッダーãŒèªã‚ã¾ã›ã‚“: %s" -#: src/readelf.c:917 +#: src/readelf.c:916 #, c-format msgid "cannot create EBL handle" msgstr "EBL ヘッダーを生æˆã§ãã¾ã›ã‚“" -#: src/readelf.c:930 +#: src/readelf.c:929 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1020 +#: src/readelf.c:961 +#, fuzzy, c-format +msgid "cannot read ELF: %s" +msgstr "%s ã‚’èªã¿ã¾ã›ã‚“: %s" + +#: src/readelf.c:1022 msgid "NONE (None)" msgstr "ãªã— (ãªã—)" -#: src/readelf.c:1021 +#: src/readelf.c:1023 msgid "REL (Relocatable file)" msgstr "REL (リãƒã‚±ãƒ¼ã‚¿ãƒ–ルファイル)" -#: src/readelf.c:1022 +#: src/readelf.c:1024 msgid "EXEC (Executable file)" msgstr "(EXEC (実行ファイル)" -#: src/readelf.c:1023 +#: src/readelf.c:1025 msgid "DYN (Shared object file)" msgstr "DYN (共用オブジェクトファイル)" -#: src/readelf.c:1024 +#: src/readelf.c:1026 msgid "CORE (Core file)" msgstr "CORE (コアファイル)" -#: src/readelf.c:1029 +#: src/readelf.c:1031 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS 固有: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1031 +#: src/readelf.c:1033 #, c-format msgid "Processor Specific: (%x)\n" msgstr "プãƒã‚»ãƒƒã‚µãƒ¼å›ºæœ‰: (%x)\n" -#: src/readelf.c:1041 +#: src/readelf.c:1043 msgid "" "ELF Header:\n" " Magic: " @@ -3987,7 +3995,7 @@ msgstr "" "ELF ヘッダー:\n" " マジック: " -#: src/readelf.c:1045 +#: src/readelf.c:1047 #, c-format msgid "" "\n" @@ -3996,118 +4004,118 @@ msgstr "" "\n" " クラス: %s\n" -#: src/readelf.c:1050 +#: src/readelf.c:1052 #, c-format msgid " Data: %s\n" msgstr " データ: %s\n" -#: src/readelf.c:1056 +#: src/readelf.c:1058 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " è˜åˆ¥ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n" -#: src/readelf.c:1058 src/readelf.c:1075 +#: src/readelf.c:1060 src/readelf.c:1077 msgid "(current)" msgstr "(ç¾åœ¨)" -#: src/readelf.c:1062 +#: src/readelf.c:1064 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:1065 +#: src/readelf.c:1067 #, c-format msgid " ABI Version: %hhd\n" msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n" -#: src/readelf.c:1068 +#: src/readelf.c:1070 msgid " Type: " msgstr " タイプ: " -#: src/readelf.c:1071 +#: src/readelf.c:1073 #, c-format msgid " Machine: %s\n" msgstr " マシン : %s\n" -#: src/readelf.c:1073 +#: src/readelf.c:1075 #, c-format msgid " Version: %d %s\n" msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n" -#: src/readelf.c:1077 +#: src/readelf.c:1079 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n" -#: src/readelf.c:1080 +#: src/readelf.c:1082 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " プãƒã‚°ãƒ©ãƒ ヘッダーã®é–‹å§‹: %<PRId64> %s\n" -#: src/readelf.c:1081 src/readelf.c:1084 +#: src/readelf.c:1083 src/readelf.c:1086 msgid "(bytes into file)" msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)" -#: src/readelf.c:1083 +#: src/readelf.c:1085 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n" -#: src/readelf.c:1086 +#: src/readelf.c:1088 #, c-format msgid " Flags: %s\n" msgstr " フラグ: %s\n" -#: src/readelf.c:1089 +#: src/readelf.c:1091 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " ã“ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã®å¤§ãã•: %<PRId16> %s\n" -#: src/readelf.c:1090 src/readelf.c:1093 src/readelf.c:1110 +#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112 msgid "(bytes)" msgstr "(ãƒã‚¤ãƒˆ)" -#: src/readelf.c:1092 +#: src/readelf.c:1094 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®å¤§ãã•:%<PRId16> %s\n" -#: src/readelf.c:1095 +#: src/readelf.c:1097 #, fuzzy, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " プãƒã‚°ãƒ©ãƒ ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®æ•° : %<PRId16>\n" -#: src/readelf.c:1102 +#: src/readelf.c:1104 #, fuzzy, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "([0].sh_link ã® %<PRIu32>)" -#: src/readelf.c:1105 src/readelf.c:1122 src/readelf.c:1136 +#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138 msgid " ([0] not available)" msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)" -#: src/readelf.c:1109 +#: src/readelf.c:1111 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®å¤§ãã•:%<PRId16> %s\n" -#: src/readelf.c:1112 +#: src/readelf.c:1114 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼é …ç›®ã®æ•° : %<PRId16>" -#: src/readelf.c:1119 +#: src/readelf.c:1121 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " ([0].sh_size ã® %<PRIu32>)" #. We managed to get the zeroth section. -#: src/readelf.c:1132 +#: src/readelf.c:1134 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "([0].sh_link ã® %<PRIu32>)" -#: src/readelf.c:1140 +#: src/readelf.c:1142 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4116,7 +4124,7 @@ msgstr "" " セクションヘッダー文å—列テーブル索引: XINDEX%s\n" "\n" -#: src/readelf.c:1144 +#: src/readelf.c:1146 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4125,12 +4133,12 @@ msgstr "" " セクションヘッダー文å—列テーブル索引: %<PRId16>\n" "\n" -#: src/readelf.c:1191 src/readelf.c:1399 +#: src/readelf.c:1193 src/readelf.c:1401 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1194 +#: src/readelf.c:1196 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4139,16 +4147,16 @@ msgstr "" "オフセット %2$#<PRIx64> ã‹ã‚‰å§‹ã¾ã‚‹ %1$d 個ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚Šã¾ã™:\n" "\n" -#: src/readelf.c:1203 +#: src/readelf.c:1205 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "セクションヘッダー文å—列テーブル索引ãŒå¾—られã¾ã›ã‚“" -#: src/readelf.c:1206 +#: src/readelf.c:1208 msgid "Section Headers:" msgstr "セクションヘッダー:" -#: src/readelf.c:1209 +#: src/readelf.c:1211 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4156,7 +4164,7 @@ msgstr "" "[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES フラグLk " "Inf Al" -#: src/readelf.c:1211 +#: src/readelf.c:1213 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4164,35 +4172,35 @@ msgstr "" "[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES " "フラグLk Inf Al" -#: src/readelf.c:1216 +#: src/readelf.c:1218 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1218 +#: src/readelf.c:1220 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1294 +#: src/readelf.c:1296 #, fuzzy, c-format msgid "bad compression header for section %zd: %s" msgstr "セクションヘッダー文å—列セクションを生æˆã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:1305 +#: src/readelf.c:1307 #, fuzzy, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" -#: src/readelf.c:1323 +#: src/readelf.c:1325 msgid "Program Headers:" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダー:" -#: src/readelf.c:1325 +#: src/readelf.c:1327 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 " -#: src/readelf.c:1328 +#: src/readelf.c:1330 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4200,12 +4208,12 @@ msgstr "" " タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢" "é‡ Flg 調整 " -#: src/readelf.c:1385 +#: src/readelf.c:1387 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[プãƒã‚°ãƒ©ãƒ 割込ã¿ã‚’è¦æ±‚: %s]\n" -#: src/readelf.c:1412 +#: src/readelf.c:1414 msgid "" "\n" " Section to Segment mapping:\n" @@ -4215,12 +4223,12 @@ msgstr "" " セクションã‹ã‚‰ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ãƒžãƒƒãƒ“ング:\n" " セグメント セクション..." -#: src/readelf.c:1423 src/unstrip.c:1973 src/unstrip.c:2015 src/unstrip.c:2022 +#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112 #, c-format msgid "cannot get program header: %s" msgstr "プãƒã‚°ãƒ©ãƒ ヘッダーを得られã¾ã›ã‚“: %s" -#: src/readelf.c:1566 +#: src/readelf.c:1571 #, c-format msgid "" "\n" @@ -4233,7 +4241,7 @@ msgstr[0] "" "ç½²å '%3$s' ã‚’æŒã¤ COMDAT セクショングループ [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®" "é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:1571 +#: src/readelf.c:1576 #, c-format msgid "" "\n" @@ -4246,31 +4254,31 @@ msgstr[0] "" "ç½²å '%3$s' ã‚’æŒã¤ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ— [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …ç›®ãŒã‚" "ã‚Šã¾ã™:\n" -#: src/readelf.c:1579 +#: src/readelf.c:1584 msgid "<INVALID SYMBOL>" msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>" -#: src/readelf.c:1593 +#: src/readelf.c:1598 msgid "<INVALID SECTION>" msgstr "<ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³>" -#: src/readelf.c:1616 src/readelf.c:2343 src/readelf.c:3444 src/readelf.c:12310 -#: src/readelf.c:12317 src/readelf.c:12361 src/readelf.c:12368 +#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371 +#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 +#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s" -#: src/readelf.c:1765 src/readelf.c:2415 src/readelf.c:2673 src/readelf.c:2749 -#: src/readelf.c:3053 src/readelf.c:3127 src/readelf.c:5322 +#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754 +#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ä¸å½“㪠.debug_line セクション" -#: src/readelf.c:1768 +#: src/readelf.c:1773 #, c-format msgid "" "\n" @@ -4286,36 +4294,36 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:1778 +#: src/readelf.c:1783 msgid " Type Value\n" msgstr " タイプ 値\n" -#: src/readelf.c:1802 +#: src/readelf.c:1807 #, c-format msgid "Shared library: [%s]\n" msgstr "共用ライブラリー: [%s]\n" -#: src/readelf.c:1807 +#: src/readelf.c:1812 #, c-format msgid "Library soname: [%s]\n" msgstr "ライブラリー so å: [%s]\n" -#: src/readelf.c:1812 +#: src/readelf.c:1817 #, c-format msgid "Library rpath: [%s]\n" msgstr "ライブラリー rパス: [%s]\n" -#: src/readelf.c:1817 +#: src/readelf.c:1822 #, c-format msgid "Library runpath: [%s]\n" msgstr "ライブラリー run パス: [%s]\n" -#: src/readelf.c:1837 +#: src/readelf.c:1842 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n" -#: src/readelf.c:1950 src/readelf.c:2140 +#: src/readelf.c:1955 src/readelf.c:2145 #, c-format msgid "" "\n" @@ -4324,7 +4332,7 @@ msgstr "" "\n" "オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n" -#: src/readelf.c:1968 src/readelf.c:2158 +#: src/readelf.c:1973 src/readelf.c:2163 #, c-format msgid "" "\n" @@ -4345,7 +4353,7 @@ msgstr[0] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:1983 src/readelf.c:2173 +#: src/readelf.c:1988 src/readelf.c:2178 #, c-format msgid "" "\n" @@ -4358,29 +4366,29 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> ã®ãƒªãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2u] '%2$s' ã«ã¯ %4$d " "個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:1993 +#: src/readelf.c:1998 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 åå‰\n" -#: src/readelf.c:1995 +#: src/readelf.c:2000 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 åå‰\n" -#: src/readelf.c:2048 src/readelf.c:2059 src/readelf.c:2072 src/readelf.c:2093 -#: src/readelf.c:2105 src/readelf.c:2239 src/readelf.c:2251 src/readelf.c:2265 -#: src/readelf.c:2287 src/readelf.c:2300 +#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098 +#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270 +#: src/readelf.c:2292 src/readelf.c:2305 msgid "<INVALID RELOC>" msgstr "<ä¸å½“ãªRELOC>" -#: src/readelf.c:2183 +#: src/readelf.c:2188 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 ä»˜åŠ å\n" -#: src/readelf.c:2185 +#: src/readelf.c:2190 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 ä»˜åŠ å\n" -#: src/readelf.c:2423 +#: src/readelf.c:2428 #, c-format msgid "" "\n" @@ -4392,39 +4400,39 @@ msgstr[0] "" "\n" "シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:2428 +#: src/readelf.c:2433 #, 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:2436 +#: src/readelf.c:2441 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n" -#: src/readelf.c:2438 +#: src/readelf.c:2443 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n" -#: src/readelf.c:2458 +#: src/readelf.c:2463 #, 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:2546 +#: src/readelf.c:2551 #, c-format msgid "bad dynamic symbol" msgstr "ä¸æ£ãªå‹•çš„シンボル" -#: src/readelf.c:2628 +#: src/readelf.c:2633 msgid "none" msgstr "ãªã—" -#: src/readelf.c:2645 +#: src/readelf.c:2650 msgid "| <unknown>" msgstr "| <ä¸æ˜Ž>" -#: src/readelf.c:2676 +#: src/readelf.c:2681 #, c-format msgid "" "\n" @@ -4440,17 +4448,17 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:2697 +#: src/readelf.c:2702 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n" -#: src/readelf.c:2710 +#: src/readelf.c:2715 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n" -#: src/readelf.c:2753 +#: src/readelf.c:2758 #, c-format msgid "" "\n" @@ -4466,18 +4474,18 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:2781 +#: src/readelf.c:2786 #, 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:2796 +#: src/readelf.c:2801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: 親 %d: %s\n" #. Print the header. -#: src/readelf.c:3057 +#: src/readelf.c:3062 #, c-format msgid "" "\n" @@ -4493,15 +4501,15 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'" -#: src/readelf.c:3085 +#: src/readelf.c:3090 msgid " 0 *local* " msgstr " 0 *ãƒãƒ¼ã‚«ãƒ«* " -#: src/readelf.c:3090 +#: src/readelf.c:3095 msgid " 1 *global* " msgstr " 1 *ã‚°ãƒãƒ¼ãƒãƒ«* " -#: src/readelf.c:3132 +#: src/readelf.c:3137 #, c-format msgid "" "\n" @@ -4519,22 +4527,22 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: " "[%2u] '%s'\n" -#: src/readelf.c:3154 +#: src/readelf.c:3159 #, fuzzy, no-c-format msgid " Length Number % of total Coverage\n" msgstr " é•·ã• æ•° 全体ã®% 範囲 \n" -#: src/readelf.c:3156 +#: src/readelf.c:3161 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3163 +#: src/readelf.c:3168 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3176 +#: src/readelf.c:3181 #, fuzzy, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4543,37 +4551,37 @@ msgstr "" " テストã®å¹³å‡æ•°: 検索æˆåŠŸ: %f\n" " 検索失敗: %f\n" -#: src/readelf.c:3194 src/readelf.c:3258 src/readelf.c:3324 +#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329 #, c-format msgid "cannot get data for section %d: %s" msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" -#: src/readelf.c:3202 +#: src/readelf.c:3207 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3231 +#: src/readelf.c:3236 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3266 +#: src/readelf.c:3271 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3297 +#: src/readelf.c:3302 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3333 +#: src/readelf.c:3338 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:3400 +#: src/readelf.c:3405 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4583,7 +4591,7 @@ msgstr "" " ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビットè¨å®š 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•" "ト: %u\n" -#: src/readelf.c:3489 +#: src/readelf.c:3494 #, c-format msgid "" "\n" @@ -4596,7 +4604,7 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> ã®ãƒ©ã‚¤ãƒ–ラリー一覧セクション [%1$2zu] '%2$s' ã«ã¯ " "%4$d 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:3503 +#: src/readelf.c:3508 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4604,7 +4612,7 @@ msgstr "" " ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãƒãƒ¼" "ジョン フラグ" -#: src/readelf.c:3553 +#: src/readelf.c:3558 #, c-format msgid "" "\n" @@ -4615,102 +4623,102 @@ msgstr "" "オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ã‚ªãƒ–ジェクト属性セクション " "[%1$2zu] '%2$s':\n" -#: src/readelf.c:3570 +#: src/readelf.c:3575 msgid " Owner Size\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:3599 +#: src/readelf.c:3604 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3638 +#: src/readelf.c:3643 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3643 +#: src/readelf.c:3648 #, c-format msgid " File: %11<PRIu32>\n" msgstr " ファイル: %11<PRIu32>\n" -#: src/readelf.c:3692 +#: src/readelf.c:3697 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>ã€%s\n" -#: src/readelf.c:3695 +#: src/readelf.c:3700 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3698 +#: src/readelf.c:3703 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3708 +#: src/readelf.c:3713 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3711 +#: src/readelf.c:3716 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3781 +#: src/readelf.c:3786 #, c-format msgid "sprintf failure" msgstr "" -#: src/readelf.c:4263 +#: src/readelf.c:4268 msgid "empty block" msgstr "空ブãƒãƒƒã‚¯" -#: src/readelf.c:4266 +#: src/readelf.c:4271 #, c-format msgid "%zu byte block:" msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ãƒãƒƒã‚¯:" -#: src/readelf.c:4744 +#: src/readelf.c:4749 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:4808 +#: src/readelf.c:4813 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "" -#: src/readelf.c:4815 +#: src/readelf.c:4820 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "" -#: src/readelf.c:4822 +#: src/readelf.c:4827 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "" -#: src/readelf.c:4829 +#: src/readelf.c:4834 #, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "" -#: src/readelf.c:4926 +#: src/readelf.c:4931 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr "" -#: src/readelf.c:4934 +#: src/readelf.c:4939 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr "" -#: src/readelf.c:5012 +#: src/readelf.c:5017 #, c-format msgid "" "\n" @@ -4721,7 +4729,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" " [ コード]\n" -#: src/readelf.c:5020 +#: src/readelf.c:5025 #, c-format msgid "" "\n" @@ -4730,20 +4738,20 @@ msgstr "" "\n" "オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n" -#: src/readelf.c:5033 +#: src/readelf.c:5038 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** 略語をèªã‚“ã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n" -#: src/readelf.c:5049 +#: src/readelf.c:5054 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %<PRId64>ã€å: %sã€ã‚¿ã‚°: %s\n" -#: src/readelf.c:5082 src/readelf.c:5391 src/readelf.c:5557 src/readelf.c:5942 -#: src/readelf.c:6543 src/readelf.c:8184 src/readelf.c:8854 src/readelf.c:9290 -#: src/readelf.c:9534 src/readelf.c:9699 src/readelf.c:10060 -#: src/readelf.c:10118 +#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948 +#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306 +#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104 +#: src/readelf.c:10164 #, c-format msgid "" "\n" @@ -4752,52 +4760,52 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:5095 +#: src/readelf.c:5100 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/readelf.c:5195 src/readelf.c:5219 src/readelf.c:5602 src/readelf.c:8899 +#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5197 src/readelf.c:5234 src/readelf.c:5615 src/readelf.c:8912 +#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5198 src/readelf.c:5243 src/readelf.c:5624 src/readelf.c:8921 +#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5200 src/readelf.c:5253 src/readelf.c:5634 src/readelf.c:8931 +#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:5238 src/readelf.c:5619 src/readelf.c:8916 src/readelf.c:10250 +#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296 #, fuzzy, c-format msgid "Unknown version" msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³" -#: src/readelf.c:5248 src/readelf.c:5461 src/readelf.c:5629 src/readelf.c:8926 +#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942 #, fuzzy, c-format msgid "unsupported address size" msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:5259 src/readelf.c:5472 src/readelf.c:5639 src/readelf.c:8936 +#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5312 src/readelf.c:5386 +#: src/readelf.c:5317 src/readelf.c:5391 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:5327 +#: src/readelf.c:5332 #, c-format msgid "" "\n" @@ -4810,19 +4818,19 @@ msgstr[0] "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:5358 +#: src/readelf.c:5363 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5360 +#: src/readelf.c:5365 #, 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:5404 src/readelf.c:8211 +#: src/readelf.c:5409 src/readelf.c:8226 #, fuzzy, c-format msgid "" "\n" @@ -4831,154 +4839,154 @@ msgstr "" "\n" "オフセット %Zu ã®ãƒ†ãƒ¼ãƒ–ル:\n" -#: src/readelf.c:5408 src/readelf.c:5583 src/readelf.c:6567 src/readelf.c:8222 -#: src/readelf.c:8880 +#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237 +#: src/readelf.c:8896 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:5424 +#: src/readelf.c:5429 #, fuzzy, c-format msgid "" "\n" " Length: %6<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5436 +#: src/readelf.c:5441 #, fuzzy, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:5440 +#: src/readelf.c:5445 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5451 +#: src/readelf.c:5456 #, fuzzy, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5457 +#: src/readelf.c:5462 #, fuzzy, c-format msgid " Address size: %6<PRIu64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5468 +#: src/readelf.c:5473 #, fuzzy, c-format msgid "" " Segment size: %6<PRIu64>\n" "\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:5523 +#: src/readelf.c:5528 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5566 +#: src/readelf.c:5572 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:5589 src/readelf.c:8886 +#: src/readelf.c:5595 src/readelf.c:8902 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5644 src/readelf.c:8941 +#: src/readelf.c:5650 src/readelf.c:8957 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5660 src/readelf.c:8957 +#: src/readelf.c:5666 src/readelf.c:8973 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5662 src/readelf.c:8959 +#: src/readelf.c:5668 src/readelf.c:8975 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5668 src/readelf.c:8965 +#: src/readelf.c:5674 src/readelf.c:8981 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5679 src/readelf.c:8976 +#: src/readelf.c:5685 src/readelf.c:8992 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5683 src/readelf.c:8980 +#: src/readelf.c:5689 src/readelf.c:8996 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:5735 +#: src/readelf.c:5741 #, fuzzy, c-format msgid "invalid range list data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:5920 src/readelf.c:9268 +#: src/readelf.c:5926 src/readelf.c:9284 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5937 +#: src/readelf.c:5943 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:5973 src/readelf.c:9323 +#: src/readelf.c:5979 src/readelf.c:9339 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:5975 src/readelf.c:9325 +#: src/readelf.c:5981 src/readelf.c:9341 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5984 src/readelf.c:9351 src/readelf.c:9377 +#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:6005 src/readelf.c:9457 +#: src/readelf.c:6011 src/readelf.c:9473 #, fuzzy, c-format msgid "" " [%6tx] base address\n" " " msgstr " [%6tx] ベースアドレス %s\n" -#: src/readelf.c:6013 src/readelf.c:9465 +#: src/readelf.c:6019 src/readelf.c:9481 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr "" "\n" " [%6tx] ゼãƒçµ‚端\n" -#: src/readelf.c:6268 +#: src/readelf.c:6274 #, fuzzy msgid " <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:6521 +#: src/readelf.c:6527 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:6539 +#: src/readelf.c:6545 #, c-format msgid "" "\n" @@ -4987,7 +4995,7 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® ãƒ•ãƒ¬ãƒ¼ãƒ æƒ…å ±å‘¼å‡ºã—セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:6589 +#: src/readelf.c:6595 #, c-format msgid "" "\n" @@ -4996,65 +5004,65 @@ msgstr "" "\n" " [%6tx] ゼãƒçµ‚端\n" -#: src/readelf.c:6682 src/readelf.c:6836 +#: src/readelf.c:6696 src/readelf.c:6850 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰" -#: src/readelf.c:6697 +#: src/readelf.c:6711 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:6703 +#: src/readelf.c:6717 msgid "LSDA pointer encoding: " msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:6813 +#: src/readelf.c:6827 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:6820 +#: src/readelf.c:6834 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:6857 +#: src/readelf.c:6871 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n" -#: src/readelf.c:6942 +#: src/readelf.c:6956 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "属性コードを得られã¾ã›ã‚“: %s" -#: src/readelf.c:6952 +#: src/readelf.c:6966 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s" -#: src/readelf.c:6974 +#: src/readelf.c:6988 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "属性値を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7307 +#: src/readelf.c:7321 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«" -#: src/readelf.c:7311 +#: src/readelf.c:7325 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:7315 +#: src/readelf.c:7329 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7538 +#: src/readelf.c:7552 #, c-format msgid "" "\n" @@ -5065,12 +5073,12 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:7588 +#: src/readelf.c:7602 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7607 +#: src/readelf.c:7621 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5082,7 +5090,7 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:7619 +#: src/readelf.c:7633 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5093,39 +5101,39 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:7629 src/readelf.c:7792 +#: src/readelf.c:7643 src/readelf.c:7806 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:7656 +#: src/readelf.c:7670 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7685 +#: src/readelf.c:7699 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られã¾ã›ã‚“: %s" -#: src/readelf.c:7694 +#: src/readelf.c:7708 #, 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:7732 +#: src/readelf.c:7746 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n" -#: src/readelf.c:7740 +#: src/readelf.c:7754 #, c-format msgid "cannot get next DIE: %s" msgstr "次㮠DIE を得られã¾ã›ã‚“: %s" -#: src/readelf.c:7784 +#: src/readelf.c:7798 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5136,7 +5144,7 @@ msgstr "" " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§" "ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n" -#: src/readelf.c:7835 +#: src/readelf.c:7850 #, fuzzy, c-format msgid "" "\n" @@ -5146,18 +5154,18 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:8167 +#: src/readelf.c:8182 #, fuzzy, c-format msgid "unknown form: %s" msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>" -#: src/readelf.c:8198 +#: src/readelf.c:8213 #, c-format msgid "cannot get line data section data: %s" msgstr "ラインデータセクションデータを得られã¾ã›ã‚“: %s" #. Print what we got so far. -#: src/readelf.c:8300 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "" "\n" @@ -5187,33 +5195,33 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:8322 +#: src/readelf.c:8337 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:8330 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:8338 +#: src/readelf.c:8353 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/readelf.c:8348 +#: src/readelf.c:8363 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' ä¸ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$tu ã«ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:8363 +#: src/readelf.c:8378 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n" -#: src/readelf.c:8374 +#: src/readelf.c:8389 msgid "" "\n" "Directory table:" @@ -5221,12 +5229,12 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:8380 src/readelf.c:8455 +#: src/readelf.c:8395 src/readelf.c:8470 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8449 +#: src/readelf.c:8464 #, fuzzy msgid "" "\n" @@ -5235,7 +5243,7 @@ msgstr "" "\n" " 呼出ã—サイトテーブル:" -#: src/readelf.c:8510 +#: src/readelf.c:8525 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5243,7 +5251,7 @@ msgstr "" "ファイルåテーブル:\n" " Entry Dir 時刻 大ãã• åå‰" -#: src/readelf.c:8545 +#: src/readelf.c:8560 msgid "" "\n" "Line number statements:" @@ -5251,119 +5259,119 @@ msgstr "" "\n" "è¡Œ ç•ªå· æ–‡:" -#: src/readelf.c:8568 +#: src/readelf.c:8583 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8602 +#: src/readelf.c:8617 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " 特殊命令コード %u: アドレス+%u = %s, è¡Œ%+d = %zu\n" -#: src/readelf.c:8606 +#: src/readelf.c:8621 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, è¡Œ%+d = %zu\n" -#: src/readelf.c:8609 +#: src/readelf.c:8624 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8627 +#: src/readelf.c:8642 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:8632 +#: src/readelf.c:8647 #, fuzzy msgid " end of sequence" msgstr "列ã®çµ‚ã‚ã‚Š" -#: src/readelf.c:8650 +#: src/readelf.c:8665 #, fuzzy, c-format msgid " set address to " msgstr "アドレスを %s ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:8678 +#: src/readelf.c:8693 #, 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:8691 +#: src/readelf.c:8706 #, fuzzy, c-format msgid " set discriminator to %u\n" msgstr "カラムを %<PRIu64> ã«è¨å®šã™ã‚‹\n" #. Unknown, ignore it. -#: src/readelf.c:8696 +#: src/readelf.c:8711 #, fuzzy msgid " unknown opcode" msgstr "ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰" #. Takes no argument. -#: src/readelf.c:8708 +#: src/readelf.c:8723 msgid " copy" msgstr "複写" -#: src/readelf.c:8717 +#: src/readelf.c:8732 #, fuzzy, c-format msgid " advance address by %u to " msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n" -#: src/readelf.c:8721 src/readelf.c:8777 +#: src/readelf.c:8736 src/readelf.c:8792 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8731 +#: src/readelf.c:8746 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n" -#: src/readelf.c:8739 +#: src/readelf.c:8754 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid " set column to %<PRIu64>\n" msgstr "カラムを %<PRIu64> ã«è¨å®šã™ã‚‹\n" -#: src/readelf.c:8756 +#: src/readelf.c:8771 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨å®šã™ã‚‹\n" #. Takes no argument. -#: src/readelf.c:8762 +#: src/readelf.c:8777 msgid " set basic block flag" msgstr "基本ブãƒãƒƒã‚¯ãƒ•ãƒ©ã‚°ã‚’è¨å®šã™ã‚‹" -#: src/readelf.c:8773 +#: src/readelf.c:8788 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n" -#: src/readelf.c:8792 +#: src/readelf.c:8807 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr "アドレスを固定値 %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n" #. Takes no argument. -#: src/readelf.c:8802 +#: src/readelf.c:8817 msgid " set prologue end flag" msgstr "プãƒãƒãƒ¼ã‚°çµ‚了フラグをè¨å®šã™ã‚‹" #. Takes no argument. -#: src/readelf.c:8807 +#: src/readelf.c:8822 msgid " set epilogue begin flag" msgstr "エピãƒãƒ¼ã‚°é–‹å§‹ãƒ•ãƒ©ã‚°ã‚’è¨å®šã™ã‚‹" -#: src/readelf.c:8816 +#: src/readelf.c:8831 #, fuzzy, c-format msgid " set isa to %u\n" msgstr " ファイルを %<PRIu64> ã«è¨å®šã™ã‚‹\n" @@ -5371,98 +5379,98 @@ 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:8825 +#: src/readelf.c:8840 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:8863 +#: src/readelf.c:8879 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:9032 +#: src/readelf.c:9048 #, fuzzy, c-format msgid "invalid loclists data" msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/readelf.c:9285 +#: src/readelf.c:9301 #, c-format msgid "cannot get .debug_loc content: %s" msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:9492 src/readelf.c:10506 +#: src/readelf.c:9508 src/readelf.c:10552 #, fuzzy msgid " <INVALID DATA>\n" msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n" -#: src/readelf.c:9546 src/readelf.c:9709 +#: src/readelf.c:9563 src/readelf.c:9726 #, c-format msgid "cannot get macro information section data: %s" msgstr "マクãƒæƒ…å ±ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“: %s" -#: src/readelf.c:9626 +#: src/readelf.c:9643 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„æ–‡å—列" -#: src/readelf.c:9649 +#: src/readelf.c:9666 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„æ–‡å—列" -#: src/readelf.c:9750 +#: src/readelf.c:9767 #, fuzzy, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " 所有者 大ãã•\n" -#: src/readelf.c:9762 +#: src/readelf.c:9779 #, fuzzy, c-format msgid " Version: %<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:9768 src/readelf.c:10625 +#: src/readelf.c:9785 src/readelf.c:10672 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9775 +#: src/readelf.c:9792 #, fuzzy, c-format -msgid " Flag: 0x%<PRIx8>\n" +msgid " Flag: 0x%<PRIx8>" msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n" -#: src/readelf.c:9778 +#: src/readelf.c:9821 #, fuzzy, c-format msgid " Offset length: %<PRIu8>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:9786 +#: src/readelf.c:9829 #, fuzzy, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:9811 +#: src/readelf.c:9854 #, fuzzy, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:" -#: src/readelf.c:9818 +#: src/readelf.c:9861 #, c-format msgid " [%<PRIx8>]" msgstr "" -#: src/readelf.c:9830 +#: src/readelf.c:9873 #, fuzzy, c-format msgid " %<PRIu8> arguments:" msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n" -#: src/readelf.c:9845 +#: src/readelf.c:9888 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10046 +#: src/readelf.c:10089 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" @@ -5470,7 +5478,7 @@ msgstr "" # # "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s æ–‡å—列\n" ãŒã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ä½•æ•…? å–ã‚Šæ•¢ãˆãš fuzzy扱ㄠ-#: src/readelf.c:10088 +#: src/readelf.c:10133 #, fuzzy, c-format msgid "" "\n" @@ -5481,37 +5489,37 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s':\n" " %4$*s æ–‡å—列\n" -#: src/readelf.c:10103 +#: src/readelf.c:10148 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** æ–‡å—列ã®èªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s\n" -#: src/readelf.c:10131 +#: src/readelf.c:10177 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:10230 +#: src/readelf.c:10276 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10232 +#: src/readelf.c:10278 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10246 +#: src/readelf.c:10292 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10255 +#: src/readelf.c:10301 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10309 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5520,7 +5528,7 @@ msgstr "" "\n" "呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10411 +#: src/readelf.c:10457 #, c-format msgid "" "\n" @@ -5529,22 +5537,22 @@ msgstr "" "\n" "例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10434 +#: src/readelf.c:10480 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:10446 +#: src/readelf.c:10492 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:10461 +#: src/readelf.c:10507 #, c-format msgid " Call site encoding: %#x " msgstr "呼出ã—サイトコード化: %#x " -#: src/readelf.c:10474 +#: src/readelf.c:10520 msgid "" "\n" " Call site table:" @@ -5552,7 +5560,7 @@ msgstr "" "\n" " 呼出ã—サイトテーブル:" -#: src/readelf.c:10488 +#: src/readelf.c:10534 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5565,12 +5573,12 @@ msgstr "" " 離ç€é™¸å ´: %#<PRIx64>\n" " 行動: %u\n" -#: src/readelf.c:10561 +#: src/readelf.c:10607 #, c-format msgid "invalid TType encoding" msgstr "ä¸å½“㪠TType コード化" -#: src/readelf.c:10587 +#: src/readelf.c:10634 #, fuzzy, c-format msgid "" "\n" @@ -5580,37 +5588,37 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:10616 +#: src/readelf.c:10663 #, fuzzy, c-format msgid " Version: %<PRId32>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:10634 +#: src/readelf.c:10681 #, fuzzy, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10641 +#: src/readelf.c:10688 #, fuzzy, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10648 +#: src/readelf.c:10695 #, fuzzy, c-format msgid " address offset: %#<PRIx32>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:10655 +#: src/readelf.c:10702 #, fuzzy, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:10662 +#: src/readelf.c:10709 #, fuzzy, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:10676 +#: src/readelf.c:10723 #, fuzzy, c-format msgid "" "\n" @@ -5620,7 +5628,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:10701 +#: src/readelf.c:10748 #, fuzzy, c-format msgid "" "\n" @@ -5630,7 +5638,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:10730 +#: src/readelf.c:10777 #, fuzzy, c-format msgid "" "\n" @@ -5640,7 +5648,7 @@ msgstr "" "オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …" "ç›®ãŒã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:10762 +#: src/readelf.c:10809 #, fuzzy, c-format msgid "" "\n" @@ -5649,18 +5657,18 @@ msgstr "" "\n" "オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n" -#: src/readelf.c:10900 +#: src/readelf.c:10947 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デãƒãƒƒã‚°å†…容記述åを得られã¾ã›ã‚“: %s" -#: src/readelf.c:11263 src/readelf.c:11885 src/readelf.c:11996 -#: src/readelf.c:12054 +#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043 +#: src/readelf.c:12101 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s" -#: src/readelf.c:11626 +#: src/readelf.c:11673 #, c-format msgid "" "\n" @@ -5669,21 +5677,21 @@ msgstr "" "\n" "%*s... < %u 回ã®ç¹°è¿”ã—> ..." -#: src/readelf.c:12133 +#: src/readelf.c:12180 msgid " Owner Data size Type\n" msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n" -#: src/readelf.c:12151 +#: src/readelf.c:12209 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12201 +#: src/readelf.c:12261 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "ノートセクションã®å†…容を得られã¾ã›ã‚“: %s" -#: src/readelf.c:12228 +#: src/readelf.c:12288 #, c-format msgid "" "\n" @@ -5693,7 +5701,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2zu] " "'%2$s':\n" -#: src/readelf.c:12251 +#: src/readelf.c:12311 #, c-format msgid "" "\n" @@ -5702,7 +5710,7 @@ msgstr "" "\n" "オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n" -#: src/readelf.c:12297 +#: src/readelf.c:12358 #, fuzzy, c-format msgid "" "\n" @@ -5711,12 +5719,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/readelf.c:12324 src/readelf.c:12375 +#: src/readelf.c:12385 src/readelf.c:12436 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s" -#: src/readelf.c:12329 +#: src/readelf.c:12390 #, fuzzy, c-format msgid "" "\n" @@ -5726,7 +5734,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン" "プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n" -#: src/readelf.c:12334 +#: src/readelf.c:12395 #, fuzzy, c-format msgid "" "\n" @@ -5737,7 +5745,7 @@ msgstr "" "オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン" "プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n" -#: src/readelf.c:12348 +#: src/readelf.c:12409 #, fuzzy, c-format msgid "" "\n" @@ -5746,7 +5754,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n" -#: src/readelf.c:12380 +#: src/readelf.c:12441 #, fuzzy, c-format msgid "" "\n" @@ -5756,7 +5764,7 @@ msgstr "" "オフセット %4$#0<PRIx64> æ–‡å—列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ" "イトã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:12385 +#: src/readelf.c:12446 #, fuzzy, c-format msgid "" "\n" @@ -5767,7 +5775,7 @@ msgstr "" "オフセット %4$#0<PRIx64> æ–‡å—列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ" "イトã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:12434 +#: src/readelf.c:12495 #, c-format msgid "" "\n" @@ -5776,7 +5784,7 @@ msgstr "" "\n" "セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:12463 +#: src/readelf.c:12524 #, c-format msgid "" "\n" @@ -5785,12 +5793,12 @@ msgstr "" "\n" "セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“" -#: src/readelf.c:12520 +#: src/readelf.c:12581 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s" -#: src/readelf.c:12523 +#: src/readelf.c:12584 #, c-format msgid "" "\n" @@ -5799,7 +5807,7 @@ msgstr "" "\n" "アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n" -#: src/readelf.c:12527 +#: src/readelf.c:12588 #, fuzzy, c-format msgid "" "\n" @@ -5808,12 +5816,12 @@ msgstr "" "\n" "アーカイブ '%s' ã®ç´¢å¼•ã«ã¯ %Zu é …ç›®ã‚ã‚Šã¾ã™:\n" -#: src/readelf.c:12545 +#: src/readelf.c:12606 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "'%2$s' 㮠オフセット %1$Zu ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’抽出ã§ãã¾ã›ã‚“: %3$s" -#: src/readelf.c:12550 +#: src/readelf.c:12611 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンãƒãƒ¼ '%s' ã«ã¯ä»¥ä¸‹ãŒã‚ã‚Šã¾ã™:\n" @@ -5878,12 +5886,12 @@ msgstr "ä¸å½“ãªåŸºæ•°: %s" msgid "%s: file format not recognized" msgstr "%s: ファイル形å¼ã‚’èªè˜ã§ãã¾ã›ã‚“" -#: src/size.c:416 src/size.c:549 +#: src/size.c:418 src/size.c:551 #, c-format msgid " (ex %s)" msgstr " (ex %s)" -#: src/size.c:574 +#: src/size.c:576 msgid "(TOTALS)\n" msgstr "(åˆè¨ˆ)\n" @@ -6071,94 +6079,114 @@ msgstr "" msgid "Skipping section %zd '%s' data outside file" msgstr "" -#: src/strip.c:70 +#: src/strip.c:71 msgid "Place stripped output into FILE" msgstr "ã¯ãŽå–ã£ãŸå‡ºåŠ›ã‚’ ãµãã„ã‚‹ ã«ç½®ã" -#: src/strip.c:71 +#: src/strip.c:72 msgid "Extract the removed sections into FILE" msgstr "抽出ã—ãŸå–り除ã„ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’ ãµãã„ã‚‹ ã«ç½®ã" -#: src/strip.c:72 +#: src/strip.c:73 msgid "Embed name FILE instead of -f argument" msgstr "-f パラメーターã®ä»£ã‚ã‚Šã« åå‰ ãµãã„ã‚‹ を有効ã«ã™ã‚‹" -#: src/strip.c:76 +#: src/strip.c:77 msgid "Remove all debugging symbols" msgstr "デãƒãƒƒã‚°ç”¨ã®ã‚·ãƒ³ãƒœãƒ«ã‚’å…¨ã¦å–り除ã" -#: src/strip.c:80 +#: src/strip.c:81 msgid "Remove section headers (not recommended)" msgstr "" -#: src/strip.c:82 +#: src/strip.c:83 msgid "Copy modified/access timestamps to the output" msgstr "ä¿®æ£/アクセスタイムスタンプを出力ã¸è¤‡å†™ã™ã‚‹" -#: src/strip.c:84 +#: src/strip.c:85 msgid "" "Resolve all trivial relocations between debug sections if the removed " "sections are placed in a debug file (only relevant for ET_REL files, " "operation is not reversable, needs -f)" msgstr "" -#: src/strip.c:86 +#: src/strip.c:87 +msgid "" +"Similar to --reloc-debug-sections, but resolve all trivial relocations " +"between debug sections in place. No other stripping is performed (operation " +"is not reversable, incompatible with -f, -g, --remove-comment and --remove-" +"section)" +msgstr "" + +#: src/strip.c:89 msgid "Remove .comment section" msgstr ".comment セクションをå–り除ã" -#: src/strip.c:87 +#: src/strip.c:90 msgid "" "Remove the named section. SECTION is an extended wildcard pattern. May be " "given more than once. Only non-allocated sections can be removed." msgstr "" -#: src/strip.c:88 +#: src/strip.c:91 msgid "" "Keep the named section. SECTION is an extended wildcard pattern. May be " "given more than once." msgstr "" #. Short description of program. -#: src/strip.c:95 +#: src/strip.c:98 msgid "Discard symbols from object files." msgstr "オブジェクトファイルã‹ã‚‰ã‚·ãƒ³ãƒœãƒ«ã‚’ç ´æ£„ã™ã‚‹" -#: src/strip.c:241 +#: src/strip.c:247 #, c-format msgid "--reloc-debug-sections used without -f" msgstr "" -#: src/strip.c:255 +#: src/strip.c:253 +#, c-format +msgid "" +"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --" +"remove-section" +msgstr "" + +#: src/strip.c:267 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" msgstr "'-o' 㨠'-f' ã¨ä¸€ç·’ã®å ´åˆã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¯ 1 ã¤ã—ã‹èªã‚られã¾ã›ã‚“" -#: src/strip.c:278 +#: src/strip.c:290 #, c-format msgid "-f option specified twice" msgstr "-f オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™" -#: src/strip.c:287 +#: src/strip.c:299 #, c-format msgid "-F option specified twice" msgstr "-F オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™" -#: src/strip.c:346 +#: src/strip.c:362 #, fuzzy, c-format msgid "cannot both keep and remove .comment section" msgstr ".comment セクションをå–り除ã" -#: src/strip.c:371 src/strip.c:395 +#: src/strip.c:574 +#, fuzzy, c-format +msgid "bad relocation" +msgstr "リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示" + +#: src/strip.c:726 src/strip.c:750 #, c-format msgid "cannot stat input file '%s'" msgstr "入力ファイル '%s' ã‚’ stat ã§ãã¾ã›ã‚“" -#: src/strip.c:385 +#: src/strip.c:740 #, c-format msgid "while opening '%s'" msgstr "'%s' ã‚’é–‹ã„ã¦ã„ã‚‹é–“" -#: src/strip.c:423 +#: src/strip.c:778 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "%s: アーカイブã‹ã‚‰æŠœã出ã—ã¦ã„る時㯠-o ã‚„ -f ã¯ä½¿ãˆã¾ã›ã‚“" @@ -6169,132 +6197,132 @@ msgstr "%s: アーカイブã‹ã‚‰æŠœã出ã—ã¦ã„る時㯠-o ã‚„ -f ã¯ä½¿ãˆ #. result = handle_ar (fd, elf, NULL, fname, #. preserve_dates ? tv : NULL); #. -#: src/strip.c:435 +#: src/strip.c:790 #, fuzzy, c-format msgid "%s: no support for stripping archive" msgstr "%s: アーカイブã‹ã‚‰æŠœã出ã—ã¦ã„る時㯠-o ã‚„ -f ã¯ä½¿ãˆã¾ã›ã‚“" -#: src/strip.c:534 +#: src/strip.c:1001 #, c-format msgid "cannot open EBL backend" msgstr "EBL ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚’é–‹ã‘ã¾ã›ã‚“" -#: src/strip.c:579 +#: src/strip.c:1046 #, fuzzy, c-format msgid "cannot get number of phdrs" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/strip.c:595 src/strip.c:619 -#, c-format -msgid "cannot create new file '%s': %s" +#: src/strip.c:1060 src/strip.c:1103 +#, fuzzy, c-format +msgid "cannot create new ehdr for file '%s': %s" msgstr "æ–°ã—ã„ファイル '%s' を生æˆã§ãã¾ã›ã‚“: %s" -#: src/strip.c:701 +#: src/strip.c:1070 src/strip.c:1113 +#, fuzzy, c-format +msgid "cannot create new phdr for file '%s': %s" +msgstr "æ–°ã—ã„ファイル '%s' を生æˆã§ãã¾ã›ã‚“: %s" + +#: src/strip.c:1194 #, c-format msgid "illformed file '%s'" msgstr "ä¸é©æ ¼ãªãƒ•ã‚¡ã‚¤ãƒ« '%s'" -#: src/strip.c:711 +#: src/strip.c:1204 #, fuzzy, c-format msgid "Cannot remove allocated section '%s'" msgstr "PLT セクションを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/strip.c:720 +#: src/strip.c:1213 #, fuzzy, c-format msgid "Cannot both keep and remove section '%s'" msgstr "0番目ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’得られã¾ã›ã‚“: %s" -#: src/strip.c:1076 src/strip.c:1210 +#: src/strip.c:1573 src/strip.c:1688 #, c-format msgid "while generating output file: %s" msgstr "出力ファイルを生æˆã—ã¦ã„ã‚‹é–“: %s" -#: src/strip.c:1141 +#: src/strip.c:1637 #, fuzzy, c-format -msgid "%s: error while getting shdrstrndx: %s" +msgid "%s: error while updating ELF header: %s" msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:1157 +#: src/strip.c:1646 #, fuzzy, c-format -msgid "%s: error getting zero section: %s" -msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" +msgid "%s: error while getting shdrstrndx: %s" +msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:1166 +#: src/strip.c:1654 src/strip.c:2534 #, fuzzy, c-format -msgid "%s: error while updating zero section: %s" -msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" - -#: src/strip.c:1176 src/strip.c:2292 -#, c-format -msgid "%s: error while creating ELF header: %s" +msgid "%s: error updating shdrstrndx: %s" msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:1193 +#: src/strip.c:1671 #, c-format msgid "while preparing output for '%s'" msgstr "'%s' ã®ãŸã‚ã®å‡ºåŠ›ã‚’準備ã—ã¦ã„ã‚‹é–“" -#: src/strip.c:1255 src/strip.c:1318 +#: src/strip.c:1733 src/strip.c:1796 #, c-format msgid "while create section header section: %s" msgstr "セクションヘッダーセクションを生æˆã—ã¦ã„ã‚‹é–“: %s" -#: src/strip.c:1264 +#: src/strip.c:1742 #, c-format msgid "cannot allocate section data: %s" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/strip.c:1330 +#: src/strip.c:1808 #, c-format msgid "while create section header string table: %s" msgstr "セクションヘッダー文å—列テーブルを生æˆä¸: %s" -#: src/strip.c:1337 +#: src/strip.c:1815 #, fuzzy, c-format msgid "no memory to create section header string table" msgstr "セクションヘッダー文å—列テーブルを生æˆä¸: %s" -#: src/strip.c:1547 +#: src/strip.c:2027 #, c-format msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2078 -#, fuzzy, c-format -msgid "bad relocation" -msgstr "リãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示" - -#: src/strip.c:2203 src/strip.c:2316 +#: src/strip.c:2450 src/strip.c:2558 #, c-format msgid "while writing '%s': %s" msgstr "'%s' を書込ã¿ä¸: %s" -#: src/strip.c:2214 +#: src/strip.c:2461 #, c-format msgid "while creating '%s'" msgstr "'%s' を生æˆä¸" -#: src/strip.c:2237 +#: src/strip.c:2484 #, c-format msgid "while computing checksum for debug information" msgstr "デãƒãƒƒã‚°æƒ…å ±ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ を計算ä¸" -#: src/strip.c:2301 +#: src/strip.c:2525 +#, c-format +msgid "%s: error while creating ELF header: %s" +msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s" + +#: src/strip.c:2543 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:2341 src/strip.c:2361 +#: src/strip.c:2583 src/strip.c:2603 #, fuzzy, c-format msgid "while writing '%s'" msgstr "'%s' を書込ã¿ä¸: %s" -#: src/strip.c:2398 src/strip.c:2405 +#: src/strip.c:2640 src/strip.c:2647 #, c-format msgid "error while finishing '%s': %s" msgstr "'%s' ã®çµ‚了ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" -#: src/strip.c:2422 src/strip.c:2498 +#: src/strip.c:2664 src/strip.c:2740 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "'%s' ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨å¤‰æ›´æ—¥ä»˜ã‚’è¨å®šã§ãã¾ã›ã‚“" @@ -6380,269 +6408,299 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/unstrip.c:257 +#: src/unstrip.c:248 src/unstrip.c:2034 +#, c-format +msgid "cannot get ELF header: %s" +msgstr "" + +#: src/unstrip.c:258 #, fuzzy, c-format msgid "cannot get new zero section: %s" msgstr "セクションを得られã¾ã›ã‚“: %s" -#: src/unstrip.c:260 +#: src/unstrip.c:261 #, fuzzy, c-format msgid "cannot update new zero section: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/unstrip.c:264 +#: src/unstrip.c:265 #, c-format msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:268 src/unstrip.c:1962 src/unstrip.c:2005 +#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" -#: src/unstrip.c:273 src/unstrip.c:1966 +#: src/unstrip.c:274 src/unstrip.c:2056 #, c-format msgid "cannot create program headers: %s" msgstr "" -#: src/unstrip.c:279 +#: src/unstrip.c:280 #, c-format msgid "cannot copy program header: %s" msgstr "" -#: src/unstrip.c:289 +#: src/unstrip.c:290 #, c-format msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:292 src/unstrip.c:1597 +#: src/unstrip.c:293 src/unstrip.c:1665 #, c-format msgid "cannot get section data: %s" msgstr "" -#: src/unstrip.c:294 src/unstrip.c:1599 +#: src/unstrip.c:295 src/unstrip.c:1667 #, c-format msgid "cannot copy section data: %s" msgstr "" -#: src/unstrip.c:318 +#: src/unstrip.c:319 #, c-format msgid "cannot create directory '%s'" msgstr "" -#: src/unstrip.c:390 src/unstrip.c:820 src/unstrip.c:1631 +#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702 #, c-format msgid "cannot get symbol table entry: %s" msgstr "" -#: src/unstrip.c:406 src/unstrip.c:631 src/unstrip.c:652 src/unstrip.c:664 -#: src/unstrip.c:1652 src/unstrip.c:1828 src/unstrip.c:1852 +#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682 +#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942 #, c-format msgid "cannot update symbol table: %s" msgstr "" -#: src/unstrip.c:416 +#: src/unstrip.c:417 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:455 src/unstrip.c:466 +#: src/unstrip.c:459 src/unstrip.c:473 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:554 +#: src/unstrip.c:570 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:567 +#: src/unstrip.c:583 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:826 +#: src/unstrip.c:851 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "シンボル %2$sã®ä¸æ£ãªã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$zu " -#: src/unstrip.c:984 src/unstrip.c:1334 +#: src/unstrip.c:1009 src/unstrip.c:1398 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/unstrip.c:1025 src/unstrip.c:1044 src/unstrip.c:1082 +#: src/unstrip.c:1024 +#, fuzzy, c-format +msgid "bad sh_link for group section: %s" +msgstr "ä¸å½“㪠.debug_line セクション" + +#: src/unstrip.c:1030 +#, fuzzy, c-format +msgid "couldn't get shdr for group section: %s" +msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" + +#: src/unstrip.c:1035 +#, fuzzy, c-format +msgid "bad data for group symbol section: %s" +msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s" + +#: src/unstrip.c:1041 +#, fuzzy, c-format +msgid "couldn't get symbol for group section: %s" +msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s" + +#: src/unstrip.c:1046 +#, fuzzy, c-format +msgid "bad symbol name for group section: %s" +msgstr "セクションヘッダー文å—列セクションを生æˆã§ãã¾ã›ã‚“: %s" + +#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1062 +#: src/unstrip.c:1125 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 +#: src/unstrip.c:1136 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1128 src/unstrip.c:1456 +#: src/unstrip.c:1192 src/unstrip.c:1524 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿" -#: src/unstrip.c:1253 src/unstrip.c:1268 src/unstrip.c:1535 src/unstrip.c:1787 +#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1277 +#: src/unstrip.c:1341 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1305 src/unstrip.c:1309 +#: src/unstrip.c:1369 src/unstrip.c:1373 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1313 src/unstrip.c:1317 src/unstrip.c:1550 +#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1320 +#: src/unstrip.c:1384 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1379 src/unstrip.c:1471 +#: src/unstrip.c:1446 src/unstrip.c:1539 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1529 +#: src/unstrip.c:1597 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1639 +#: src/unstrip.c:1710 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•" -#: src/unstrip.c:1923 +#: src/unstrip.c:1742 +#, fuzzy, c-format +msgid "group has invalid section index [%zd]" +msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•" + +#: src/unstrip.c:2013 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s" -#: src/unstrip.c:1944 -#, c-format -msgid "cannot get ELF header: %s" -msgstr "" - -#: src/unstrip.c:1952 +#: src/unstrip.c:2042 #, c-format msgid "cannot update ELF header: %s" msgstr "ELF ヘッダーを更新ã§ãã¾ã›ã‚“: %s" -#: src/unstrip.c:1976 +#: src/unstrip.c:2066 #, c-format msgid "cannot update program header: %s" msgstr "" -#: src/unstrip.c:1981 src/unstrip.c:2063 +#: src/unstrip.c:2071 src/unstrip.c:2153 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2032 +#: src/unstrip.c:2122 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2035 +#: src/unstrip.c:2125 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2054 src/unstrip.c:2105 src/unstrip.c:2117 src/unstrip.c:2203 +#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2096 +#: src/unstrip.c:2186 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2098 +#: src/unstrip.c:2188 msgid ", use --force" msgstr "" -#: src/unstrip.c:2121 +#: src/unstrip.c:2211 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2124 +#: src/unstrip.c:2214 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2127 +#: src/unstrip.c:2217 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2130 +#: src/unstrip.c:2220 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2160 +#: src/unstrip.c:2250 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2164 +#: src/unstrip.c:2254 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2179 +#: src/unstrip.c:2269 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2183 +#: src/unstrip.c:2273 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2196 +#: src/unstrip.c:2286 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2227 +#: src/unstrip.c:2317 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2360 +#: src/unstrip.c:2450 #, c-format msgid "no matching modules found" msgstr "" -#: src/unstrip.c:2369 +#: src/unstrip.c:2459 #, c-format msgid "matched more than one module" msgstr "" -#: src/unstrip.c:2413 +#: src/unstrip.c:2503 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2414 +#: src/unstrip.c:2504 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" @@ -6683,6 +6741,14 @@ msgstr "出力é¸æŠž:" msgid "Show instances of inlined functions" msgstr "" +#, fuzzy +#~ msgid "%s: error getting zero section: %s" +#~ msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" + +#, fuzzy +#~ msgid "%s: error while updating zero section: %s" +#~ msgstr "%s: ファイルをèªè¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼: %s" + #~ msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" #~ msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2018-09-14 12:05+0200\n" +"POT-Creation-Date: 2018-11-16 12:42+0100\n" "PO-Revision-Date: 2016-12-29 17:48+0100\n" "Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n" "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n" @@ -59,8 +59,8 @@ msgstr "" "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyÅ›lnej gwarancji PRZYDATNOÅšCI\n" "HANDLOWEJ albo PRZYDATNOÅšCI DO OKREÅšLONYCH ZASTOSOWAŃ.\n" -#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3409 -#: src/readelf.c:11212 src/unstrip.c:2256 src/unstrip.c:2462 +#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414 +#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -301,7 +301,7 @@ msgstr " nieznana instrukcja" msgid ".debug_addr section missing" msgstr "brak sekcji .debug_ranges" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2403 +#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493 msgid "Input selection options:" msgstr "Opcje wyboru wejÅ›cia:" @@ -523,8 +523,8 @@ msgstr "Nie jest plikiem ELF ET_CORE" msgid "No backend" msgstr "Brak zaplecza" -#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:76 -#: libebl/eblobjnotetypename.c:83 libebl/eblobjnotetypename.c:102 +#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77 +#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 #: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:79 msgid "<unknown>" @@ -535,58 +535,58 @@ msgstr "<nieznany>" msgid "<unknown>: %#<PRIx64>" msgstr "<nieznany>: %#<PRIx64>" -#: libebl/eblobjnote.c:53 +#: libebl/eblobjnote.c:58 #, c-format msgid "unknown SDT version %u\n" msgstr "nieznana wersja SDT %u\n" -#: libebl/eblobjnote.c:71 +#: libebl/eblobjnote.c:76 #, c-format msgid "invalid SDT probe descriptor\n" msgstr "nieprawidÅ‚owy deskryptor sondy SDT\n" -#: libebl/eblobjnote.c:121 +#: libebl/eblobjnote.c:126 #, c-format msgid " PC: " msgstr " PC: " -#: libebl/eblobjnote.c:123 +#: libebl/eblobjnote.c:128 #, c-format msgid " Base: " msgstr " Podstawa: " -#: libebl/eblobjnote.c:125 +#: libebl/eblobjnote.c:130 #, c-format msgid " Semaphore: " msgstr " Semafor: " -#: libebl/eblobjnote.c:127 +#: libebl/eblobjnote.c:132 #, c-format msgid " Provider: " msgstr " Dostawca: " -#: libebl/eblobjnote.c:129 +#: libebl/eblobjnote.c:134 #, c-format msgid " Name: " msgstr " Nazwa: " -#: libebl/eblobjnote.c:131 +#: libebl/eblobjnote.c:136 #, c-format msgid " Args: " msgstr " Parametry: " -#: libebl/eblobjnote.c:141 +#: libebl/eblobjnote.c:300 #, c-format msgid " Build ID: " msgstr " Identyfikator kopii: " #. A non-null terminated version string. -#: libebl/eblobjnote.c:152 +#: libebl/eblobjnote.c:311 #, c-format msgid " Linker version: %.*s\n" msgstr " Wersja konsolidatora: %.*s\n" -#: libebl/eblobjnote.c:213 +#: libebl/eblobjnote.c:553 #, c-format msgid " OS: %s, ABI: " msgstr " System operacyjny: %s, ABI: " @@ -620,7 +620,7 @@ msgstr "nieprawidÅ‚owy rozmiar operanda źródÅ‚owego" msgid "invalid size of destination operand" msgstr "nieprawidÅ‚owy rozmiar operanda docelowego" -#: libelf/elf_error.c:87 src/readelf.c:6123 +#: libelf/elf_error.c:87 src/readelf.c:6129 #, c-format msgid "invalid encoding" msgstr "nieprawidÅ‚owe kodowanie" @@ -706,8 +706,8 @@ msgstr "dane/scn nie zgadzajÄ… siÄ™" msgid "invalid section header" msgstr "nieprawidÅ‚owy nagłówek sekcji" -#: libelf/elf_error.c:191 src/readelf.c:9758 src/readelf.c:10329 -#: src/readelf.c:10430 src/readelf.c:10611 +#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375 +#: src/readelf.c:10476 src/readelf.c:10658 #, c-format msgid "invalid data" msgstr "nieprawidÅ‚owe dane" @@ -1038,12 +1038,12 @@ msgstr "nie można wykonać stat na archiwum „%sâ€" msgid "no entry %s in archive\n" msgstr "brak wpisu %s w archiwum\n" -#: src/ar.c:472 src/ar.c:917 src/ar.c:1121 +#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 #, c-format msgid "cannot create hash table" msgstr "nie można utworzyć tabeli mieszajÄ…cej" -#: src/ar.c:479 src/ar.c:924 src/ar.c:1130 +#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 #, c-format msgid "cannot insert into hash table" msgstr "nie można umieÅ›cić w tabeli mieszajÄ…cej" @@ -1053,97 +1053,97 @@ msgstr "nie można umieÅ›cić w tabeli mieszajÄ…cej" msgid "cannot stat '%s'" msgstr "nie można wykonać stat na „%sâ€" -#: src/ar.c:583 +#: src/ar.c:589 #, c-format msgid "cannot read content of %s: %s" msgstr "nie można odczytać zawartoÅ›ci %s: %s" -#: src/ar.c:626 +#: src/ar.c:632 #, c-format msgid "cannot open %.*s" msgstr "nie można otworzyć %.*s" -#: src/ar.c:648 +#: src/ar.c:654 #, c-format msgid "failed to write %s" msgstr "zapisanie %s siÄ™ nie powiodÅ‚o" -#: src/ar.c:660 +#: src/ar.c:666 #, c-format msgid "cannot change mode of %s" msgstr "nie można zmienić trybu %s" -#: src/ar.c:676 +#: src/ar.c:682 #, c-format msgid "cannot change modification time of %s" msgstr "nie można zmienić czasu modyfikacji %s" -#: src/ar.c:722 +#: src/ar.c:728 #, c-format msgid "cannot rename temporary file to %.*s" msgstr "nie można zmienić nazwy pliku tymczasowego na %.*s" -#: src/ar.c:758 src/ar.c:1009 src/ar.c:1410 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "nie można utworzyć nowego pliku" -#: src/ar.c:1212 +#: src/ar.c:1218 #, c-format msgid "position member %s not found" msgstr "nie odnaleziono poÅ‚ożenia elementu %s" -#: src/ar.c:1222 +#: src/ar.c:1228 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: brak wpisu %s w archiwum.\n" -#: src/ar.c:1251 src/objdump.c:241 +#: src/ar.c:1257 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "nie można otworzyć %s" -#: src/ar.c:1256 +#: src/ar.c:1262 #, c-format msgid "cannot stat %s" msgstr "nie można wykonać stat na %s" -#: src/ar.c:1262 +#: src/ar.c:1268 #, c-format msgid "%s is no regular file" msgstr "%s nie jest zwykÅ‚ym plikiem" -#: src/ar.c:1275 +#: src/ar.c:1281 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "nie można uzyskać deskryptora ELF dla %s: %s\n" -#: src/ar.c:1295 +#: src/ar.c:1301 #, c-format msgid "cannot read %s: %s" msgstr "nie można odczytać %s: %s" -#: src/ar.c:1470 +#: src/ar.c:1476 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "nie można dekompresować danych" -#: src/ar.c:1476 +#: src/ar.c:1482 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "nie można dekompresować danych" -#: src/ar.c:1482 +#: src/ar.c:1488 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "nie można dekompresować danych" -#: src/ar.c:1488 +#: src/ar.c:1494 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "nie można uzyskać nazwy sekcji" -#: src/ar.c:1494 +#: src/ar.c:1500 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "nie można otworzyć %s" @@ -1365,8 +1365,8 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "NieprawidÅ‚owa wartość „%s†dla parametru --gaps." #: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141 -#: src/size.c:272 src/strings.c:185 src/strip.c:517 src/strip.c:554 -#: src/unstrip.c:2052 src/unstrip.c:2081 +#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021 +#: src/unstrip.c:2142 src/unstrip.c:2171 #, c-format msgid "cannot open '%s'" msgstr "nie można otworzyć „%sâ€" @@ -1381,7 +1381,7 @@ msgstr "nie można utworzyć deskryptora ELF dla „%sâ€: %s" msgid "cannot create EBL descriptor for '%s'" msgstr "nie można utworzyć deskryptora EBL dla „%sâ€" -#: src/elfcmp.c:761 src/findtextrel.c:393 +#: src/elfcmp.c:761 src/findtextrel.c:394 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "nie można uzyskać nagłówka sekcji dla sekcji %zu: %s" @@ -1396,7 +1396,7 @@ msgstr "nie można uzyskać zawartoÅ›ci sekcji %zu: %s" msgid "cannot get relocation: %s" msgstr "nie można uzyskać relokacji: %s" -#: src/elfcompress.c:115 src/strip.c:296 src/unstrip.c:121 +#: src/elfcompress.c:115 src/strip.c:308 src/unstrip.c:121 #, c-format msgid "-o option specified twice" msgstr "OpcjÄ™ -o podano dwukrotnie" @@ -1455,7 +1455,7 @@ msgid "" "rewrite the file even if no section would be (de)compressed" msgstr "Wymusza kompresjÄ™ sekcji nawet, jeÅ›li spowodowaÅ‚oby to jej zwiÄ™kszenie" -#: src/elfcompress.c:1324 src/strip.c:90 +#: src/elfcompress.c:1324 src/strip.c:93 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Åagodzi kilka reguÅ‚, aby obsÅ‚użyć lekko uszkodzone pliki ELF" @@ -1675,7 +1675,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1494 src/elflint.c:1545 src/elflint.c:1651 #: src/elflint.c:1987 src/elflint.c:2313 src/elflint.c:2932 src/elflint.c:3095 -#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4401 +#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4431 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "sekcja [%2d] „%sâ€: nie można uzyskać danych sekcji\n" @@ -3229,51 +3229,54 @@ msgstr "" "sekcja [%2d]: „%sâ€: nieznany typ notatki pliku core %<PRIu32> pod offsetem " "%zu\n" -#: src/elflint.c:4344 -#, c-format -msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n" +#: src/elflint.c:4370 +#, fuzzy, c-format +msgid "" +"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " +"offset %zu\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem %zu\n" -#: src/elflint.c:4348 -#, c-format +#: src/elflint.c:4375 +#, fuzzy, c-format msgid "" -"section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n" +"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " +"'%s' at offset %zu\n" msgstr "" "sekcja [%2d] „%sâ€: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem " "%zu\n" -#: src/elflint.c:4365 +#: src/elflint.c:4394 #, 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:4384 +#: src/elflint.c:4414 #, 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:4387 +#: src/elflint.c:4417 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "phdr[%d]: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n" -#: src/elflint.c:4408 +#: src/elflint.c:4438 #, 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:4415 +#: src/elflint.c:4445 #, 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:4418 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "sekcja [%2d] „%sâ€: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n" -#: src/elflint.c:4436 +#: src/elflint.c:4466 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3281,135 +3284,135 @@ msgstr "" "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogÄ… mieć " "nagłówki programu\n" -#: src/elflint.c:4451 +#: src/elflint.c:4481 #, 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:4460 +#: src/elflint.c:4490 #, 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:4471 +#: src/elflint.c:4501 #, 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:4479 +#: src/elflint.c:4509 #, 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:4486 +#: src/elflint.c:4516 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n" -#: src/elflint.c:4500 +#: src/elflint.c:4530 #, 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:4503 +#: src/elflint.c:4533 #, 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:4513 +#: src/elflint.c:4543 #, 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:4534 +#: src/elflint.c:4564 #, 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:4545 +#: src/elflint.c:4575 #, 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:4552 +#: src/elflint.c:4582 #, 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:4561 src/elflint.c:4584 +#: src/elflint.c:4591 src/elflint.c:4614 #, 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:4590 +#: src/elflint.c:4620 #, 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:4615 +#: src/elflint.c:4647 #, 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:4618 +#: src/elflint.c:4650 #, 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:4631 +#: src/elflint.c:4663 #, 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:4639 +#: src/elflint.c:4671 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabela wyszukiwania ramki wywoÅ‚ania musi być przydzielona\n" -#: src/elflint.c:4642 +#: src/elflint.c:4674 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sekcja [%2zu] „%sâ€: musi być przydzielona\n" -#: src/elflint.c:4646 +#: src/elflint.c:4678 #, 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:4649 +#: src/elflint.c:4681 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sekcja [%2zu] „%s†nie może być zapisywalna\n" -#: src/elflint.c:4654 +#: src/elflint.c:4686 #, 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:4657 +#: src/elflint.c:4689 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sekcja [%2zu] „%s†nie może być wykonywalna\n" -#: src/elflint.c:4668 +#: src/elflint.c:4700 #, 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:4675 +#: src/elflint.c:4707 #, 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:4678 +#: src/elflint.c:4710 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3418,7 +3421,7 @@ msgstr "" "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie sÄ… " "wielokrotnoÅ›ciÄ… wyrównania\n" -#: src/elflint.c:4691 +#: src/elflint.c:4723 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3427,12 +3430,12 @@ msgstr "" "plik wykonywalny/DSO z sekcjÄ… .eh_frame_hdr nie ma wpisu nagłówka programu " "PT_GNU_EH_FRAME" -#: src/elflint.c:4725 +#: src/elflint.c:4757 #, c-format msgid "cannot read ELF header: %s\n" msgstr "nie można odczytać nagłówka ELF: %s\n" -#: src/elflint.c:4751 +#: src/elflint.c:4783 #, c-format msgid "text relocation flag set but not needed\n" msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n" @@ -3456,7 +3459,7 @@ msgstr "Odnajduje źródÅ‚o relokacji tekstu w PLIKACH (domyÅ›lnie a.out)." #. Strings for arguments in help texts. #: src/findtextrel.c:74 src/nm.c:108 src/objdump.c:71 src/size.c:80 -#: src/strings.c:87 src/strip.c:98 +#: src/strings.c:87 src/strip.c:101 msgid "[FILE...]" msgstr "[PLIK…]" @@ -3475,53 +3478,53 @@ msgstr "„%s†nie jest DSO ani PIE" msgid "getting get section header of section %zu: %s" msgstr "uzyskiwanie nagłówka sekcji dla sekcji %zu: %s" -#: src/findtextrel.c:276 +#: src/findtextrel.c:277 #, c-format msgid "cannot read dynamic section: %s" msgstr "nie można odczytać sekcji dynamicznej: %s" -#: src/findtextrel.c:297 +#: src/findtextrel.c:298 #, c-format msgid "no text relocations reported in '%s'" msgstr "brak relokacji tekstu w „%sâ€" -#: src/findtextrel.c:309 +#: src/findtextrel.c:310 #, c-format msgid "while reading ELF file" msgstr "podczas odczytywania pliku ELF" -#: src/findtextrel.c:313 +#: src/findtextrel.c:314 #, c-format msgid "cannot get program header count: %s" msgstr "nie można uzyskać liczby nagłówków programu: %s" -#: src/findtextrel.c:324 src/findtextrel.c:341 +#: src/findtextrel.c:325 src/findtextrel.c:342 #, c-format msgid "cannot get program header index at offset %zd: %s" msgstr "nie można uzyskać indeksu nagłówka programu pod offsetem %zd: %s" -#: src/findtextrel.c:405 +#: src/findtextrel.c:406 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" msgstr "nie można uzyskać sekcji tabeli symboli %zu w „%sâ€: %s" -#: src/findtextrel.c:425 src/findtextrel.c:448 +#: src/findtextrel.c:427 src/findtextrel.c:450 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" msgstr "nie można uzyskać relokacji pod indeksem %d w sekcji %zu w „%sâ€: %s" -#: src/findtextrel.c:514 +#: src/findtextrel.c:516 #, c-format msgid "%s not compiled with -fpic/-fPIC\n" msgstr "%s nie zostaÅ‚ skompilowany z -fpic/-fPIC\n" -#: src/findtextrel.c:567 +#: src/findtextrel.c:570 #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" msgstr "plik zawierajÄ…cy funkcjÄ™ „%s†nie zostaÅ‚ skompilowany z -fpic/-fPIC\n" -#: src/findtextrel.c:574 src/findtextrel.c:594 +#: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" @@ -3529,7 +3532,7 @@ msgid "" msgstr "" "plik zawierajÄ…cy funkcjÄ™ „%s†mógÅ‚ nie zostać skompilowany z -fpic/-fPIC\n" -#: src/findtextrel.c:582 +#: src/findtextrel.c:585 #, c-format msgid "" "either the file containing the function '%s' or the file containing the " @@ -3538,7 +3541,7 @@ msgstr "" "plik zawierajÄ…cy funkcjÄ™ „%s†lub plik zawierajÄ…cy funkcjÄ™ „%s†nie zostaÅ‚ " "skompilowany z -fpic/-fPIC\n" -#: src/findtextrel.c:602 +#: src/findtextrel.c:605 #, c-format msgid "" "a relocation modifies memory at offset %llu in a write-protected segment\n" @@ -3546,7 +3549,7 @@ msgstr "" "relokacja modyfikuje pamięć pod offsetem %llu w segmencie zabezpieczonym " "przed zapisem\n" -#: src/nm.c:66 src/strip.c:69 +#: src/nm.c:66 src/strip.c:70 msgid "Output selection:" msgstr "Wybór wyjÅ›cia:" @@ -3610,7 +3613,7 @@ msgstr "Oznacza specjalne symbole" msgid "Print size of defined symbols" msgstr "WyÅ›wietla rozmiar okreÅ›lonych symboli" -#: src/nm.c:91 src/size.c:68 src/strip.c:74 src/unstrip.c:73 +#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:73 msgid "Output options:" msgstr "Opcje wyjÅ›cia:" @@ -3639,18 +3642,18 @@ msgstr "WyÅ›wietla listÄ™ symboli z PLIKU (domyÅ›lnie a.out)." msgid "Output formatting" msgstr "Formatowanie wyjÅ›cia" -#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:130 +#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133 #, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: BÅÄ„D WEWNĘTRZNY %d (%s): %s" #: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308 -#: src/strip.c:2505 +#: src/strip.c:2747 #, c-format msgid "while closing '%s'" msgstr "podczas zamykania „%sâ€" -#: src/nm.c:403 src/objdump.c:280 src/strip.c:442 +#: src/nm.c:403 src/objdump.c:280 src/strip.c:797 #, c-format msgid "%s: File format not recognized" msgstr "%s: nie rozpoznano formatu pliku" @@ -3690,12 +3693,12 @@ msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" #: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605 -#: src/readelf.c:1410 src/readelf.c:1558 src/readelf.c:1759 src/readelf.c:1965 -#: src/readelf.c:2155 src/readelf.c:2333 src/readelf.c:2409 src/readelf.c:2667 -#: src/readelf.c:2743 src/readelf.c:2830 src/readelf.c:3428 src/readelf.c:3478 -#: src/readelf.c:3541 src/readelf.c:11044 src/readelf.c:12216 -#: src/readelf.c:12419 src/readelf.c:12487 src/size.c:396 src/size.c:465 -#: src/strip.c:571 +#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970 +#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672 +#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483 +#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276 +#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467 +#: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" msgstr "nie można uzyskać indeksu tabeli ciÄ…gów nagłówków sekcji" @@ -3788,11 +3791,11 @@ msgstr "Nie podano dziaÅ‚ania.\n" msgid "while close `%s'" msgstr "podczas zamykania „%sâ€" -#: src/objdump.c:363 src/readelf.c:2060 src/readelf.c:2252 +#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257 msgid "INVALID SYMBOL" msgstr "NIEPRAWIDÅOWY SYMBOL" -#: src/objdump.c:378 src/readelf.c:2094 src/readelf.c:2288 +#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293 msgid "INVALID SECTION" msgstr "NIEPRAWIDÅOWA SEKCJA" @@ -3999,21 +4002,21 @@ msgstr "Nieznana sekcja debugowania DWARF „%sâ€.\n" msgid "cannot generate Elf descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/readelf.c:596 src/readelf.c:924 src/strip.c:640 +#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133 #, c-format msgid "cannot determine number of sections: %s" msgstr "nie można okreÅ›lić liczby sekcji: %s" -#: src/readelf.c:614 src/readelf.c:1226 src/readelf.c:1434 +#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436 #, c-format msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:623 src/readelf.c:1233 src/readelf.c:1442 src/readelf.c:12439 -#: src/unstrip.c:394 src/unstrip.c:425 src/unstrip.c:474 src/unstrip.c:584 -#: src/unstrip.c:605 src/unstrip.c:642 src/unstrip.c:846 src/unstrip.c:1138 -#: src/unstrip.c:1330 src/unstrip.c:1391 src/unstrip.c:1564 src/unstrip.c:1679 -#: src/unstrip.c:1819 src/unstrip.c:1914 +#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600 +#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202 +#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766 +#: src/unstrip.c:1909 src/unstrip.c:2004 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" @@ -4023,8 +4026,8 @@ msgstr "nie można uzyskać nagłówka sekcji: %s" msgid "cannot get section name" msgstr "nie można uzyskać nazwy sekcji" -#: src/readelf.c:640 src/readelf.c:6533 src/readelf.c:10317 src/readelf.c:10419 -#: src/readelf.c:10596 +#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465 +#: src/readelf.c:10643 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartoÅ›ci %s: %s" @@ -4074,53 +4077,58 @@ msgstr "odczytanie „%s†siÄ™ nie powiodÅ‚o: %s" msgid "No such section '%s' in '%s'" msgstr "Brak sekcji „%s†w „%sâ€" -#: src/readelf.c:909 +#: src/readelf.c:908 #, c-format msgid "cannot read ELF header: %s" msgstr "nie można odczytać nagłówka ELF: %s" -#: src/readelf.c:917 +#: src/readelf.c:916 #, c-format msgid "cannot create EBL handle" msgstr "nie można utworzyć uchwytu EBL" -#: src/readelf.c:930 +#: src/readelf.c:929 #, 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:1020 +#: src/readelf.c:961 +#, fuzzy, c-format +msgid "cannot read ELF: %s" +msgstr "nie można odczytać %s: %s" + +#: src/readelf.c:1022 msgid "NONE (None)" msgstr "NONE (żaden)" -#: src/readelf.c:1021 +#: src/readelf.c:1023 msgid "REL (Relocatable file)" msgstr "REL (plik relokowalny)" -#: src/readelf.c:1022 +#: src/readelf.c:1024 msgid "EXEC (Executable file)" msgstr "EXEC (plik wykonywalny)" -#: src/readelf.c:1023 +#: src/readelf.c:1025 msgid "DYN (Shared object file)" msgstr "DYN (plik obiektu współdzielonego)" -#: src/readelf.c:1024 +#: src/readelf.c:1026 msgid "CORE (Core file)" msgstr "CORE (plik core)" -#: src/readelf.c:1029 +#: src/readelf.c:1031 #, c-format msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1031 +#: src/readelf.c:1033 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Zależny od procesora: (%x)\n" -#: src/readelf.c:1041 +#: src/readelf.c:1043 msgid "" "ELF Header:\n" " Magic: " @@ -4128,7 +4136,7 @@ msgstr "" "Nagłówek ELF:\n" " Magic: " -#: src/readelf.c:1045 +#: src/readelf.c:1047 #, c-format msgid "" "\n" @@ -4137,118 +4145,118 @@ msgstr "" "\n" " Klasa: %s\n" -#: src/readelf.c:1050 +#: src/readelf.c:1052 #, c-format msgid " Data: %s\n" msgstr " Dane: %s\n" -#: src/readelf.c:1056 +#: src/readelf.c:1058 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Wersja Ident: %hhd %s\n" -#: src/readelf.c:1058 src/readelf.c:1075 +#: src/readelf.c:1060 src/readelf.c:1077 msgid "(current)" msgstr "(bieżąca)" -#: src/readelf.c:1062 +#: src/readelf.c:1064 #, c-format msgid " OS/ABI: %s\n" msgstr " System operacyjny/ABI: %s\n" -#: src/readelf.c:1065 +#: src/readelf.c:1067 #, c-format msgid " ABI Version: %hhd\n" msgstr " Wersja ABI: %hhd\n" -#: src/readelf.c:1068 +#: src/readelf.c:1070 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:1071 +#: src/readelf.c:1073 #, c-format msgid " Machine: %s\n" msgstr " Komputer: %s\n" -#: src/readelf.c:1073 +#: src/readelf.c:1075 #, c-format msgid " Version: %d %s\n" msgstr " Wersja: %d %s\n" -#: src/readelf.c:1077 +#: src/readelf.c:1079 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Adres punktu wejÅ›ciowego: %#<PRIx64>\n" -#: src/readelf.c:1080 +#: src/readelf.c:1082 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " PoczÄ…tek nagłówków programu: %<PRId64> %s\n" -#: src/readelf.c:1081 src/readelf.c:1084 +#: src/readelf.c:1083 src/readelf.c:1086 msgid "(bytes into file)" msgstr "(bajtów w pliku)" -#: src/readelf.c:1083 +#: src/readelf.c:1085 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " PoczÄ…tek nagłówków sekcji: %<PRId64> %s\n" -#: src/readelf.c:1086 +#: src/readelf.c:1088 #, c-format msgid " Flags: %s\n" msgstr " Flagi: %s\n" -#: src/readelf.c:1089 +#: src/readelf.c:1091 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n" -#: src/readelf.c:1090 src/readelf.c:1093 src/readelf.c:1110 +#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112 msgid "(bytes)" msgstr "(bajtów)" -#: src/readelf.c:1092 +#: src/readelf.c:1094 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n" -#: src/readelf.c:1095 +#: src/readelf.c:1097 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków programu: %<PRId16>" -#: src/readelf.c:1102 +#: src/readelf.c:1104 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> w [0].sh_info)" -#: src/readelf.c:1105 src/readelf.c:1122 src/readelf.c:1136 +#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138 msgid " ([0] not available)" msgstr " ([0] niedostÄ™pny)" -#: src/readelf.c:1109 +#: src/readelf.c:1111 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n" -#: src/readelf.c:1112 +#: src/readelf.c:1114 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>" -#: src/readelf.c:1119 +#: src/readelf.c:1121 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> w [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1132 +#: src/readelf.c:1134 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> w [0].sh_link)" -#: src/readelf.c:1140 +#: src/readelf.c:1142 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4257,7 +4265,7 @@ msgstr "" " Indeks tabeli ciÄ…gów nagłówków sekcji: XINDEX%s\n" "\n" -#: src/readelf.c:1144 +#: src/readelf.c:1146 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4266,12 +4274,12 @@ msgstr "" " Indeks tabeli ciÄ…gów nagłówków sekcji: %<PRId16>\n" "\n" -#: src/readelf.c:1191 src/readelf.c:1399 +#: src/readelf.c:1193 src/readelf.c:1401 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "nie można okreÅ›lić liczby sekcji: %s" -#: src/readelf.c:1194 +#: src/readelf.c:1196 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4280,16 +4288,16 @@ msgstr "" "Jest %d nagłówków sekcji, rozpoczynajÄ…cych siÄ™ od offsetu %#<PRIx64>:\n" "\n" -#: src/readelf.c:1203 +#: src/readelf.c:1205 #, fuzzy, 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" -#: src/readelf.c:1206 +#: src/readelf.c:1208 msgid "Section Headers:" msgstr "Nagłówki sekcji:" -#: src/readelf.c:1209 +#: src/readelf.c:1211 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4297,7 +4305,7 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk " "Inf Al" -#: src/readelf.c:1211 +#: src/readelf.c:1213 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4305,36 +4313,36 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozmiar ES " "Flagi Lk Inf Al" -#: src/readelf.c:1216 +#: src/readelf.c:1218 msgid " [Compression Size Al]" msgstr " [Kompresja Rozmiar Al]" -#: src/readelf.c:1218 +#: src/readelf.c:1220 msgid " [Compression Size Al]" msgstr " [Kompresja Rozmiar Al]" -#: src/readelf.c:1294 +#: src/readelf.c:1296 #, c-format msgid "bad compression header for section %zd: %s" msgstr "bÅ‚Ä™dny nagłówek kompresji dla sekcji %zd: %s" -#: src/readelf.c:1305 +#: src/readelf.c:1307 #, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "bÅ‚Ä™dny rozmiar kompresji gnu dla sekcji %zd: %s" -#: src/readelf.c:1323 +#: src/readelf.c:1325 msgid "Program Headers:" msgstr "Nagłówki programu:" -#: src/readelf.c:1325 +#: src/readelf.c:1327 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg " "Wyrównanie" -#: src/readelf.c:1328 +#: src/readelf.c:1330 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4342,12 +4350,12 @@ msgstr "" " Typ Offset AdresWirtualny AdresFizyczny RozmPlik " "RozmPam Flg Wyrównanie" -#: src/readelf.c:1385 +#: src/readelf.c:1387 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[WywoÅ‚anie interpretera programu: %s]\n" -#: src/readelf.c:1412 +#: src/readelf.c:1414 msgid "" "\n" " Section to Segment mapping:\n" @@ -4357,12 +4365,12 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1423 src/unstrip.c:1973 src/unstrip.c:2015 src/unstrip.c:2022 +#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" -#: src/readelf.c:1566 +#: src/readelf.c:1571 #, c-format msgid "" "\n" @@ -4380,7 +4388,7 @@ msgstr[2] "" "\n" "Grupa sekcji COMDAT [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n" -#: src/readelf.c:1571 +#: src/readelf.c:1576 #, c-format msgid "" "\n" @@ -4398,31 +4406,31 @@ msgstr[2] "" "\n" "Grupa sekcji [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n" -#: src/readelf.c:1579 +#: src/readelf.c:1584 msgid "<INVALID SYMBOL>" msgstr "<NIEPRAWIDÅOWY SYMBOL>" -#: src/readelf.c:1593 +#: src/readelf.c:1598 msgid "<INVALID SECTION>" msgstr "<NIEPRAWIDÅOWY SEKCJA>" -#: src/readelf.c:1616 src/readelf.c:2343 src/readelf.c:3444 src/readelf.c:12310 -#: src/readelf.c:12317 src/readelf.c:12361 src/readelf.c:12368 +#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371 +#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429 msgid "Couldn't uncompress section" msgstr "Nie można dekompresować sekcji" -#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 +#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454 #, c-format msgid "cannot get section [%zd] header: %s" msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s" -#: src/readelf.c:1765 src/readelf.c:2415 src/readelf.c:2673 src/readelf.c:2749 -#: src/readelf.c:3053 src/readelf.c:3127 src/readelf.c:5322 +#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754 +#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327 #, c-format msgid "invalid sh_link value in section %zu" msgstr "nieprawidÅ‚owa wartość sh_link w sekcji %zu" -#: src/readelf.c:1768 +#: src/readelf.c:1773 #, c-format msgid "" "\n" @@ -4448,36 +4456,36 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "'%s'\n" -#: src/readelf.c:1778 +#: src/readelf.c:1783 msgid " Type Value\n" msgstr " Typ Wartość\n" -#: src/readelf.c:1802 +#: src/readelf.c:1807 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteka współdzielona: [%s]\n" -#: src/readelf.c:1807 +#: src/readelf.c:1812 #, c-format msgid "Library soname: [%s]\n" msgstr "soname biblioteki: [%s]\n" -#: src/readelf.c:1812 +#: src/readelf.c:1817 #, c-format msgid "Library rpath: [%s]\n" msgstr "rpath biblioteki: [%s]\n" -#: src/readelf.c:1817 +#: src/readelf.c:1822 #, c-format msgid "Library runpath: [%s]\n" msgstr "runpath biblioteki: [%s]\n" -#: src/readelf.c:1837 +#: src/readelf.c:1842 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bajtów)\n" -#: src/readelf.c:1950 src/readelf.c:2140 +#: src/readelf.c:1955 src/readelf.c:2145 #, c-format msgid "" "\n" @@ -4486,7 +4494,7 @@ msgstr "" "\n" "NieprawidÅ‚owa tabela symboli pod offsetem %#0<PRIx64>\n" -#: src/readelf.c:1968 src/readelf.c:2158 +#: src/readelf.c:1973 src/readelf.c:2163 #, c-format msgid "" "\n" @@ -4515,7 +4523,7 @@ msgstr[2] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:1983 src/readelf.c:2173 +#: src/readelf.c:1988 src/readelf.c:2178 #, c-format msgid "" "\n" @@ -4533,30 +4541,30 @@ msgstr[2] "" "\n" "Sekcja relokacji [%2u] „%s†pod offsetem %#0<PRIx64> zawiera %d wpisów:\n" -#: src/readelf.c:1993 +#: src/readelf.c:1998 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1995 +#: src/readelf.c:2000 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:2048 src/readelf.c:2059 src/readelf.c:2072 src/readelf.c:2093 -#: src/readelf.c:2105 src/readelf.c:2239 src/readelf.c:2251 src/readelf.c:2265 -#: src/readelf.c:2287 src/readelf.c:2300 +#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098 +#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270 +#: src/readelf.c:2292 src/readelf.c:2305 msgid "<INVALID RELOC>" msgstr "<NIEPRAWIDÅOWA RELOKACJA>" -#: src/readelf.c:2183 +#: src/readelf.c:2188 msgid " Offset Type Value Addend Name\n" msgstr " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2185 +#: src/readelf.c:2190 msgid " Offset Type Value Addend Name\n" msgstr "" " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2423 +#: src/readelf.c:2428 #, c-format msgid "" "\n" @@ -4574,7 +4582,7 @@ msgstr[2] "" "\n" "Tabela symboli [%2u] „%s†zawiera %u wpisów:\n" -#: src/readelf.c:2428 +#: src/readelf.c:2433 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -4582,33 +4590,33 @@ msgstr[0] " %lu symbol lokalny Tabela ciÄ…gów: [%2u] „%sâ€\n" msgstr[1] " %lu symbole lokalne Tabela ciÄ…gów: [%2u] „%sâ€\n" msgstr[2] " %lu symboli lokalnych Tabela ciÄ…gów: [%2u] „%sâ€\n" -#: src/readelf.c:2436 +#: src/readelf.c:2441 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2438 +#: src/readelf.c:2443 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2458 +#: src/readelf.c:2463 #, 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:2546 +#: src/readelf.c:2551 #, c-format msgid "bad dynamic symbol" msgstr "bÅ‚Ä™dny symbol dynamiczny" -#: src/readelf.c:2628 +#: src/readelf.c:2633 msgid "none" msgstr "brak" -#: src/readelf.c:2645 +#: src/readelf.c:2650 msgid "| <unknown>" msgstr "| <nieznany>" -#: src/readelf.c:2676 +#: src/readelf.c:2681 #, c-format msgid "" "\n" @@ -4634,17 +4642,17 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:2697 +#: src/readelf.c:2702 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n" -#: src/readelf.c:2710 +#: src/readelf.c:2715 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n" -#: src/readelf.c:2753 +#: src/readelf.c:2758 #, c-format msgid "" "\n" @@ -4670,19 +4678,19 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:2781 +#: src/readelf.c:2786 #, 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:2796 +#: src/readelf.c:2801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" #. Print the header. -#: src/readelf.c:3057 +#: src/readelf.c:3062 #, c-format msgid "" "\n" @@ -4705,15 +4713,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:3085 +#: src/readelf.c:3090 msgid " 0 *local* " msgstr " 0 *lokalny* " -#: src/readelf.c:3090 +#: src/readelf.c:3095 msgid " 1 *global* " msgstr " 1 *globalny* " -#: src/readelf.c:3132 +#: src/readelf.c:3137 #, c-format msgid "" "\n" @@ -4744,22 +4752,22 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] " "„%sâ€\n" -#: src/readelf.c:3154 +#: src/readelf.c:3159 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " DÅ‚ugość Liczba % caÅ‚oÅ›ci Pokrycie\n" -#: src/readelf.c:3156 +#: src/readelf.c:3161 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3163 +#: src/readelf.c:3168 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3176 +#: src/readelf.c:3181 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4768,37 +4776,37 @@ msgstr "" " Åšrednia liczba testów: udane wyszukania: %f\n" "\t\t\t nieudane wyszukania: %f\n" -#: src/readelf.c:3194 src/readelf.c:3258 src/readelf.c:3324 +#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329 #, c-format msgid "cannot get data for section %d: %s" msgstr "nie można uzyskać danych dla sekcji %d: %s" -#: src/readelf.c:3202 +#: src/readelf.c:3207 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash %d" -#: src/readelf.c:3231 +#: src/readelf.c:3236 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash %d" -#: src/readelf.c:3266 +#: src/readelf.c:3271 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash64 %d" -#: src/readelf.c:3297 +#: src/readelf.c:3302 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "nieprawidÅ‚owe dane w sekcji sysv.hash64 %d" -#: src/readelf.c:3333 +#: src/readelf.c:3338 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "nieprawidÅ‚owe dane w sekcji gnu.hash %d" -#: src/readelf.c:3400 +#: src/readelf.c:3405 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4808,7 +4816,7 @@ msgstr "" " Rozmiar maski bitowej: %zu bajtów %<PRIuFAST32>%% bitów ustawionych " "drugie przesuniÄ™cie skrótu: %u\n" -#: src/readelf.c:3489 +#: src/readelf.c:3494 #, c-format msgid "" "\n" @@ -4829,7 +4837,7 @@ msgstr[2] "" "Sekcja listy bibliotek [%2zu] „%s†pod offsetem %#0<PRIx64> zawiera %d " "wpisów:\n" -#: src/readelf.c:3503 +#: src/readelf.c:3508 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4837,7 +4845,7 @@ msgstr "" " Biblioteka Oznaczenie czasu Suma k. Wersja " "Flagi" -#: src/readelf.c:3553 +#: src/readelf.c:3558 #, c-format msgid "" "\n" @@ -4848,102 +4856,102 @@ msgstr "" "Sekcja atrybutów obiektu [%2zu] „%s†%<PRIu64> bajtów pod offsetem " "%#0<PRIx64>:\n" -#: src/readelf.c:3570 +#: src/readelf.c:3575 msgid " Owner Size\n" msgstr " WÅ‚aÅ›ciciel Rozmiar\n" -#: src/readelf.c:3599 +#: src/readelf.c:3604 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3638 +#: src/readelf.c:3643 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3643 +#: src/readelf.c:3648 #, c-format msgid " File: %11<PRIu32>\n" msgstr " Plik: %11<PRIu32>\n" -#: src/readelf.c:3692 +#: src/readelf.c:3697 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3695 +#: src/readelf.c:3700 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3698 +#: src/readelf.c:3703 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3708 +#: src/readelf.c:3713 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3711 +#: src/readelf.c:3716 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3781 +#: src/readelf.c:3786 #, fuzzy, c-format msgid "sprintf failure" msgstr "mprotect siÄ™ nie powiodÅ‚o" -#: src/readelf.c:4263 +#: src/readelf.c:4268 msgid "empty block" msgstr "pusty blok" -#: src/readelf.c:4266 +#: src/readelf.c:4271 #, c-format msgid "%zu byte block:" msgstr "%zu bajtowy blok:" -#: src/readelf.c:4744 +#: src/readelf.c:4749 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <SKRÓCONE>\n" -#: src/readelf.c:4808 +#: src/readelf.c:4813 #, 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:4815 +#: src/readelf.c:4820 #, 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:4822 +#: src/readelf.c:4827 #, 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:4829 +#: src/readelf.c:4834 #, fuzzy, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "%s %#<PRIx64> zostaÅ‚o użyte z różnymi rozmiarami adresu" -#: src/readelf.c:4926 +#: src/readelf.c:4931 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr " [%6tx] <NIEUÅ»YWANE ÅšMIECIE W RESZCIE SEKCJI>\n" -#: src/readelf.c:4934 +#: src/readelf.c:4939 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <NIEUÅ»YWANE ÅšMIECIE>… %<PRIu64> bajtów…\n" -#: src/readelf.c:5012 +#: src/readelf.c:5017 #, c-format msgid "" "\n" @@ -4954,7 +4962,7 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" " [ Kod]\n" -#: src/readelf.c:5020 +#: src/readelf.c:5025 #, c-format msgid "" "\n" @@ -4963,20 +4971,20 @@ msgstr "" "\n" "Sekcja skrótów pod offsetem %<PRIu64>:\n" -#: src/readelf.c:5033 +#: src/readelf.c:5038 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** bÅ‚Ä…d podczas odczytywania skrótu: %s\n" -#: src/readelf.c:5049 +#: src/readelf.c:5054 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n" -#: src/readelf.c:5082 src/readelf.c:5391 src/readelf.c:5557 src/readelf.c:5942 -#: src/readelf.c:6543 src/readelf.c:8184 src/readelf.c:8854 src/readelf.c:9290 -#: src/readelf.c:9534 src/readelf.c:9699 src/readelf.c:10060 -#: src/readelf.c:10118 +#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948 +#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306 +#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104 +#: src/readelf.c:10164 #, c-format msgid "" "\n" @@ -4985,56 +4993,56 @@ msgstr "" "\n" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:5095 +#: src/readelf.c:5100 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:5195 src/readelf.c:5219 src/readelf.c:5602 src/readelf.c:8899 +#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr "" "\n" " DÅ‚ugość: %6<PRIu64>\n" -#: src/readelf.c:5197 src/readelf.c:5234 src/readelf.c:5615 src/readelf.c:8912 +#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " Wersja DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5198 src/readelf.c:5243 src/readelf.c:5624 src/readelf.c:8921 +#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " Offset adresu: %6<PRIu64>\n" -#: src/readelf.c:5200 src/readelf.c:5253 src/readelf.c:5634 src/readelf.c:8931 +#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr "" " Rozmiar segmentu: %6<PRIu64>\n" "\n" -#: src/readelf.c:5238 src/readelf.c:5619 src/readelf.c:8916 src/readelf.c:10250 +#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296 #, fuzzy, c-format msgid "Unknown version" msgstr "nieznana wersja" -#: src/readelf.c:5248 src/readelf.c:5461 src/readelf.c:5629 src/readelf.c:8926 +#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942 #, c-format msgid "unsupported address size" msgstr "nieobsÅ‚ugiwany rozmiar adresu" -#: src/readelf.c:5259 src/readelf.c:5472 src/readelf.c:5639 src/readelf.c:8936 +#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952 #, c-format msgid "unsupported segment size" msgstr "nieobsÅ‚ugiwany rozmiar segmentu" -#: src/readelf.c:5312 src/readelf.c:5386 +#: src/readelf.c:5317 src/readelf.c:5391 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_aranges: %s" -#: src/readelf.c:5327 +#: src/readelf.c:5332 #, c-format msgid "" "\n" @@ -5052,12 +5060,12 @@ msgstr[2] "" "\n" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %zu wpisów:\n" -#: src/readelf.c:5358 +#: src/readelf.c:5363 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5360 +#: src/readelf.c:5365 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5065,7 +5073,7 @@ msgstr "" " [%*zu] poczÄ…tek: %0#*<PRIx64>, dÅ‚ugość: %5<PRIu64>, offset CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5404 src/readelf.c:8211 +#: src/readelf.c:5409 src/readelf.c:8226 #, c-format msgid "" "\n" @@ -5074,13 +5082,13 @@ msgstr "" "\n" "Tabela pod offsetem %zu:\n" -#: src/readelf.c:5408 src/readelf.c:5583 src/readelf.c:6567 src/readelf.c:8222 -#: src/readelf.c:8880 +#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237 +#: src/readelf.c:8896 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€" -#: src/readelf.c:5424 +#: src/readelf.c:5429 #, c-format msgid "" "\n" @@ -5089,27 +5097,27 @@ msgstr "" "\n" " DÅ‚ugość: %6<PRIu64>\n" -#: src/readelf.c:5436 +#: src/readelf.c:5441 #, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " Wersja DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5440 +#: src/readelf.c:5445 #, c-format msgid "unsupported aranges version" msgstr "nieobsÅ‚ugiwana wersja aranges" -#: src/readelf.c:5451 +#: src/readelf.c:5456 #, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " Offset CU: %6<PRIx64>\n" -#: src/readelf.c:5457 +#: src/readelf.c:5462 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr " Offset adresu: %6<PRIu64>\n" -#: src/readelf.c:5468 +#: src/readelf.c:5473 #, c-format msgid "" " Segment size: %6<PRIu64>\n" @@ -5118,111 +5126,111 @@ msgstr "" " Rozmiar segmentu: %6<PRIu64>\n" "\n" -#: src/readelf.c:5523 +#: src/readelf.c:5528 #, c-format msgid " %zu padding bytes\n" msgstr " bajty wypeÅ‚nienia: %zu\n" -#: src/readelf.c:5566 +#: src/readelf.c:5572 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_ranges: %s" -#: src/readelf.c:5589 src/readelf.c:8886 +#: src/readelf.c:5595 src/readelf.c:8902 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " Offset .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:5644 src/readelf.c:8941 +#: src/readelf.c:5650 src/readelf.c:8957 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " DÅ‚ugość offsetu: %<PRIu8>\n" -#: src/readelf.c:5660 src/readelf.c:8957 +#: src/readelf.c:5666 src/readelf.c:8973 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5662 src/readelf.c:8959 +#: src/readelf.c:5668 src/readelf.c:8975 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5668 src/readelf.c:8965 +#: src/readelf.c:5674 src/readelf.c:8981 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5679 src/readelf.c:8976 +#: src/readelf.c:5685 src/readelf.c:8992 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5683 src/readelf.c:8980 +#: src/readelf.c:5689 src/readelf.c:8996 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " Offset: 0x%<PRIx64>\n" -#: src/readelf.c:5735 +#: src/readelf.c:5741 #, fuzzy, c-format msgid "invalid range list data" msgstr "nieprawidÅ‚owe dane" -#: src/readelf.c:5920 src/readelf.c:9268 +#: src/readelf.c:5926 src/readelf.c:9284 #, fuzzy, c-format msgid "" " %zu padding bytes\n" "\n" msgstr " bajty wypeÅ‚nienia: %zu\n" -#: src/readelf.c:5937 +#: src/readelf.c:5943 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_ranges: %s" -#: src/readelf.c:5973 src/readelf.c:9323 +#: src/readelf.c:5979 src/readelf.c:9339 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:5975 src/readelf.c:9325 +#: src/readelf.c:5981 src/readelf.c:9341 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5984 src/readelf.c:9351 src/readelf.c:9377 +#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:6005 src/readelf.c:9457 +#: src/readelf.c:6011 src/readelf.c:9473 #, fuzzy, c-format msgid "" " [%6tx] base address\n" " " msgstr " [%6tx] adres podstawowy %s\n" -#: src/readelf.c:6013 src/readelf.c:9465 +#: src/readelf.c:6019 src/readelf.c:9481 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" -#: src/readelf.c:6268 +#: src/readelf.c:6274 msgid " <INVALID DATA>\n" msgstr " <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:6521 +#: src/readelf.c:6527 #, c-format msgid "cannot get ELF: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:6539 +#: src/readelf.c:6545 #, c-format msgid "" "\n" @@ -5231,7 +5239,7 @@ msgstr "" "\n" "Sekcja informacji o ramce wywoÅ‚ania [%2zu] „%s†pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:6589 +#: src/readelf.c:6595 #, c-format msgid "" "\n" @@ -5240,65 +5248,65 @@ msgstr "" "\n" " [%6tx] Zerowy koniec\n" -#: src/readelf.c:6682 src/readelf.c:6836 +#: src/readelf.c:6696 src/readelf.c:6850 #, c-format msgid "invalid augmentation length" msgstr "nieprawidÅ‚owa dÅ‚ugość powiÄ™kszenia" -#: src/readelf.c:6697 +#: src/readelf.c:6711 msgid "FDE address encoding: " msgstr "Kodowanie adresu FDE: " -#: src/readelf.c:6703 +#: src/readelf.c:6717 msgid "LSDA pointer encoding: " msgstr "Kodowanie wskaźnika LSDA: " -#: src/readelf.c:6813 +#: src/readelf.c:6827 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (offset: %#<PRIx64>)" -#: src/readelf.c:6820 +#: src/readelf.c:6834 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (koÅ„czÄ…cy offset: %#<PRIx64>)" -#: src/readelf.c:6857 +#: src/readelf.c:6871 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n" -#: src/readelf.c:6942 +#: src/readelf.c:6956 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "nie można uzyskać kodu atrybutu: %s" -#: src/readelf.c:6952 +#: src/readelf.c:6966 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "nie można uzyskać formy atrybutu: %s" -#: src/readelf.c:6974 +#: src/readelf.c:6988 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "nie można uzyskać wartoÅ›ci atrybutu: %s" -#: src/readelf.c:7307 +#: src/readelf.c:7321 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "nieprawidÅ‚owy plik" -#: src/readelf.c:7311 +#: src/readelf.c:7325 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " ustawienie pliku na %<PRIu64>\n" -#: src/readelf.c:7315 +#: src/readelf.c:7329 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:7538 +#: src/readelf.c:7552 #, c-format msgid "" "\n" @@ -5309,12 +5317,12 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:7588 +#: src/readelf.c:7602 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "nie można uzyskać nastÄ™pnego DIE: %s" -#: src/readelf.c:7607 +#: src/readelf.c:7621 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5327,7 +5335,7 @@ msgstr "" "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" " Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64>\n" -#: src/readelf.c:7619 +#: src/readelf.c:7633 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5338,38 +5346,38 @@ msgstr "" " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: " "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" -#: src/readelf.c:7629 src/readelf.c:7792 +#: src/readelf.c:7643 src/readelf.c:7806 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:7656 +#: src/readelf.c:7670 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7685 +#: src/readelf.c:7699 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można uzyskać offsetu DIE: %s" -#: src/readelf.c:7694 +#: src/readelf.c:7708 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "nie można uzyskać znacznika DIE pod offsetem %<PRIu64> w sekcji „%sâ€: %s" -#: src/readelf.c:7732 +#: src/readelf.c:7746 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można uzyskać nastÄ™pnego DIE: %s\n" -#: src/readelf.c:7740 +#: src/readelf.c:7754 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można uzyskać nastÄ™pnego DIE: %s" -#: src/readelf.c:7784 +#: src/readelf.c:7798 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5380,7 +5388,7 @@ msgstr "" " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: " "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n" -#: src/readelf.c:7835 +#: src/readelf.c:7850 #, c-format msgid "" "\n" @@ -5391,18 +5399,18 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" "\n" -#: src/readelf.c:8167 +#: src/readelf.c:8182 #, fuzzy, c-format msgid "unknown form: %s" msgstr "nieznany bÅ‚Ä…d" -#: src/readelf.c:8198 +#: src/readelf.c:8213 #, c-format msgid "cannot get line data section data: %s" msgstr "nie można uzyskać danych sekcji danych wiersza: %s" #. Print what we got so far. -#: src/readelf.c:8300 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "" "\n" @@ -5433,27 +5441,27 @@ msgstr "" "\n" "Instrukcje:\n" -#: src/readelf.c:8322 +#: src/readelf.c:8337 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/readelf.c:8330 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "nieobsÅ‚ugiwany rozmiar adresu" -#: src/readelf.c:8338 +#: src/readelf.c:8353 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:8348 +#: src/readelf.c:8363 #, 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:8363 +#: src/readelf.c:8378 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5461,7 +5469,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu parametr\n" msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n" msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n" -#: src/readelf.c:8374 +#: src/readelf.c:8389 msgid "" "\n" "Directory table:" @@ -5469,12 +5477,12 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:8380 src/readelf.c:8455 +#: src/readelf.c:8395 src/readelf.c:8470 #, fuzzy, c-format msgid " [" msgstr " PC: " -#: src/readelf.c:8449 +#: src/readelf.c:8464 #, fuzzy msgid "" "\n" @@ -5483,7 +5491,7 @@ msgstr "" "\n" " Tabela strony wywoÅ‚ania:" -#: src/readelf.c:8510 +#: src/readelf.c:8525 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5491,7 +5499,7 @@ msgstr "" "Tabela nazw plików:\n" " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:8545 +#: src/readelf.c:8560 msgid "" "\n" "Line number statements:" @@ -5499,119 +5507,119 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:8568 +#: src/readelf.c:8583 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "nieprawidÅ‚owe maksimum operacji na instrukcjÄ™ wynosi zero" -#: src/readelf.c:8602 +#: src/readelf.c:8617 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n" -#: src/readelf.c:8606 +#: src/readelf.c:8621 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" " instrukcja specjalna %u: adres+%u = %s, op_index = %u, wiersz%+d = %zu\n" -#: src/readelf.c:8609 +#: src/readelf.c:8624 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8627 +#: src/readelf.c:8642 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:8632 +#: src/readelf.c:8647 msgid " end of sequence" msgstr " koniec sekwencji" -#: src/readelf.c:8650 +#: src/readelf.c:8665 #, fuzzy, c-format msgid " set address to " msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:8678 +#: src/readelf.c:8693 #, 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:8691 +#: src/readelf.c:8706 #, c-format msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" #. Unknown, ignore it. -#: src/readelf.c:8696 +#: src/readelf.c:8711 msgid " unknown opcode" msgstr " nieznana instrukcja" #. Takes no argument. -#: src/readelf.c:8708 +#: src/readelf.c:8723 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:8717 +#: src/readelf.c:8732 #, fuzzy, c-format msgid " advance address by %u to " msgstr " zwiÄ™kszenie adresu o %u do %s\n" -#: src/readelf.c:8721 src/readelf.c:8777 +#: src/readelf.c:8736 src/readelf.c:8792 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8731 +#: src/readelf.c:8746 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " zwiÄ™kszenie wiersza o staÅ‚Ä… %d do %<PRId64>\n" -#: src/readelf.c:8739 +#: src/readelf.c:8754 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ustawienie pliku na %<PRIu64>\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid " set column to %<PRIu64>\n" msgstr " ustawienie kolumny na %<PRIu64>\n" -#: src/readelf.c:8756 +#: src/readelf.c:8771 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " ustawienie „%s†na %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:8762 +#: src/readelf.c:8777 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:8773 +#: src/readelf.c:8788 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr " zwiÄ™kszenie adresu o staÅ‚Ä… %u do %s\n" -#: src/readelf.c:8792 +#: src/readelf.c:8807 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr " zwiÄ™kszenie adresu o staÅ‚Ä… wartość %u do %s\n" #. Takes no argument. -#: src/readelf.c:8802 +#: src/readelf.c:8817 msgid " set prologue end flag" msgstr " ustawienie flagi koÅ„ca prologu" #. Takes no argument. -#: src/readelf.c:8807 +#: src/readelf.c:8822 msgid " set epilogue begin flag" msgstr " ustawienie flagi poczÄ…tku epilogu" -#: src/readelf.c:8816 +#: src/readelf.c:8831 #, c-format msgid " set isa to %u\n" msgstr " ustawienie isa na %u\n" @@ -5619,7 +5627,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:8825 +#: src/readelf.c:8840 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -5627,96 +5635,96 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:" msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:" msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:" -#: src/readelf.c:8863 +#: src/readelf.c:8879 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_log: %s" -#: src/readelf.c:9032 +#: src/readelf.c:9048 #, fuzzy, c-format msgid "invalid loclists data" msgstr "nieprawidÅ‚owe dane" -#: src/readelf.c:9285 +#: src/readelf.c:9301 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartoÅ›ci .debug_log: %s" -#: src/readelf.c:9492 src/readelf.c:10506 +#: src/readelf.c:9508 src/readelf.c:10552 msgid " <INVALID DATA>\n" msgstr " <NIEPRAWIDÅOWE DANE>\n" -#: src/readelf.c:9546 src/readelf.c:9709 +#: src/readelf.c:9563 src/readelf.c:9726 #, c-format msgid "cannot get macro information section data: %s" msgstr "nie można uzyskać danych sekcji informacji o makrach: %s" -#: src/readelf.c:9626 +#: src/readelf.c:9643 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakoÅ„czony ciÄ…g na koÅ„cu sekcji" -#: src/readelf.c:9649 +#: src/readelf.c:9666 #, 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:9750 +#: src/readelf.c:9767 #, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " Offset: 0x%<PRIx64>\n" -#: src/readelf.c:9762 +#: src/readelf.c:9779 #, c-format msgid " Version: %<PRIu16>\n" msgstr " Wersja: %<PRIu16>\n" -#: src/readelf.c:9768 src/readelf.c:10625 +#: src/readelf.c:9785 src/readelf.c:10672 #, c-format msgid " unknown version, cannot parse section\n" msgstr " nieznana wersja, nie można przetworzyć sekcji\n" -#: src/readelf.c:9775 -#, c-format -msgid " Flag: 0x%<PRIx8>\n" +#: src/readelf.c:9792 +#, fuzzy, c-format +msgid " Flag: 0x%<PRIx8>" msgstr " Flaga: 0x%<PRIx8>\n" -#: src/readelf.c:9778 +#: src/readelf.c:9821 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr " DÅ‚ugość offsetu: %<PRIu8>\n" -#: src/readelf.c:9786 +#: src/readelf.c:9829 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " Offset .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:9811 +#: src/readelf.c:9854 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n" -#: src/readelf.c:9818 +#: src/readelf.c:9861 #, c-format msgid " [%<PRIx8>]" msgstr " [%<PRIx8>]" -#: src/readelf.c:9830 +#: src/readelf.c:9873 #, c-format msgid " %<PRIu8> arguments:" msgstr " Parametry %<PRIu8>:" -#: src/readelf.c:9845 +#: src/readelf.c:9888 #, c-format msgid " no arguments." msgstr " brak parametrów." -#: src/readelf.c:10046 +#: src/readelf.c:10089 #, 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:10088 +#: src/readelf.c:10133 #, c-format msgid "" "\n" @@ -5727,41 +5735,41 @@ msgstr "" "Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n" " %*s CiÄ…g\n" -#: src/readelf.c:10103 +#: src/readelf.c:10148 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** bÅ‚Ä…d podczas odczytywania ciÄ…gów: %s\n" -#: src/readelf.c:10131 +#: src/readelf.c:10177 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:10230 +#: src/readelf.c:10276 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr "" "\n" " DÅ‚ugość: %6<PRIu64>\n" -#: src/readelf.c:10232 +#: src/readelf.c:10278 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " DÅ‚ugość offsetu: %<PRIu8>\n" -#: src/readelf.c:10246 +#: src/readelf.c:10292 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " Wersja DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:10255 +#: src/readelf.c:10301 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr "" "\n" " DÅ‚ugość: %6<PRIu64>\n" -#: src/readelf.c:10309 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5770,7 +5778,7 @@ msgstr "" "\n" "Sekcja tabeli wyszukiwania ramki wywoÅ‚ania [%2zu] „.eh_frame_hdrâ€:\n" -#: src/readelf.c:10411 +#: src/readelf.c:10457 #, c-format msgid "" "\n" @@ -5779,22 +5787,22 @@ msgstr "" "\n" "Sekcja tabeli obsÅ‚ugiwania wyjÄ…tków [%2zu] „.gcc_except_tableâ€:\n" -#: src/readelf.c:10434 +#: src/readelf.c:10480 #, c-format msgid " LPStart encoding: %#x " msgstr " Kodowanie LPStart: %#x " -#: src/readelf.c:10446 +#: src/readelf.c:10492 #, c-format msgid " TType encoding: %#x " msgstr " Kodowanie TType: %#x " -#: src/readelf.c:10461 +#: src/readelf.c:10507 #, c-format msgid " Call site encoding: %#x " msgstr " Kodowanie strony wywoÅ‚ania: %#x " -#: src/readelf.c:10474 +#: src/readelf.c:10520 msgid "" "\n" " Call site table:" @@ -5802,7 +5810,7 @@ msgstr "" "\n" " Tabela strony wywoÅ‚ania:" -#: src/readelf.c:10488 +#: src/readelf.c:10534 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5815,12 +5823,12 @@ msgstr "" " LÄ…dowisko: %#<PRIx64>\n" " DziaÅ‚anie: %u\n" -#: src/readelf.c:10561 +#: src/readelf.c:10607 #, c-format msgid "invalid TType encoding" msgstr "nieprawidÅ‚owe kodowanie TType" -#: src/readelf.c:10587 +#: src/readelf.c:10634 #, c-format msgid "" "\n" @@ -5829,37 +5837,37 @@ msgstr "" "\n" "Sekcja GDB [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n" -#: src/readelf.c:10616 +#: src/readelf.c:10663 #, c-format msgid " Version: %<PRId32>\n" msgstr " Wersja: %<PRId32>\n" -#: src/readelf.c:10634 +#: src/readelf.c:10681 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " offset CU: %#<PRIx32>\n" -#: src/readelf.c:10641 +#: src/readelf.c:10688 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " offset TU: %#<PRIx32>\n" -#: src/readelf.c:10648 +#: src/readelf.c:10695 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr " offset adresu: %#<PRIx32>\n" -#: src/readelf.c:10655 +#: src/readelf.c:10702 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " offset symbolu: %#<PRIx32>\n" -#: src/readelf.c:10662 +#: src/readelf.c:10709 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " offset staÅ‚ej: %#<PRIx32>\n" -#: src/readelf.c:10676 +#: src/readelf.c:10723 #, c-format msgid "" "\n" @@ -5868,7 +5876,7 @@ msgstr "" "\n" " Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:10701 +#: src/readelf.c:10748 #, c-format msgid "" "\n" @@ -5877,7 +5885,7 @@ msgstr "" "\n" " Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:10730 +#: src/readelf.c:10777 #, c-format msgid "" "\n" @@ -5886,7 +5894,7 @@ msgstr "" "\n" " Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n" -#: src/readelf.c:10762 +#: src/readelf.c:10809 #, c-format msgid "" "\n" @@ -5895,18 +5903,18 @@ msgstr "" "\n" " Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n" -#: src/readelf.c:10900 +#: src/readelf.c:10947 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:11263 src/readelf.c:11885 src/readelf.c:11996 -#: src/readelf.c:12054 +#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043 +#: src/readelf.c:12101 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można konwertować danych notatki core: %s" -#: src/readelf.c:11626 +#: src/readelf.c:11673 #, c-format msgid "" "\n" @@ -5915,21 +5923,21 @@ msgstr "" "\n" "%*s… <powtarza siÄ™ jeszcze %u razy>…" -#: src/readelf.c:12133 +#: src/readelf.c:12180 msgid " Owner Data size Type\n" msgstr " WÅ‚aÅ›ciciel Rozmiar danych Typ\n" -#: src/readelf.c:12151 +#: src/readelf.c:12209 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12201 +#: src/readelf.c:12261 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "nie można uzyskać zawartoÅ›ci sekcji notatki: %s" -#: src/readelf.c:12228 +#: src/readelf.c:12288 #, c-format msgid "" "\n" @@ -5939,7 +5947,7 @@ msgstr "" "Segment notatki [%2zu] „%s†o dÅ‚ugoÅ›ci %<PRIu64> bajtów pod offsetem " "%#0<PRIx64>:\n" -#: src/readelf.c:12251 +#: src/readelf.c:12311 #, c-format msgid "" "\n" @@ -5948,7 +5956,7 @@ msgstr "" "\n" "Segment notatki o dÅ‚ugoÅ›ci %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12297 +#: src/readelf.c:12358 #, c-format msgid "" "\n" @@ -5957,12 +5965,12 @@ msgstr "" "\n" "Sekcja [%zu] „%s†nie ma danych do zrzucenia.\n" -#: src/readelf.c:12324 src/readelf.c:12375 +#: src/readelf.c:12385 src/readelf.c:12436 #, 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:12329 +#: src/readelf.c:12390 #, c-format msgid "" "\n" @@ -5972,7 +5980,7 @@ msgstr "" "Segment zrzutu szesnastkowego [%zu] „%sâ€, %<PRIu64> bajtów pod offsetem " "%#0<PRIx64>:\n" -#: src/readelf.c:12334 +#: src/readelf.c:12395 #, c-format msgid "" "\n" @@ -5983,7 +5991,7 @@ msgstr "" "Zrzut szesnastkowy sekcji [%zu] „%sâ€, %<PRIu64> bajtów (%zd " "nieskompresowanych) pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12348 +#: src/readelf.c:12409 #, c-format msgid "" "\n" @@ -5992,7 +6000,7 @@ msgstr "" "\n" "Sekcja [%zu] „%s†nie ma ciÄ…gów do zrzucenia.\n" -#: src/readelf.c:12380 +#: src/readelf.c:12441 #, c-format msgid "" "\n" @@ -6001,7 +6009,7 @@ msgstr "" "\n" "Sekcja ciÄ…gów [%zu] „%s†zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12385 +#: src/readelf.c:12446 #, c-format msgid "" "\n" @@ -6012,7 +6020,7 @@ msgstr "" "Sekcja ciÄ…gów [%zu] „%s†zawiera %<PRIu64> bajtów (%zd nieskompresowanych) " "pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:12434 +#: src/readelf.c:12495 #, c-format msgid "" "\n" @@ -6021,7 +6029,7 @@ msgstr "" "\n" "sekcja [%lu] nie istnieje" -#: src/readelf.c:12463 +#: src/readelf.c:12524 #, c-format msgid "" "\n" @@ -6030,12 +6038,12 @@ msgstr "" "\n" "sekcja „%s†nie istnieje" -#: src/readelf.c:12520 +#: src/readelf.c:12581 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "nie można uzyskać indeksu symboli archiwum „%sâ€: %s" -#: src/readelf.c:12523 +#: src/readelf.c:12584 #, c-format msgid "" "\n" @@ -6044,7 +6052,7 @@ msgstr "" "\n" "Archiwum „%s†nie ma indeksu symboli\n" -#: src/readelf.c:12527 +#: src/readelf.c:12588 #, c-format msgid "" "\n" @@ -6053,12 +6061,12 @@ msgstr "" "\n" "Indeks archiwum „%s†ma %zu wpisów:\n" -#: src/readelf.c:12545 +#: src/readelf.c:12606 #, 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:12550 +#: src/readelf.c:12611 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Element archiwum „%s†zawiera:\n" @@ -6122,12 +6130,12 @@ msgstr "NieprawidÅ‚owa baza: %s" msgid "%s: file format not recognized" msgstr "%s: nie rozpoznano formatu pliku" -#: src/size.c:416 src/size.c:549 +#: src/size.c:418 src/size.c:551 #, c-format msgid " (ex %s)" msgstr " (ex %s)" -#: src/size.c:574 +#: src/size.c:576 msgid "(TOTALS)\n" msgstr "(CAÅKOWITE)\n" @@ -6334,31 +6342,31 @@ msgstr "mprotect siÄ™ nie powiodÅ‚o" msgid "Skipping section %zd '%s' data outside file" msgstr "Pomijanie sekcji %zd „%s†dane poza plikiem" -#: src/strip.c:70 +#: src/strip.c:71 msgid "Place stripped output into FILE" msgstr "Umieszcza okrojone wyjÅ›cie w PLIKU" -#: src/strip.c:71 +#: src/strip.c:72 msgid "Extract the removed sections into FILE" msgstr "Wydobywa usuniÄ™te sekcje do PLIKU" -#: src/strip.c:72 +#: src/strip.c:73 msgid "Embed name FILE instead of -f argument" msgstr "Osadza nazwÄ™ PLIKU zamiast parametru -f" -#: src/strip.c:76 +#: src/strip.c:77 msgid "Remove all debugging symbols" msgstr "Usuwa wszystkie symbole debugowania" -#: src/strip.c:80 +#: src/strip.c:81 msgid "Remove section headers (not recommended)" msgstr "Usuwa nagłówki sekcji (niezalecane)" -#: src/strip.c:82 +#: src/strip.c:83 msgid "Copy modified/access timestamps to the output" msgstr "Kopiuje czasy modyfikacji/dostÄ™pu do wyjÅ›cia" -#: src/strip.c:84 +#: src/strip.c:85 msgid "" "Resolve all trivial relocations between debug sections if the removed " "sections are placed in a debug file (only relevant for ET_REL files, " @@ -6368,63 +6376,83 @@ msgstr "" "usuniÄ™te sekcje zostaÅ‚y umieszczone w pliku debugowania (ma znaczenie tylko " "dla plików ET_REL, dziaÅ‚anie jest nieodwracalne, wymaga użycia opcji -f)" -#: src/strip.c:86 +#: src/strip.c:87 +msgid "" +"Similar to --reloc-debug-sections, but resolve all trivial relocations " +"between debug sections in place. No other stripping is performed (operation " +"is not reversable, incompatible with -f, -g, --remove-comment and --remove-" +"section)" +msgstr "" + +#: src/strip.c:89 msgid "Remove .comment section" msgstr "Usuwa sekcjÄ™ .comment" -#: src/strip.c:87 +#: src/strip.c:90 msgid "" "Remove the named section. SECTION is an extended wildcard pattern. May be " "given more than once. Only non-allocated sections can be removed." msgstr "" -#: src/strip.c:88 +#: src/strip.c:91 msgid "" "Keep the named section. SECTION is an extended wildcard pattern. May be " "given more than once." msgstr "" #. Short description of program. -#: src/strip.c:95 +#: src/strip.c:98 msgid "Discard symbols from object files." msgstr "Odrzuca symbole z plików obiektów." -#: src/strip.c:241 +#: src/strip.c:247 #, c-format msgid "--reloc-debug-sections used without -f" msgstr "Użyto --reloc-debug-sections bez opcji -f" -#: src/strip.c:255 +#: src/strip.c:253 +#, c-format +msgid "" +"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --" +"remove-section" +msgstr "" + +#: src/strip.c:267 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" msgstr "Tylko jeden plik wejÅ›ciowy jest dozwolony z „-o†i „-fâ€" -#: src/strip.c:278 +#: src/strip.c:290 #, c-format msgid "-f option specified twice" msgstr "OpcjÄ™ -f podano dwukrotnie" -#: src/strip.c:287 +#: src/strip.c:299 #, c-format msgid "-F option specified twice" msgstr "OpcjÄ™ -F podano dwukrotnie" -#: src/strip.c:346 +#: src/strip.c:362 #, fuzzy, c-format msgid "cannot both keep and remove .comment section" msgstr "Usuwa sekcjÄ™ .comment" -#: src/strip.c:371 src/strip.c:395 +#: src/strip.c:574 +#, c-format +msgid "bad relocation" +msgstr "bÅ‚Ä™dna relokacja" + +#: src/strip.c:726 src/strip.c:750 #, c-format msgid "cannot stat input file '%s'" msgstr "nie można wykonać stat na pliku wejÅ›ciowym „%sâ€" -#: src/strip.c:385 +#: src/strip.c:740 #, c-format msgid "while opening '%s'" msgstr "podczas otwierania „%sâ€" -#: src/strip.c:423 +#: src/strip.c:778 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum" @@ -6435,132 +6463,132 @@ msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum" #. result = handle_ar (fd, elf, NULL, fname, #. preserve_dates ? tv : NULL); #. -#: src/strip.c:435 +#: src/strip.c:790 #, c-format msgid "%s: no support for stripping archive" msgstr "%s: brak obsÅ‚ugi okrajania archiwum" -#: src/strip.c:534 +#: src/strip.c:1001 #, c-format msgid "cannot open EBL backend" msgstr "nie można otworzyć zaplecza EBL" -#: src/strip.c:579 +#: src/strip.c:1046 #, c-format msgid "cannot get number of phdrs" msgstr "nie można uzyskać liczby phdr" -#: src/strip.c:595 src/strip.c:619 -#, c-format -msgid "cannot create new file '%s': %s" +#: src/strip.c:1060 src/strip.c:1103 +#, fuzzy, c-format +msgid "cannot create new ehdr for file '%s': %s" +msgstr "nie można utworzyć nowego pliku „%sâ€: %s" + +#: src/strip.c:1070 src/strip.c:1113 +#, fuzzy, c-format +msgid "cannot create new phdr for file '%s': %s" msgstr "nie można utworzyć nowego pliku „%sâ€: %s" -#: src/strip.c:701 +#: src/strip.c:1194 #, c-format msgid "illformed file '%s'" msgstr "plik „%s†ma bÅ‚Ä™dny format" -#: src/strip.c:711 +#: src/strip.c:1204 #, fuzzy, c-format msgid "Cannot remove allocated section '%s'" msgstr "nie można przydzielić danych sekcji: %s" -#: src/strip.c:720 +#: src/strip.c:1213 #, fuzzy, c-format msgid "Cannot both keep and remove section '%s'" msgstr "nie można dodać nowej sekcji: %s" -#: src/strip.c:1076 src/strip.c:1210 +#: src/strip.c:1573 src/strip.c:1688 #, c-format msgid "while generating output file: %s" msgstr "podczas tworzenia pliku wyjÅ›ciowego: %s" -#: src/strip.c:1141 +#: src/strip.c:1637 #, fuzzy, c-format -msgid "%s: error while getting shdrstrndx: %s" +msgid "%s: error while updating ELF header: %s" msgstr "%s: bÅ‚Ä…d podczas tworzenia nagłówka ELF: %s" -#: src/strip.c:1157 +#: src/strip.c:1646 #, fuzzy, c-format -msgid "%s: error getting zero section: %s" -msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" +msgid "%s: error while getting shdrstrndx: %s" +msgstr "%s: bÅ‚Ä…d podczas tworzenia nagłówka ELF: %s" -#: src/strip.c:1166 +#: src/strip.c:1654 src/strip.c:2534 #, fuzzy, c-format -msgid "%s: error while updating zero section: %s" -msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" - -#: src/strip.c:1176 src/strip.c:2292 -#, c-format -msgid "%s: error while creating ELF header: %s" +msgid "%s: error updating shdrstrndx: %s" msgstr "%s: bÅ‚Ä…d podczas tworzenia nagłówka ELF: %s" -#: src/strip.c:1193 +#: src/strip.c:1671 #, c-format msgid "while preparing output for '%s'" msgstr "podczas przygotowywania wyjÅ›cia dla „%sâ€" -#: src/strip.c:1255 src/strip.c:1318 +#: src/strip.c:1733 src/strip.c:1796 #, c-format msgid "while create section header section: %s" msgstr "podczas tworzenia sekcji nagłówka sekcji: %s" -#: src/strip.c:1264 +#: src/strip.c:1742 #, c-format msgid "cannot allocate section data: %s" msgstr "nie można przydzielić danych sekcji: %s" -#: src/strip.c:1330 +#: src/strip.c:1808 #, c-format msgid "while create section header string table: %s" msgstr "podczas tworzenia tabeli ciÄ…gów nagłówka sekcji: %s" -#: src/strip.c:1337 +#: src/strip.c:1815 #, c-format msgid "no memory to create section header string table" msgstr "brak pamiÄ™ci do utworzenia tabeli ciÄ…gów nagłówka sekcji" -#: src/strip.c:1547 +#: src/strip.c:2027 #, c-format msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "Nie można usunąć symbolu [%zd] z przydzielonej tabeli symboli [%zd]" -#: src/strip.c:2078 -#, c-format -msgid "bad relocation" -msgstr "bÅ‚Ä™dna relokacja" - -#: src/strip.c:2203 src/strip.c:2316 +#: src/strip.c:2450 src/strip.c:2558 #, c-format msgid "while writing '%s': %s" msgstr "podczas zapisywania „%sâ€: %s" -#: src/strip.c:2214 +#: src/strip.c:2461 #, c-format msgid "while creating '%s'" msgstr "podczas tworzenia „%sâ€" -#: src/strip.c:2237 +#: src/strip.c:2484 #, c-format msgid "while computing checksum for debug information" msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania" -#: src/strip.c:2301 +#: src/strip.c:2525 +#, c-format +msgid "%s: error while creating ELF header: %s" +msgstr "%s: bÅ‚Ä…d podczas tworzenia nagłówka ELF: %s" + +#: src/strip.c:2543 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" -#: src/strip.c:2341 src/strip.c:2361 +#: src/strip.c:2583 src/strip.c:2603 #, c-format msgid "while writing '%s'" msgstr "podczas zapisywania „%sâ€" -#: src/strip.c:2398 src/strip.c:2405 +#: src/strip.c:2640 src/strip.c:2647 #, c-format msgid "error while finishing '%s': %s" msgstr "bÅ‚Ä…d podczas koÅ„czenia „%sâ€: %s" -#: src/strip.c:2422 src/strip.c:2498 +#: src/strip.c:2664 src/strip.c:2740 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "nie można ustawić czasu dostÄ™pu i modyfikacji „%sâ€" @@ -6648,192 +6676,222 @@ msgstr "nie można utworzyć nagłówka ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "nie można uzyskać sekcji: %s" -#: src/unstrip.c:257 +#: src/unstrip.c:248 src/unstrip.c:2034 +#, c-format +msgid "cannot get ELF header: %s" +msgstr "nie można uzyskać nagłówka ELF: %s" + +#: src/unstrip.c:258 #, fuzzy, c-format msgid "cannot get new zero section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/unstrip.c:260 +#: src/unstrip.c:261 #, fuzzy, c-format msgid "cannot update new zero section: %s" msgstr "nie można zaktualizować relokacji: %s" -#: src/unstrip.c:264 +#: src/unstrip.c:265 #, c-format msgid "cannot copy ELF header: %s" msgstr "nie można skopiować nagłówka ELF: %s" -#: src/unstrip.c:268 src/unstrip.c:1962 src/unstrip.c:2005 +#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095 #, c-format msgid "cannot get number of program headers: %s" msgstr "nie można uzyskać liczby nagłówków programu: %s" -#: src/unstrip.c:273 src/unstrip.c:1966 +#: src/unstrip.c:274 src/unstrip.c:2056 #, c-format msgid "cannot create program headers: %s" msgstr "nie można utworzyć nagłówków programu: %s" -#: src/unstrip.c:279 +#: src/unstrip.c:280 #, c-format msgid "cannot copy program header: %s" msgstr "nie można skopiować nagłówka programu: %s" -#: src/unstrip.c:289 +#: src/unstrip.c:290 #, c-format msgid "cannot copy section header: %s" msgstr "nie można skopiować nagłówka sekcji: %s" -#: src/unstrip.c:292 src/unstrip.c:1597 +#: src/unstrip.c:293 src/unstrip.c:1665 #, c-format msgid "cannot get section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:294 src/unstrip.c:1599 +#: src/unstrip.c:295 src/unstrip.c:1667 #, c-format msgid "cannot copy section data: %s" msgstr "nie można skopiować danych sekcji: %s" -#: src/unstrip.c:318 +#: src/unstrip.c:319 #, c-format msgid "cannot create directory '%s'" msgstr "nie można utworzyć katalogu „%sâ€" -#: src/unstrip.c:390 src/unstrip.c:820 src/unstrip.c:1631 +#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702 #, c-format msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:406 src/unstrip.c:631 src/unstrip.c:652 src/unstrip.c:664 -#: src/unstrip.c:1652 src/unstrip.c:1828 src/unstrip.c:1852 +#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682 +#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" -#: src/unstrip.c:416 +#: src/unstrip.c:417 #, c-format msgid "cannot update section header: %s" msgstr "nie można zaktualizować nagłówka sekcji: %s" -#: src/unstrip.c:455 src/unstrip.c:466 +#: src/unstrip.c:459 src/unstrip.c:473 #, c-format msgid "cannot update relocation: %s" msgstr "nie można zaktualizować relokacji: %s" -#: src/unstrip.c:554 +#: src/unstrip.c:570 #, c-format msgid "cannot get symbol version: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:567 +#: src/unstrip.c:583 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "nieoczekiwany typ sekcji w [%zu] z sh_link do tabeli symboli" -#: src/unstrip.c:826 +#: src/unstrip.c:851 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "nieprawidÅ‚owy offset ciÄ…gu w symbolu [%zu]" -#: src/unstrip.c:984 src/unstrip.c:1334 +#: src/unstrip.c:1009 src/unstrip.c:1398 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "nie można odczytać nazwy sekcji [%zu]: %s" -#: src/unstrip.c:1025 src/unstrip.c:1044 src/unstrip.c:1082 +#: src/unstrip.c:1024 +#, fuzzy, c-format +msgid "bad sh_link for group section: %s" +msgstr "nieprawidÅ‚owa wartość sh_link w sekcji %zu" + +#: src/unstrip.c:1030 +#, fuzzy, c-format +msgid "couldn't get shdr for group section: %s" +msgstr "nie można uzyskać danych dla sekcji %d: %s" + +#: src/unstrip.c:1035 +#, fuzzy, c-format +msgid "bad data for group symbol section: %s" +msgstr "nie można uzyskać danych dla sekcji symboli\n" + +#: src/unstrip.c:1041 +#, fuzzy, c-format +msgid "couldn't get symbol for group section: %s" +msgstr "nie można uzyskać wersji symbolu: %s" + +#: src/unstrip.c:1046 +#, fuzzy, c-format +msgid "bad symbol name for group section: %s" +msgstr "bÅ‚Ä™dny nagłówek kompresji dla sekcji %zd: %s" + +#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "nie można odczytać sekcji „.gnu.prelink_undoâ€: %s" -#: src/unstrip.c:1062 +#: src/unstrip.c:1125 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "przepeÅ‚nienie z shnum = %zu w sekcji „%sâ€" -#: src/unstrip.c:1073 +#: src/unstrip.c:1136 #, c-format msgid "invalid contents in '%s' section" msgstr "nieprawidÅ‚owa zawartość w sekcji „%sâ€" -#: src/unstrip.c:1128 src/unstrip.c:1456 +#: src/unstrip.c:1192 src/unstrip.c:1524 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "nie można odnaleźć pasujÄ…cej sekcji dla [%zu] „%sâ€" -#: src/unstrip.c:1253 src/unstrip.c:1268 src/unstrip.c:1535 src/unstrip.c:1787 +#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877 #, c-format msgid "cannot add section name to string table: %s" msgstr "nie można nazwy sekcji do tabeli ciÄ…gów: %s" -#: src/unstrip.c:1277 +#: src/unstrip.c:1341 #, c-format msgid "cannot update section header string table data: %s" msgstr "nie można zaktualizować danych tabeli ciÄ…gów nagłówków sekcji: %s" -#: src/unstrip.c:1305 src/unstrip.c:1309 +#: src/unstrip.c:1369 src/unstrip.c:1373 #, c-format msgid "cannot get section header string table section index: %s" msgstr "nie można uzyskać indeksu sekcji tabeli ciÄ…gów nagłówków sekcji: %s" -#: src/unstrip.c:1313 src/unstrip.c:1317 src/unstrip.c:1550 +#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618 #, c-format msgid "cannot get section count: %s" msgstr "nie można uzyskać licznika sekcji: %s" -#: src/unstrip.c:1320 +#: src/unstrip.c:1384 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "wiÄ™cej sekcji w okrojonym pliku niż w pliku debugowania — odwrócono " "parametry?" -#: src/unstrip.c:1379 src/unstrip.c:1471 +#: src/unstrip.c:1446 src/unstrip.c:1539 #, c-format msgid "cannot read section header string table: %s" msgstr "nie można odczytać tabeli ciÄ…gów nagłówków sekcji: %s" -#: src/unstrip.c:1529 +#: src/unstrip.c:1597 #, c-format msgid "cannot add new section: %s" msgstr "nie można dodać nowej sekcji: %s" -#: src/unstrip.c:1639 +#: src/unstrip.c:1710 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "symbol [%zu] ma nieprawidÅ‚owy indeks sekcji" -#: src/unstrip.c:1923 +#: src/unstrip.c:1742 +#, fuzzy, c-format +msgid "group has invalid section index [%zd]" +msgstr "symbol [%zu] ma nieprawidÅ‚owy indeks sekcji" + +#: src/unstrip.c:2013 #, c-format msgid "cannot read section data: %s" msgstr "nie można odczytać danych sekcji: %s" -#: src/unstrip.c:1944 -#, c-format -msgid "cannot get ELF header: %s" -msgstr "nie można uzyskać nagłówka ELF: %s" - -#: src/unstrip.c:1952 +#: src/unstrip.c:2042 #, c-format msgid "cannot update ELF header: %s" msgstr "nie można zaktualizować nagłówka ELF: %s" -#: src/unstrip.c:1976 +#: src/unstrip.c:2066 #, c-format msgid "cannot update program header: %s" msgstr "nie można zaktualizować nagłówka programu: %s" -#: src/unstrip.c:1981 src/unstrip.c:2063 +#: src/unstrip.c:2071 src/unstrip.c:2153 #, c-format msgid "cannot write output file: %s" msgstr "nie można zapisać pliku wyjÅ›ciowego: %s" -#: src/unstrip.c:2032 +#: src/unstrip.c:2122 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Dane DWARF nie zostaÅ‚y dostosowane do przesuniÄ™cia wczesnego konsolidowania; " "proszÄ™ rozważyć polecenie prelink -u" -#: src/unstrip.c:2035 +#: src/unstrip.c:2125 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6841,77 +6899,77 @@ msgstr "" "Dane DWARF w „%s†nie zostaÅ‚y dostosowane do przesuniÄ™cia wczesnego " "konsolidowania; proszÄ™ rozważyć polecenie prelink -u" -#: src/unstrip.c:2054 src/unstrip.c:2105 src/unstrip.c:2117 src/unstrip.c:2203 +#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/unstrip.c:2096 +#: src/unstrip.c:2186 msgid "WARNING: " msgstr "OSTRZEÅ»ENIE: " -#: src/unstrip.c:2098 +#: src/unstrip.c:2188 msgid ", use --force" msgstr ", należy użyć opcji --force" -#: src/unstrip.c:2121 +#: src/unstrip.c:2211 msgid "ELF header identification (e_ident) different" msgstr "Różna identyfikacja nagłówka ELF (e_ident)" -#: src/unstrip.c:2124 +#: src/unstrip.c:2214 msgid "ELF header type (e_type) different" msgstr "Różne typy nagłówka ELF (e_type)" -#: src/unstrip.c:2127 +#: src/unstrip.c:2217 msgid "ELF header machine type (e_machine) different" msgstr "Różne typy maszyny nagłówka ELF (e_machine)" -#: src/unstrip.c:2130 +#: src/unstrip.c:2220 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony" -#: src/unstrip.c:2160 +#: src/unstrip.c:2250 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "nie można odnaleźć okrojonego pliku dla moduÅ‚u „%sâ€: %s" -#: src/unstrip.c:2164 +#: src/unstrip.c:2254 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "nie można otworzyć okrojonego pliku „%s†dla moduÅ‚u „%sâ€: %s" -#: src/unstrip.c:2179 +#: src/unstrip.c:2269 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "nie można odnaleźć pliku debugowania dla moduÅ‚u „%sâ€: %s" -#: src/unstrip.c:2183 +#: src/unstrip.c:2273 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "nie można otworzyć pliku debugowania „%s†dla moduÅ‚u „%sâ€: %s" -#: src/unstrip.c:2196 +#: src/unstrip.c:2286 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "moduÅ‚ „%s†pliku „%s†nie zostaÅ‚ okrojony" -#: src/unstrip.c:2227 +#: src/unstrip.c:2317 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" "nie można utworzyć pamiÄ™ci podrÄ™cznej adresów sekcji dla moduÅ‚u „%sâ€: %s" -#: src/unstrip.c:2360 +#: src/unstrip.c:2450 #, c-format msgid "no matching modules found" msgstr "nie odnaleziono pasujÄ…cych modułów" -#: src/unstrip.c:2369 +#: src/unstrip.c:2459 #, c-format msgid "matched more than one module" msgstr "pasuje wiÄ™cej niż jeden moduÅ‚" -#: src/unstrip.c:2413 +#: src/unstrip.c:2503 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -6919,7 +6977,7 @@ msgstr "" "OKROJONY-PLIK PLIK-DEBUGOWANIA\n" "[MODUÅ…]" -#: src/unstrip.c:2414 +#: src/unstrip.c:2504 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" @@ -6987,6 +7045,14 @@ msgstr "Dodatkowo wyÅ›wietla nazwy funkcji" msgid "Show instances of inlined functions" msgstr "WyÅ›wietla wystÄ…pienia wstawionych funkcji" +#, fuzzy +#~ msgid "%s: error getting zero section: %s" +#~ msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" + +#, fuzzy +#~ msgid "%s: error while updating zero section: %s" +#~ msgstr "%s: bÅ‚Ä…d podczas odczytywania pliku: %s" + #~ msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" #~ msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2018-09-14 12:05+0200\n" +"POT-Creation-Date: 2018-11-16 12:42+0100\n" "PO-Revision-Date: 2015-09-26 16:41+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n" @@ -58,8 +58,8 @@ msgstr "" "початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних " "гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n" -#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3409 -#: src/readelf.c:11212 src/unstrip.c:2256 src/unstrip.c:2462 +#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414 +#: src/readelf.c:11259 src/unstrip.c:2346 src/unstrip.c:2552 #, c-format msgid "memory exhausted" msgstr "пам’ÑÑ‚ÑŒ вичерпано" @@ -300,7 +300,7 @@ msgstr " невідомий код операції" msgid ".debug_addr section missing" msgstr "немає розділу .debug_ranges" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2403 +#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493 msgid "Input selection options:" msgstr "Вибір параметрів Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…:" @@ -524,8 +524,8 @@ msgstr "Ðе Ñ” файлом ET_CORE ELF" msgid "No backend" msgstr "Ðемає Ñервера" -#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:76 -#: libebl/eblobjnotetypename.c:83 libebl/eblobjnotetypename.c:102 +#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77 +#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130 #: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83 #: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:79 msgid "<unknown>" @@ -536,58 +536,58 @@ msgstr "<невідомо>" msgid "<unknown>: %#<PRIx64>" msgstr "<невідомо>: %#<PRIx64>" -#: libebl/eblobjnote.c:53 +#: libebl/eblobjnote.c:58 #, c-format msgid "unknown SDT version %u\n" msgstr "невідома верÑÑ–Ñ SDT, %u\n" -#: libebl/eblobjnote.c:71 +#: libebl/eblobjnote.c:76 #, c-format msgid "invalid SDT probe descriptor\n" msgstr "некоректний деÑкриптор Ð·Ð¾Ð½Ð´ÑƒÐ²Ð°Ð½Ð½Ñ SDT\n" -#: libebl/eblobjnote.c:121 +#: libebl/eblobjnote.c:126 #, c-format msgid " PC: " msgstr " PC: " -#: libebl/eblobjnote.c:123 +#: libebl/eblobjnote.c:128 #, c-format msgid " Base: " msgstr "ОÑнова: " -#: libebl/eblobjnote.c:125 +#: libebl/eblobjnote.c:130 #, c-format msgid " Semaphore: " msgstr " Семафор: " -#: libebl/eblobjnote.c:127 +#: libebl/eblobjnote.c:132 #, c-format msgid " Provider: " msgstr " ПоÑтачальник: " -#: libebl/eblobjnote.c:129 +#: libebl/eblobjnote.c:134 #, c-format msgid " Name: " msgstr "Ðазва: " -#: libebl/eblobjnote.c:131 +#: libebl/eblobjnote.c:136 #, c-format msgid " Args: " msgstr " Ðрг.: " -#: libebl/eblobjnote.c:141 +#: libebl/eblobjnote.c:300 #, c-format msgid " Build ID: " msgstr " Ід. збираннÑ: " #. A non-null terminated version string. -#: libebl/eblobjnote.c:152 +#: libebl/eblobjnote.c:311 #, c-format msgid " Linker version: %.*s\n" msgstr " ВерÑÑ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %.*s\n" -#: libebl/eblobjnote.c:213 +#: libebl/eblobjnote.c:553 #, c-format msgid " OS: %s, ABI: " msgstr " ОС: %s, ABI: " @@ -621,7 +621,7 @@ msgstr "некоректна розмірніÑÑ‚ÑŒ вхідного парамРmsgid "invalid size of destination operand" msgstr "некоректна розмірніÑÑ‚ÑŒ вихідного параметра" -#: libelf/elf_error.c:87 src/readelf.c:6123 +#: libelf/elf_error.c:87 src/readelf.c:6129 #, c-format msgid "invalid encoding" msgstr "некоректне кодуваннÑ" @@ -707,8 +707,8 @@ msgstr "невідповідніÑÑ‚ÑŒ полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:191 src/readelf.c:9758 src/readelf.c:10329 -#: src/readelf.c:10430 src/readelf.c:10611 +#: libelf/elf_error.c:191 src/readelf.c:9775 src/readelf.c:10375 +#: src/readelf.c:10476 src/readelf.c:10658 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -1045,12 +1045,12 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані архіву «%s» за Ð msgid "no entry %s in archive\n" msgstr "у архіві немає запиÑу %s\n" -#: src/ar.c:472 src/ar.c:917 src/ar.c:1121 +#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 #, c-format msgid "cannot create hash table" msgstr "не вдалоÑÑ Ñтворити таблицю хешів" -#: src/ar.c:479 src/ar.c:924 src/ar.c:1130 +#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 #, c-format msgid "cannot insert into hash table" msgstr "не вдалоÑÑ Ð²Ñтавити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ таблиці хешів" @@ -1060,97 +1060,97 @@ msgstr "не вдалоÑÑ Ð²Ñтавити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ таблиці хе msgid "cannot stat '%s'" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з «%s» за допомогою stat" -#: src/ar.c:583 +#: src/ar.c:589 #, c-format msgid "cannot read content of %s: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вміÑÑ‚ з %s: %s" -#: src/ar.c:626 +#: src/ar.c:632 #, c-format msgid "cannot open %.*s" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %.*s" -#: src/ar.c:648 +#: src/ar.c:654 #, c-format msgid "failed to write %s" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати %s" -#: src/ar.c:660 +#: src/ar.c:666 #, c-format msgid "cannot change mode of %s" msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ права доÑтупу до %s" -#: src/ar.c:676 +#: src/ar.c:682 #, c-format msgid "cannot change modification time of %s" msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ чаÑову мітку зміни %s" -#: src/ar.c:722 +#: src/ar.c:728 #, c-format msgid "cannot rename temporary file to %.*s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ñ‚Ð¸ файл тимчаÑових даних на %.*s" -#: src/ar.c:758 src/ar.c:1009 src/ar.c:1410 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "не вдалоÑÑ Ñтворити файл" -#: src/ar.c:1212 +#: src/ar.c:1218 #, c-format msgid "position member %s not found" msgstr "не виÑвлено елемента позиції %s" -#: src/ar.c:1222 +#: src/ar.c:1228 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: у архіві немає запиÑу %s!\n" -#: src/ar.c:1251 src/objdump.c:241 +#: src/ar.c:1257 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s" -#: src/ar.c:1256 +#: src/ar.c:1262 #, c-format msgid "cannot stat %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s за допомогою stat" -#: src/ar.c:1262 +#: src/ar.c:1268 #, c-format msgid "%s is no regular file" msgstr "%s не Ñ” звичайним файлом" -#: src/ar.c:1275 +#: src/ar.c:1281 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор ELF Ð´Ð»Ñ %s: %s\n" -#: src/ar.c:1295 +#: src/ar.c:1301 #, c-format msgid "cannot read %s: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s: %s" -#: src/ar.c:1470 +#: src/ar.c:1476 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ DWARF" -#: src/ar.c:1476 +#: src/ar.c:1482 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ DWARF" -#: src/ar.c:1482 +#: src/ar.c:1488 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ DWARF" -#: src/ar.c:1488 +#: src/ar.c:1494 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу" -#: src/ar.c:1494 +#: src/ar.c:1500 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s" @@ -1375,8 +1375,8 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%s» параметра --gaps." #: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141 -#: src/size.c:272 src/strings.c:185 src/strip.c:517 src/strip.c:554 -#: src/unstrip.c:2052 src/unstrip.c:2081 +#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021 +#: src/unstrip.c:2142 src/unstrip.c:2171 #, c-format msgid "cannot open '%s'" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ «%s»" @@ -1391,7 +1391,7 @@ msgstr "не вдалоÑÑ Ñтворити деÑкриптор ELF Ð´Ð»Ñ Â«% msgid "cannot create EBL descriptor for '%s'" msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL Ð´Ð»Ñ Â«%s»" -#: src/elfcmp.c:761 src/findtextrel.c:393 +#: src/elfcmp.c:761 src/findtextrel.c:394 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s" @@ -1406,7 +1406,7 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу %zu: %s" msgid "cannot get relocation: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ переÑуваннÑ: %s" -#: src/elfcompress.c:115 src/strip.c:296 src/unstrip.c:121 +#: src/elfcompress.c:115 src/strip.c:308 src/unstrip.c:121 #, c-format msgid "-o option specified twice" msgstr "параметр -o вказано двічі" @@ -1461,7 +1461,7 @@ msgid "" "rewrite the file even if no section would be (de)compressed" msgstr "" -#: src/elfcompress.c:1324 src/strip.c:90 +#: src/elfcompress.c:1324 src/strip.c:93 msgid "Relax a few rules to handle slightly broken ELF files" msgstr "" "Знехтувати декількома правилами Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ трохи пошкоджених файлів ELF" @@ -1687,7 +1687,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1494 src/elflint.c:1545 src/elflint.c:1651 #: src/elflint.c:1987 src/elflint.c:2313 src/elflint.c:2932 src/elflint.c:3095 -#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4401 +#: src/elflint.c:3243 src/elflint.c:3433 src/elflint.c:4431 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу\n" @@ -3272,53 +3272,56 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм " "%zu\n" -#: src/elflint.c:4344 -#, c-format -msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n" +#: src/elflint.c:4370 +#, fuzzy, c-format +msgid "" +"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at " +"offset %zu\n" msgstr "" "phdr[%d]: невідомий тип нотатки об’єктного файла %<PRIu32> за зміщеннÑм %zu\n" -#: src/elflint.c:4348 -#, c-format +#: src/elflint.c:4375 +#, fuzzy, c-format msgid "" -"section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n" +"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name " +"'%s' at offset %zu\n" msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки об’єктного файла %<PRIu32> за " "зміщеннÑм %zu\n" -#: src/elflint.c:4365 +#: src/elflint.c:4394 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n" -#: src/elflint.c:4384 +#: src/elflint.c:4414 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток: %s\n" -#: src/elflint.c:4387 +#: src/elflint.c:4417 #, c-format msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n" msgstr "phdr[%d]: зайві %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтаннього запиÑу нотатки\n" -#: src/elflint.c:4408 +#: src/elflint.c:4438 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n" -#: src/elflint.c:4415 +#: src/elflint.c:4445 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток\n" -#: src/elflint.c:4418 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n" msgstr "" "розділ [%2d] «%s»: додаткові %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтанньої нотатки\n" -#: src/elflint.c:4436 +#: src/elflint.c:4466 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3326,141 +3329,141 @@ msgstr "" "заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів " "Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ файлів core\n" -#: src/elflint.c:4451 +#: src/elflint.c:4481 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: %s\n" -#: src/elflint.c:4460 +#: src/elflint.c:4490 #, c-format msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n" msgstr "" "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: невідомий тип запиÑу заголовка програми " "%#<PRIx64>\n" -#: src/elflint.c:4471 +#: src/elflint.c:4501 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ INTERP у заголовку програми\n" -#: src/elflint.c:4479 +#: src/elflint.c:4509 #, c-format msgid "more than one TLS entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ TLS у заголовку програми\n" -#: src/elflint.c:4486 +#: src/elflint.c:4516 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "у Ñтатичному виконуваному файлі не може бути динамічних розділів\n" -#: src/elflint.c:4500 +#: src/elflint.c:4530 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° динамічний розділ у заголовку програми має помилкове зміщеннÑ\n" -#: src/elflint.c:4503 +#: src/elflint.c:4533 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "розміри динамічного розділу у заголовку програми та у заголовку розділу не " "збігаютьÑÑ\n" -#: src/elflint.c:4513 +#: src/elflint.c:4543 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ GNU_RELRO у заголовку програми\n" -#: src/elflint.c:4534 +#: src/elflint.c:4564 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" "придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент, до Ñкого звертаєтьÑÑ GNU_RELRO, " "непридатний до запиÑу\n" -#: src/elflint.c:4545 +#: src/elflint.c:4575 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "прапорці придатного до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента [%u] не відповідають прапорцÑм " "GNU_RELRO [%u]\n" -#: src/elflint.c:4552 +#: src/elflint.c:4582 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4561 src/elflint.c:4584 +#: src/elflint.c:4591 src/elflint.c:4614 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "Ñегмент %s не міÑтитьÑÑ Ñƒ завантаженому Ñегменті\n" -#: src/elflint.c:4590 +#: src/elflint.c:4620 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми у заголовку ELF Ñ– Ð·Ð°Ð¿Ð¸Ñ PHDR не збігаютьÑÑ" -#: src/elflint.c:4615 +#: src/elflint.c:4647 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю вікон викликів у заголовку програми має помилкове " "зміщеннÑ\n" -#: src/elflint.c:4618 +#: src/elflint.c:4650 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку " "розділу не збігаютьÑÑ\n" -#: src/elflint.c:4631 +#: src/elflint.c:4663 #, 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:4639 +#: src/elflint.c:4671 #, c-format msgid "call frame search table must be allocated\n" msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4642 +#: src/elflint.c:4674 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "розділ [%2zu] «%s» має бути розміщено у пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4646 +#: src/elflint.c:4678 #, c-format msgid "call frame search table must not be writable\n" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до запиÑу\n" -#: src/elflint.c:4649 +#: src/elflint.c:4681 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до запиÑу\n" -#: src/elflint.c:4654 +#: src/elflint.c:4686 #, c-format msgid "call frame search table must not be executable\n" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до виконаннÑ\n" -#: src/elflint.c:4657 +#: src/elflint.c:4689 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконаннÑ\n" -#: src/elflint.c:4668 +#: src/elflint.c:4700 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: розмір файла перевищує об’єм пам’ÑÑ‚Ñ–\n" -#: src/elflint.c:4675 +#: src/elflint.c:4707 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” Ñтепенем 2\n" -#: src/elflint.c:4678 +#: src/elflint.c:4710 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3469,7 +3472,7 @@ msgstr "" "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ файлі Ñ– віртуальна адреÑа не " "ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· вирівнюваннÑм\n" -#: src/elflint.c:4691 +#: src/elflint.c:4723 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3478,12 +3481,12 @@ msgstr "" "виконуваний модуль/DSO з розділом .eh_frame_hdr не міÑтить запиÑу заголовка " "програми PT_GNU_EH_FRAME" -#: src/elflint.c:4725 +#: src/elflint.c:4757 #, c-format msgid "cannot read ELF header: %s\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s\n" -#: src/elflint.c:4751 +#: src/elflint.c:4783 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3508,7 +3511,7 @@ msgstr "Шукає джерело переÑуваного текÑту у ФÐÐ #. Strings for arguments in help texts. #: src/findtextrel.c:74 src/nm.c:108 src/objdump.c:71 src/size.c:80 -#: src/strings.c:87 src/strip.c:98 +#: src/strings.c:87 src/strip.c:101 msgid "[FILE...]" msgstr "[ФÐЙЛ...]" @@ -3527,55 +3530,55 @@ msgstr "«%s» не Ñ” DSO або PIE" msgid "getting get section header of section %zu: %s" msgstr "Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу get розділу %zu: %s" -#: src/findtextrel.c:276 +#: src/findtextrel.c:277 #, c-format msgid "cannot read dynamic section: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ динамічний розділ: %s" -#: src/findtextrel.c:297 +#: src/findtextrel.c:298 #, c-format msgid "no text relocations reported in '%s'" msgstr "у «%s» не виÑвлено переÑувань текÑту" -#: src/findtextrel.c:309 +#: src/findtextrel.c:310 #, c-format msgid "while reading ELF file" msgstr "під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ELF" -#: src/findtextrel.c:313 +#: src/findtextrel.c:314 #, c-format msgid "cannot get program header count: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s" -#: src/findtextrel.c:324 src/findtextrel.c:341 +#: src/findtextrel.c:325 src/findtextrel.c:342 #, c-format msgid "cannot get program header index at offset %zd: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми за зміщеннÑм %zd: %s" -#: src/findtextrel.c:405 +#: src/findtextrel.c:406 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ таблицю Ñимволів розділу %zu у «%s»: %s" -#: src/findtextrel.c:425 src/findtextrel.c:448 +#: src/findtextrel.c:427 src/findtextrel.c:450 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" msgstr "" "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° індекÑом %d у розділі %zu у «%s»: %s" -#: src/findtextrel.c:514 +#: src/findtextrel.c:516 #, c-format msgid "%s not compiled with -fpic/-fPIC\n" msgstr "%s не зібрано з -fpic/-fPIC\n" -#: src/findtextrel.c:567 +#: src/findtextrel.c:570 #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" "файл, що міÑтить функцію «%s», не було зібрано з параметрами -fpic/-fPIC\n" -#: src/findtextrel.c:574 src/findtextrel.c:594 +#: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" @@ -3584,7 +3587,7 @@ msgstr "" "файл, що міÑтить функцію «%s», ймовірно, не було зібрано з параметрами -" "fpic/-fPIC\n" -#: src/findtextrel.c:582 +#: src/findtextrel.c:585 #, c-format msgid "" "either the file containing the function '%s' or the file containing the " @@ -3593,7 +3596,7 @@ msgstr "" "файл, що міÑтить функцію «%s», або файл, що міÑтить функцію «%s», зібрано " "без параметрів -fpic/-fPIC\n" -#: src/findtextrel.c:602 +#: src/findtextrel.c:605 #, c-format msgid "" "a relocation modifies memory at offset %llu in a write-protected segment\n" @@ -3601,7 +3604,7 @@ msgstr "" "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до зміни запиÑу пам’ÑÑ‚Ñ– за зміщеннÑм %llu у " "захищеному від запиÑу Ñегменті\n" -#: src/nm.c:66 src/strip.c:69 +#: src/nm.c:66 src/strip.c:70 msgid "Output selection:" msgstr "Вибір виводу:" @@ -3665,7 +3668,7 @@ msgstr "Позначати Ñпеціальні Ñимволи" msgid "Print size of defined symbols" msgstr "ВивеÑти розмір визначених Ñимволів" -#: src/nm.c:91 src/size.c:68 src/strip.c:74 src/unstrip.c:73 +#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:73 msgid "Output options:" msgstr "Параметри виводу:" @@ -3694,18 +3697,18 @@ msgstr "Показати ÑпиÑок Ñимволів з ФÐЙЛів (типо msgid "Output formatting" msgstr "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ" -#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:130 +#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133 #, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: Ð’ÐУТРІШÐЯ ПОМИЛКР%d (%s): %s" #: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308 -#: src/strip.c:2505 +#: src/strip.c:2747 #, c-format msgid "while closing '%s'" msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»" -#: src/nm.c:403 src/objdump.c:280 src/strip.c:442 +#: src/nm.c:403 src/objdump.c:280 src/strip.c:797 #, c-format msgid "%s: File format not recognized" msgstr "%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла" @@ -3745,12 +3748,12 @@ msgid "cannot create search tree" msgstr "не вдалоÑÑ Ñтворити дерево пошуку" #: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605 -#: src/readelf.c:1410 src/readelf.c:1558 src/readelf.c:1759 src/readelf.c:1965 -#: src/readelf.c:2155 src/readelf.c:2333 src/readelf.c:2409 src/readelf.c:2667 -#: src/readelf.c:2743 src/readelf.c:2830 src/readelf.c:3428 src/readelf.c:3478 -#: src/readelf.c:3541 src/readelf.c:11044 src/readelf.c:12216 -#: src/readelf.c:12419 src/readelf.c:12487 src/size.c:396 src/size.c:465 -#: src/strip.c:571 +#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970 +#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672 +#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483 +#: src/readelf.c:3546 src/readelf.c:11091 src/readelf.c:12276 +#: src/readelf.c:12480 src/readelf.c:12548 src/size.c:398 src/size.c:467 +#: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків" @@ -3843,11 +3846,11 @@ msgstr "Ðе вказано дії.\n" msgid "while close `%s'" msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»" -#: src/objdump.c:363 src/readelf.c:2060 src/readelf.c:2252 +#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257 msgid "INVALID SYMBOL" msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ" -#: src/objdump.c:378 src/readelf.c:2094 src/readelf.c:2288 +#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293 msgid "INVALID SECTION" msgstr "ÐЕКОРЕКТÐИЙ РОЗДІЛ" @@ -4052,21 +4055,21 @@ msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s». msgid "cannot generate Elf descriptor: %s" msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf: %s" -#: src/readelf.c:596 src/readelf.c:924 src/strip.c:640 +#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133 #, c-format msgid "cannot determine number of sections: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s" -#: src/readelf.c:614 src/readelf.c:1226 src/readelf.c:1434 +#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436 #, c-format msgid "cannot get section: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/readelf.c:623 src/readelf.c:1233 src/readelf.c:1442 src/readelf.c:12439 -#: src/unstrip.c:394 src/unstrip.c:425 src/unstrip.c:474 src/unstrip.c:584 -#: src/unstrip.c:605 src/unstrip.c:642 src/unstrip.c:846 src/unstrip.c:1138 -#: src/unstrip.c:1330 src/unstrip.c:1391 src/unstrip.c:1564 src/unstrip.c:1679 -#: src/unstrip.c:1819 src/unstrip.c:1914 +#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12500 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600 +#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202 +#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766 +#: src/unstrip.c:1909 src/unstrip.c:2004 #, c-format msgid "cannot get section header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s" @@ -4076,8 +4079,8 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: msgid "cannot get section name" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу" -#: src/readelf.c:640 src/readelf.c:6533 src/readelf.c:10317 src/readelf.c:10419 -#: src/readelf.c:10596 +#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10363 src/readelf.c:10465 +#: src/readelf.c:10643 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s" @@ -4127,53 +4130,58 @@ msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s" msgid "No such section '%s' in '%s'" msgstr "У «%2$s» немає розділу «%1$s»" -#: src/readelf.c:909 +#: src/readelf.c:908 #, c-format msgid "cannot read ELF header: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s" -#: src/readelf.c:917 +#: src/readelf.c:916 #, c-format msgid "cannot create EBL handle" msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL" -#: src/readelf.c:930 +#: src/readelf.c:929 #, c-format msgid "cannot determine number of program headers: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s" -#: src/readelf.c:1020 +#: src/readelf.c:961 +#, fuzzy, c-format +msgid "cannot read ELF: %s" +msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s: %s" + +#: src/readelf.c:1022 msgid "NONE (None)" msgstr "NONE (Ðемає)" -#: src/readelf.c:1021 +#: src/readelf.c:1023 msgid "REL (Relocatable file)" msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)" -#: src/readelf.c:1022 +#: src/readelf.c:1024 msgid "EXEC (Executable file)" msgstr "EXEC (Виконуваний файл)" -#: src/readelf.c:1023 +#: src/readelf.c:1025 msgid "DYN (Shared object file)" msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)" -#: src/readelf.c:1024 +#: src/readelf.c:1026 msgid "CORE (Core file)" msgstr "CORE (Файл Ñдра)" -#: src/readelf.c:1029 +#: src/readelf.c:1031 #, c-format msgid "OS Specific: (%x)\n" msgstr "ОС-Ñпецифічне: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:1031 +#: src/readelf.c:1033 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n" -#: src/readelf.c:1041 +#: src/readelf.c:1043 msgid "" "ELF Header:\n" " Magic: " @@ -4181,7 +4189,7 @@ msgstr "" "Заголовок ELF:\n" " Magic: " -#: src/readelf.c:1045 +#: src/readelf.c:1047 #, c-format msgid "" "\n" @@ -4190,118 +4198,118 @@ msgstr "" "\n" " КлаÑ: %s\n" -#: src/readelf.c:1050 +#: src/readelf.c:1052 #, c-format msgid " Data: %s\n" msgstr " Дані: %s\n" -#: src/readelf.c:1056 +#: src/readelf.c:1058 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n" -#: src/readelf.c:1058 src/readelf.c:1075 +#: src/readelf.c:1060 src/readelf.c:1077 msgid "(current)" msgstr "(поточний)" -#: src/readelf.c:1062 +#: src/readelf.c:1064 #, c-format msgid " OS/ABI: %s\n" msgstr " ОС/ABI: %s\n" -#: src/readelf.c:1065 +#: src/readelf.c:1067 #, c-format msgid " ABI Version: %hhd\n" msgstr " ВерÑÑ–Ñ ABI: %hhd\n" -#: src/readelf.c:1068 +#: src/readelf.c:1070 msgid " Type: " msgstr " Тип: " -#: src/readelf.c:1071 +#: src/readelf.c:1073 #, c-format msgid " Machine: %s\n" msgstr " Ðрхітектура: %s\n" -#: src/readelf.c:1073 +#: src/readelf.c:1075 #, c-format msgid " Version: %d %s\n" msgstr " ВерÑÑ–Ñ: %d %s\n" -#: src/readelf.c:1077 +#: src/readelf.c:1079 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n" -#: src/readelf.c:1080 +#: src/readelf.c:1082 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Початок заголовків програм: %<PRId64> %s\n" -#: src/readelf.c:1081 src/readelf.c:1084 +#: src/readelf.c:1083 src/readelf.c:1086 msgid "(bytes into file)" msgstr "(байтів у файл)" -#: src/readelf.c:1083 +#: src/readelf.c:1085 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Початок заголовків розділів: %<PRId64> %s\n" -#: src/readelf.c:1086 +#: src/readelf.c:1088 #, c-format msgid " Flags: %s\n" msgstr " Прапорці: %s\n" -#: src/readelf.c:1089 +#: src/readelf.c:1091 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Розмір цього заголовка: %<PRId16> %s\n" -#: src/readelf.c:1090 src/readelf.c:1093 src/readelf.c:1110 +#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112 msgid "(bytes)" msgstr "(байтів)" -#: src/readelf.c:1092 +#: src/readelf.c:1094 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n" -#: src/readelf.c:1095 +#: src/readelf.c:1097 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>" -#: src/readelf.c:1102 +#: src/readelf.c:1104 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> у [0].sh_info)" -#: src/readelf.c:1105 src/readelf.c:1122 src/readelf.c:1136 +#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138 msgid " ([0] not available)" msgstr " ([0] недоÑтупний)" -#: src/readelf.c:1109 +#: src/readelf.c:1111 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n" -#: src/readelf.c:1112 +#: src/readelf.c:1114 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>" -#: src/readelf.c:1119 +#: src/readelf.c:1121 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> у [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1132 +#: src/readelf.c:1134 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> у [0].sh_link)" -#: src/readelf.c:1140 +#: src/readelf.c:1142 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4310,7 +4318,7 @@ msgstr "" " Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: XINDEX%s\n" "\n" -#: src/readelf.c:1144 +#: src/readelf.c:1146 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4319,12 +4327,12 @@ msgstr "" " Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %<PRId16>\n" "\n" -#: src/readelf.c:1191 src/readelf.c:1399 +#: src/readelf.c:1193 src/readelf.c:1401 #, fuzzy, c-format msgid "cannot get number of sections: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s" -#: src/readelf.c:1194 +#: src/readelf.c:1196 #, fuzzy, c-format msgid "" "There are %zd section headers, starting at offset %#<PRIx64>:\n" @@ -4333,16 +4341,16 @@ msgstr "" "ВиÑвлено %d заголовків розділів, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ — %#<PRIx64>:\n" "\n" -#: src/readelf.c:1203 +#: src/readelf.c:1205 #, fuzzy, c-format msgid "cannot get section header string table index: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків" -#: src/readelf.c:1206 +#: src/readelf.c:1208 msgid "Section Headers:" msgstr "Заголовки розділів:" -#: src/readelf.c:1209 +#: src/readelf.c:1211 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4350,7 +4358,7 @@ msgstr "" "[â„– ] Ðазва Тип Ðдр Змі Розмір ES Прап Lk " "Інф Al" -#: src/readelf.c:1211 +#: src/readelf.c:1213 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4358,35 +4366,35 @@ msgstr "" "[â„– ] Ðазва Тип Ðдр Змі Розмір ES " "Прап Lk Інф Al" -#: src/readelf.c:1216 +#: src/readelf.c:1218 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1218 +#: src/readelf.c:1220 msgid " [Compression Size Al]" msgstr "" -#: src/readelf.c:1294 +#: src/readelf.c:1296 #, fuzzy, c-format msgid "bad compression header for section %zd: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s" -#: src/readelf.c:1305 +#: src/readelf.c:1307 #, fuzzy, c-format msgid "bad gnu compressed size for section %zd: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s" -#: src/readelf.c:1323 +#: src/readelf.c:1325 msgid "Program Headers:" msgstr "Заголовки програми:" -#: src/readelf.c:1325 +#: src/readelf.c:1327 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів" -#: src/readelf.c:1328 +#: src/readelf.c:1330 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4394,12 +4402,12 @@ msgstr "" " Тип Зміщен ВіртÐдр ФізÐдр " "РозмФайлРозмПам Пра Вирів" -#: src/readelf.c:1385 +#: src/readelf.c:1387 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Запит щодо інтерпретатора програми: %s]\n" -#: src/readelf.c:1412 +#: src/readelf.c:1414 msgid "" "\n" " Section to Segment mapping:\n" @@ -4409,12 +4417,12 @@ msgstr "" " Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² на Ñегмент:\n" " Розділи Ñегмента..." -#: src/readelf.c:1423 src/unstrip.c:1973 src/unstrip.c:2015 src/unstrip.c:2022 +#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112 #, c-format msgid "cannot get program header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок програми: %s" -#: src/readelf.c:1566 +#: src/readelf.c:1571 #, c-format msgid "" "\n" @@ -4432,7 +4440,7 @@ msgstr[2] "" "\n" "Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:1571 +#: src/readelf.c:1576 #, c-format msgid "" "\n" @@ -4450,31 +4458,31 @@ msgstr[2] "" "\n" "Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:1579 +#: src/readelf.c:1584 msgid "<INVALID SYMBOL>" msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>" -#: src/readelf.c:1593 +#: src/readelf.c:1598 msgid "<INVALID SECTION>" msgstr "<ÐЕКОРЕКТÐИЙ РОЗДІЛ>" -#: src/readelf.c:1616 src/readelf.c:2343 src/readelf.c:3444 src/readelf.c:12310 -#: src/readelf.c:12317 src/readelf.c:12361 src/readelf.c:12368 +#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12371 +#: src/readelf.c:12378 src/readelf.c:12422 src/readelf.c:12429 msgid "Couldn't uncompress section" msgstr "" -#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 +#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454 #, fuzzy, c-format msgid "cannot get section [%zd] header: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s" -#: src/readelf.c:1765 src/readelf.c:2415 src/readelf.c:2673 src/readelf.c:2749 -#: src/readelf.c:3053 src/readelf.c:3127 src/readelf.c:5322 +#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754 +#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327 #, c-format msgid "invalid sh_link value in section %zu" msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu" -#: src/readelf.c:1768 +#: src/readelf.c:1773 #, c-format msgid "" "\n" @@ -4497,36 +4505,36 @@ msgstr[2] "" "Динамічний Ñегмент міÑтить %lu запиÑів:\n" " Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n" -#: src/readelf.c:1778 +#: src/readelf.c:1783 msgid " Type Value\n" msgstr " Тип ЗначеннÑ\n" -#: src/readelf.c:1802 +#: src/readelf.c:1807 #, c-format msgid "Shared library: [%s]\n" msgstr "Спільна бібліотека: [%s]\n" -#: src/readelf.c:1807 +#: src/readelf.c:1812 #, c-format msgid "Library soname: [%s]\n" msgstr "Ðазва so бібліотеки: [%s]\n" -#: src/readelf.c:1812 +#: src/readelf.c:1817 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath бібліотеки: [%s]\n" -#: src/readelf.c:1817 +#: src/readelf.c:1822 #, c-format msgid "Library runpath: [%s]\n" msgstr "Runpath бібліотеки: [%s]\n" -#: src/readelf.c:1837 +#: src/readelf.c:1842 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (байт)\n" -#: src/readelf.c:1950 src/readelf.c:2140 +#: src/readelf.c:1955 src/readelf.c:2145 #, c-format msgid "" "\n" @@ -4535,7 +4543,7 @@ msgstr "" "\n" "Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n" -#: src/readelf.c:1968 src/readelf.c:2158 +#: src/readelf.c:1973 src/readelf.c:2163 #, c-format msgid "" "\n" @@ -4564,7 +4572,7 @@ msgstr[2] "" #. The .rela.dyn section does not refer to a specific section but #. instead of section index zero. Do not try to print a section #. name. -#: src/readelf.c:1983 src/readelf.c:2173 +#: src/readelf.c:1988 src/readelf.c:2178 #, c-format msgid "" "\n" @@ -4582,30 +4590,30 @@ msgstr[2] "" "\n" "Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n" -#: src/readelf.c:1993 +#: src/readelf.c:1998 msgid " Offset Type Value Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n" -#: src/readelf.c:1995 +#: src/readelf.c:2000 msgid " Offset Type Value Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n" -#: src/readelf.c:2048 src/readelf.c:2059 src/readelf.c:2072 src/readelf.c:2093 -#: src/readelf.c:2105 src/readelf.c:2239 src/readelf.c:2251 src/readelf.c:2265 -#: src/readelf.c:2287 src/readelf.c:2300 +#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098 +#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270 +#: src/readelf.c:2292 src/readelf.c:2305 msgid "<INVALID RELOC>" msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>" -#: src/readelf.c:2183 +#: src/readelf.c:2188 msgid " Offset Type Value Addend Name\n" msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n" -#: src/readelf.c:2185 +#: src/readelf.c:2190 msgid " Offset Type Value Addend Name\n" msgstr "" " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n" -#: src/readelf.c:2423 +#: src/readelf.c:2428 #, c-format msgid "" "\n" @@ -4623,7 +4631,7 @@ msgstr[2] "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n" -#: src/readelf.c:2428 +#: src/readelf.c:2433 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -4631,33 +4639,33 @@ msgstr[0] " %lu лок. Ñимвол Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] « msgstr[1] " %lu лок. Ñимволи Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n" msgstr[2] " %lu лок. Ñимволів Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n" -#: src/readelf.c:2436 +#: src/readelf.c:2441 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n" -#: src/readelf.c:2438 +#: src/readelf.c:2443 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n" -#: src/readelf.c:2458 +#: src/readelf.c:2463 #, 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:2546 +#: src/readelf.c:2551 #, c-format msgid "bad dynamic symbol" msgstr "помилковий динамічний Ñимвол" -#: src/readelf.c:2628 +#: src/readelf.c:2633 msgid "none" msgstr "немає" -#: src/readelf.c:2645 +#: src/readelf.c:2650 msgid "| <unknown>" msgstr "| <невідомо>" -#: src/readelf.c:2676 +#: src/readelf.c:2681 #, c-format msgid "" "\n" @@ -4680,17 +4688,17 @@ msgstr[2] "" "Розділ потреби у верÑÑ–ÑÑ… [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:2697 +#: src/readelf.c:2702 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n" -#: src/readelf.c:2710 +#: src/readelf.c:2715 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n" -#: src/readelf.c:2753 +#: src/readelf.c:2758 #, c-format msgid "" "\n" @@ -4713,18 +4721,18 @@ msgstr[2] "" "Розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ— [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:2781 +#: src/readelf.c:2786 #, 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:2796 +#: src/readelf.c:2801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: батьківÑький %d: %s\n" #. Print the header. -#: src/readelf.c:3057 +#: src/readelf.c:3062 #, c-format msgid "" "\n" @@ -4747,15 +4755,15 @@ msgstr[2] "" "Розділ Ñимволів верÑій [%2u] «%s», що міÑтить %d запиÑів:\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»" -#: src/readelf.c:3085 +#: src/readelf.c:3090 msgid " 0 *local* " msgstr " 0 *локальний* " -#: src/readelf.c:3090 +#: src/readelf.c:3095 msgid " 1 *global* " msgstr " 1 *загальний* " -#: src/readelf.c:3132 +#: src/readelf.c:3137 #, c-format msgid "" "\n" @@ -4783,22 +4791,22 @@ msgstr[2] "" "блоками):\n" " Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n" -#: src/readelf.c:3154 +#: src/readelf.c:3159 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Довжина Ðомер % від загал. ПокриттÑ\n" -#: src/readelf.c:3156 +#: src/readelf.c:3161 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:3163 +#: src/readelf.c:3168 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:3176 +#: src/readelf.c:3181 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4807,37 +4815,37 @@ msgstr "" " Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ теÑтів: уÑпішний пошук: %f\n" "\t\t\t неуÑпішний пошук: %f\n" -#: src/readelf.c:3194 src/readelf.c:3258 src/readelf.c:3324 +#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329 #, c-format msgid "cannot get data for section %d: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s" -#: src/readelf.c:3202 +#: src/readelf.c:3207 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "некоректні дані у розділі sysv.hash %d" -#: src/readelf.c:3231 +#: src/readelf.c:3236 #, fuzzy, c-format msgid "invalid chain in sysv.hash section %d" msgstr "некоректні дані у розділі sysv.hash %d" -#: src/readelf.c:3266 +#: src/readelf.c:3271 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "некоректні дані у розділі sysv.hash64 %d" -#: src/readelf.c:3297 +#: src/readelf.c:3302 #, fuzzy, c-format msgid "invalid chain in sysv.hash64 section %d" msgstr "некоректні дані у розділі sysv.hash64 %d" -#: src/readelf.c:3333 +#: src/readelf.c:3338 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "некоректні дані у розділі gnu.hash %d" -#: src/readelf.c:3400 +#: src/readelf.c:3405 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4847,7 +4855,7 @@ msgstr "" " Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув " "2-го хешу: %u\n" -#: src/readelf.c:3489 +#: src/readelf.c:3494 #, c-format msgid "" "\n" @@ -4868,7 +4876,7 @@ msgstr[2] "" "Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d " "запиÑів:\n" -#: src/readelf.c:3503 +#: src/readelf.c:3508 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4876,7 +4884,7 @@ msgstr "" " Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми " "Прапорці" -#: src/readelf.c:3553 +#: src/readelf.c:3558 #, c-format msgid "" "\n" @@ -4887,102 +4895,102 @@ msgstr "" "Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм " "%#0<PRIx64>:\n" -#: src/readelf.c:3570 +#: src/readelf.c:3575 msgid " Owner Size\n" msgstr " ВлаÑник Розмір\n" -#: src/readelf.c:3599 +#: src/readelf.c:3604 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3638 +#: src/readelf.c:3643 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" #. Tag_File -#: src/readelf.c:3643 +#: src/readelf.c:3648 #, c-format msgid " File: %11<PRIu32>\n" msgstr " Файл: %11<PRIu32>\n" -#: src/readelf.c:3692 +#: src/readelf.c:3697 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3695 +#: src/readelf.c:3700 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3698 +#: src/readelf.c:3703 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3708 +#: src/readelf.c:3713 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3711 +#: src/readelf.c:3716 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3781 +#: src/readelf.c:3786 #, fuzzy, c-format msgid "sprintf failure" msgstr "помилка mprotect" -#: src/readelf.c:4263 +#: src/readelf.c:4268 msgid "empty block" msgstr "порожній блок" -#: src/readelf.c:4266 +#: src/readelf.c:4271 #, c-format msgid "%zu byte block:" msgstr "%zu-байтовий блок:" -#: src/readelf.c:4744 +#: src/readelf.c:4749 #, fuzzy, c-format msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <ОБРІЗÐÐО>\n" -#: src/readelf.c:4808 +#: src/readelf.c:4813 #, c-format msgid "%s %#<PRIx64> used with different address sizes" msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ" -#: src/readelf.c:4815 +#: src/readelf.c:4820 #, c-format msgid "%s %#<PRIx64> used with different offset sizes" msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень" -#: src/readelf.c:4822 +#: src/readelf.c:4827 #, c-format msgid "%s %#<PRIx64> used with different base addresses" msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами" -#: src/readelf.c:4829 +#: src/readelf.c:4834 #, fuzzy, c-format msgid "%s %#<PRIx64> used with different attribute %s and %s" msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ" -#: src/readelf.c:4926 +#: src/readelf.c:4931 #, c-format msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n" msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n" -#: src/readelf.c:4934 +#: src/readelf.c:4939 #, c-format msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n" msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n" -#: src/readelf.c:5012 +#: src/readelf.c:5017 #, c-format msgid "" "\n" @@ -4993,7 +5001,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" " [ Код]\n" -#: src/readelf.c:5020 +#: src/readelf.c:5025 #, c-format msgid "" "\n" @@ -5002,20 +5010,20 @@ msgstr "" "\n" "Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n" -#: src/readelf.c:5033 +#: src/readelf.c:5038 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n" -#: src/readelf.c:5049 +#: src/readelf.c:5054 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] зміщеннÑ: %<PRId64>, дочірній: %s, мітка: %s\n" -#: src/readelf.c:5082 src/readelf.c:5391 src/readelf.c:5557 src/readelf.c:5942 -#: src/readelf.c:6543 src/readelf.c:8184 src/readelf.c:8854 src/readelf.c:9290 -#: src/readelf.c:9534 src/readelf.c:9699 src/readelf.c:10060 -#: src/readelf.c:10118 +#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948 +#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8870 src/readelf.c:9306 +#: src/readelf.c:9551 src/readelf.c:9717 src/readelf.c:10104 +#: src/readelf.c:10164 #, c-format msgid "" "\n" @@ -5024,56 +5032,56 @@ msgstr "" "\n" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" -#: src/readelf.c:5095 +#: src/readelf.c:5100 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s" -#: src/readelf.c:5195 src/readelf.c:5219 src/readelf.c:5602 src/readelf.c:8899 +#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8915 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr "" "\n" " Довжина: %6<PRIu64>\n" -#: src/readelf.c:5197 src/readelf.c:5234 src/readelf.c:5615 src/readelf.c:8912 +#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8928 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5198 src/readelf.c:5243 src/readelf.c:5624 src/readelf.c:8921 +#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8937 #, fuzzy, c-format msgid " Address size: %8<PRIu64>\n" msgstr " Розмір адреÑи: %6<PRIu64>\n" -#: src/readelf.c:5200 src/readelf.c:5253 src/readelf.c:5634 src/readelf.c:8931 +#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8947 #, fuzzy, c-format msgid " Segment size: %8<PRIu64>\n" msgstr "" " Розмір Ñегмента: %6<PRIu64>\n" "\n" -#: src/readelf.c:5238 src/readelf.c:5619 src/readelf.c:8916 src/readelf.c:10250 +#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8932 src/readelf.c:10296 #, fuzzy, c-format msgid "Unknown version" msgstr "невідома верÑÑ–Ñ" -#: src/readelf.c:5248 src/readelf.c:5461 src/readelf.c:5629 src/readelf.c:8926 +#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8942 #, c-format msgid "unsupported address size" msgstr "непідтримуваний розмір адреÑи" -#: src/readelf.c:5259 src/readelf.c:5472 src/readelf.c:5639 src/readelf.c:8936 +#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8952 #, c-format msgid "unsupported segment size" msgstr "непідтримуваний розмір Ñегмента" -#: src/readelf.c:5312 src/readelf.c:5386 +#: src/readelf.c:5317 src/readelf.c:5391 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s" -#: src/readelf.c:5327 +#: src/readelf.c:5332 #, c-format msgid "" "\n" @@ -5091,12 +5099,12 @@ msgstr[2] "" "\n" "Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n" -#: src/readelf.c:5358 +#: src/readelf.c:5363 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5360 +#: src/readelf.c:5365 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5104,7 +5112,7 @@ msgstr "" " [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: " "%6<PRId64>\n" -#: src/readelf.c:5404 src/readelf.c:8211 +#: src/readelf.c:5409 src/readelf.c:8226 #, c-format msgid "" "\n" @@ -5113,13 +5121,13 @@ msgstr "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм %zu:\n" -#: src/readelf.c:5408 src/readelf.c:5583 src/readelf.c:6567 src/readelf.c:8222 -#: src/readelf.c:8880 +#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237 +#: src/readelf.c:8896 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" -#: src/readelf.c:5424 +#: src/readelf.c:5429 #, c-format msgid "" "\n" @@ -5128,27 +5136,27 @@ msgstr "" "\n" " Довжина: %6<PRIu64>\n" -#: src/readelf.c:5436 +#: src/readelf.c:5441 #, c-format msgid " DWARF version: %6<PRIuFAST16>\n" msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:5440 +#: src/readelf.c:5445 #, c-format msgid "unsupported aranges version" msgstr "непідтримувана верÑÑ–Ñ aranges" -#: src/readelf.c:5451 +#: src/readelf.c:5456 #, c-format msgid " CU offset: %6<PRIx64>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n" -#: src/readelf.c:5457 +#: src/readelf.c:5462 #, c-format msgid " Address size: %6<PRIu64>\n" msgstr " Розмір адреÑи: %6<PRIu64>\n" -#: src/readelf.c:5468 +#: src/readelf.c:5473 #, c-format msgid "" " Segment size: %6<PRIu64>\n" @@ -5157,111 +5165,111 @@ msgstr "" " Розмір Ñегмента: %6<PRIu64>\n" "\n" -#: src/readelf.c:5523 +#: src/readelf.c:5528 #, c-format msgid " %zu padding bytes\n" msgstr " %zu байтів доповненнÑ\n" -#: src/readelf.c:5566 +#: src/readelf.c:5572 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s" -#: src/readelf.c:5589 src/readelf.c:8886 +#: src/readelf.c:5595 src/readelf.c:8902 #, fuzzy, c-format msgid "" "Table at Offset 0x%<PRIx64>:\n" "\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:5644 src/readelf.c:8941 +#: src/readelf.c:5650 src/readelf.c:8957 #, fuzzy, c-format msgid " Offset entries: %8<PRIu64>\n" msgstr " Довжина зміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:5660 src/readelf.c:8957 +#: src/readelf.c:5666 src/readelf.c:8973 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5662 src/readelf.c:8959 +#: src/readelf.c:5668 src/readelf.c:8975 #, c-format msgid " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5668 src/readelf.c:8965 +#: src/readelf.c:5674 src/readelf.c:8981 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5679 src/readelf.c:8976 +#: src/readelf.c:5685 src/readelf.c:8992 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5683 src/readelf.c:8980 +#: src/readelf.c:5689 src/readelf.c:8996 #, fuzzy, c-format msgid " Offsets starting at 0x%<PRIx64>:\n" msgstr " ЗміщеннÑ: 0x%<PRIx64>\n" -#: src/readelf.c:5735 +#: src/readelf.c:5741 #, fuzzy, c-format msgid "invalid range list data" msgstr "некоректні дані" -#: src/readelf.c:5920 src/readelf.c:9268 +#: src/readelf.c:5926 src/readelf.c:9284 #, fuzzy, c-format msgid "" " %zu padding bytes\n" "\n" msgstr " %zu байтів доповненнÑ\n" -#: src/readelf.c:5937 +#: src/readelf.c:5943 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s" -#: src/readelf.c:5973 src/readelf.c:9323 +#: src/readelf.c:5979 src/readelf.c:9339 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:5975 src/readelf.c:9325 +#: src/readelf.c:5981 src/readelf.c:9341 #, c-format msgid "" "\n" " CU [%6<PRIx64>] base: " msgstr "" -#: src/readelf.c:5984 src/readelf.c:9351 src/readelf.c:9377 +#: src/readelf.c:5990 src/readelf.c:9367 src/readelf.c:9393 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:6005 src/readelf.c:9457 +#: src/readelf.c:6011 src/readelf.c:9473 #, fuzzy, c-format msgid "" " [%6tx] base address\n" " " msgstr " [%6tx] базова адреÑа %s\n" -#: src/readelf.c:6013 src/readelf.c:9465 +#: src/readelf.c:6019 src/readelf.c:9481 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] порожній ÑпиÑок\n" -#: src/readelf.c:6268 +#: src/readelf.c:6274 msgid " <INVALID DATA>\n" msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:6521 +#: src/readelf.c:6527 #, c-format msgid "cannot get ELF: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s" -#: src/readelf.c:6539 +#: src/readelf.c:6545 #, c-format msgid "" "\n" @@ -5270,7 +5278,7 @@ msgstr "" "\n" "Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n" -#: src/readelf.c:6589 +#: src/readelf.c:6595 #, c-format msgid "" "\n" @@ -5279,65 +5287,65 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:6682 src/readelf.c:6836 +#: src/readelf.c:6696 src/readelf.c:6850 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшеннÑ" -#: src/readelf.c:6697 +#: src/readelf.c:6711 msgid "FDE address encoding: " msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: " -#: src/readelf.c:6703 +#: src/readelf.c:6717 msgid "LSDA pointer encoding: " msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: " -#: src/readelf.c:6813 +#: src/readelf.c:6827 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (зміщеннÑ: %#<PRIx64>)" -#: src/readelf.c:6820 +#: src/readelf.c:6834 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)" -#: src/readelf.c:6857 +#: src/readelf.c:6871 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sвказівник LSDA: %#<PRIx64>\n" -#: src/readelf.c:6942 +#: src/readelf.c:6956 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute code: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s" -#: src/readelf.c:6952 +#: src/readelf.c:6966 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute form: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s" -#: src/readelf.c:6974 +#: src/readelf.c:6988 #, fuzzy, c-format msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°: %s" -#: src/readelf.c:7307 +#: src/readelf.c:7321 #, fuzzy, c-format msgid "invalid file (%<PRId64>): %s" msgstr "некоректний файл" -#: src/readelf.c:7311 +#: src/readelf.c:7325 #, fuzzy, c-format msgid "no srcfiles for CU [%<PRIx64>]" msgstr " вÑтановити файл у %<PRIu64>\n" -#: src/readelf.c:7315 +#: src/readelf.c:7329 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s" -#: src/readelf.c:7538 +#: src/readelf.c:7552 #, c-format msgid "" "\n" @@ -5348,12 +5356,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n" " [ЗміщеннÑ]\n" -#: src/readelf.c:7588 +#: src/readelf.c:7602 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s" -#: src/readelf.c:7607 +#: src/readelf.c:7621 #, fuzzy, c-format msgid "" " Type unit at offset %<PRIu64>:\n" @@ -5366,7 +5374,7 @@ msgstr "" "ЗміщеннÑ: %<PRIu8>\n" " ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>\n" -#: src/readelf.c:7619 +#: src/readelf.c:7633 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5377,38 +5385,38 @@ msgstr "" " ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, " "ЗміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:7629 src/readelf.c:7792 +#: src/readelf.c:7643 src/readelf.c:7806 #, c-format msgid " Unit type: %s (%<PRIu8>)" msgstr "" -#: src/readelf.c:7656 +#: src/readelf.c:7670 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7685 +#: src/readelf.c:7699 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s" -#: src/readelf.c:7694 +#: src/readelf.c:7708 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s" msgstr "" "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ мітку DIE за зміщеннÑм %<PRIu64> у розділі «%s»: %s" -#: src/readelf.c:7732 +#: src/readelf.c:7746 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n" -#: src/readelf.c:7740 +#: src/readelf.c:7754 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s" -#: src/readelf.c:7784 +#: src/readelf.c:7798 #, fuzzy, c-format msgid "" " Split compilation unit at offset %<PRIu64>:\n" @@ -5419,7 +5427,7 @@ msgstr "" " ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, " "ЗміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:7835 +#: src/readelf.c:7850 #, c-format msgid "" "\n" @@ -5430,18 +5438,18 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" "\n" -#: src/readelf.c:8167 +#: src/readelf.c:8182 #, fuzzy, c-format msgid "unknown form: %s" msgstr "невідома форма %#<PRIx64>" -#: src/readelf.c:8198 +#: src/readelf.c:8213 #, c-format msgid "cannot get line data section data: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу лінійних даних: %s" #. Print what we got so far. -#: src/readelf.c:8300 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "" "\n" @@ -5472,27 +5480,27 @@ msgstr "" "\n" "Коди операцій:\n" -#: src/readelf.c:8322 +#: src/readelf.c:8337 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s" -#: src/readelf.c:8330 +#: src/readelf.c:8345 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "непідтримуваний розмір адреÑи" -#: src/readelf.c:8338 +#: src/readelf.c:8353 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/readelf.c:8348 +#: src/readelf.c:8363 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»" -#: src/readelf.c:8363 +#: src/readelf.c:8378 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5500,7 +5508,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n" msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n" msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n" -#: src/readelf.c:8374 +#: src/readelf.c:8389 msgid "" "\n" "Directory table:" @@ -5508,12 +5516,12 @@ msgstr "" "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:" -#: src/readelf.c:8380 src/readelf.c:8455 +#: src/readelf.c:8395 src/readelf.c:8470 #, fuzzy, c-format msgid " [" msgstr " PC: " -#: src/readelf.c:8449 +#: src/readelf.c:8464 #, fuzzy msgid "" "\n" @@ -5522,7 +5530,7 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:" -#: src/readelf.c:8510 +#: src/readelf.c:8525 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5530,7 +5538,7 @@ msgstr "" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:\n" " Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва" -#: src/readelf.c:8545 +#: src/readelf.c:8560 msgid "" "\n" "Line number statements:" @@ -5538,120 +5546,120 @@ msgstr "" "\n" "Оператори номерів Ñ€Ñдків:" -#: src/readelf.c:8568 +#: src/readelf.c:8583 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ" -#: src/readelf.c:8602 +#: src/readelf.c:8617 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " Ñпеціальний код операції %u: адреÑа+%u = %s, Ñ€Ñдок%+d = %zu\n" -#: src/readelf.c:8606 +#: src/readelf.c:8621 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" " Ñпеціальний код операції %u: адреÑа+%u = %s, індекÑ_оп = %u, Ñ€Ñдок%+d = " "%zu\n" -#: src/readelf.c:8609 +#: src/readelf.c:8624 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8627 +#: src/readelf.c:8642 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:8632 +#: src/readelf.c:8647 msgid " end of sequence" msgstr " кінець поÑлідовноÑÑ‚Ñ–" -#: src/readelf.c:8650 +#: src/readelf.c:8665 #, fuzzy, c-format msgid " set address to " msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s\n" -#: src/readelf.c:8678 +#: src/readelf.c:8693 #, 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:8691 +#: src/readelf.c:8706 #, c-format msgid " set discriminator to %u\n" msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n" #. Unknown, ignore it. -#: src/readelf.c:8696 +#: src/readelf.c:8711 msgid " unknown opcode" msgstr " невідомий код операції" #. Takes no argument. -#: src/readelf.c:8708 +#: src/readelf.c:8723 msgid " copy" msgstr " копіÑ" -#: src/readelf.c:8717 +#: src/readelf.c:8732 #, fuzzy, c-format msgid " advance address by %u to " msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до %s\n" -#: src/readelf.c:8721 src/readelf.c:8777 +#: src/readelf.c:8736 src/readelf.c:8792 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8731 +#: src/readelf.c:8746 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n" -#: src/readelf.c:8739 +#: src/readelf.c:8754 #, c-format msgid " set file to %<PRIu64>\n" msgstr " вÑтановити файл у %<PRIu64>\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid " set column to %<PRIu64>\n" msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n" -#: src/readelf.c:8756 +#: src/readelf.c:8771 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " вÑтановити «%s» у %<PRIuFAST8>\n" #. Takes no argument. -#: src/readelf.c:8762 +#: src/readelf.c:8777 msgid " set basic block flag" msgstr " вÑтановити прапорець базового блоку" -#: src/readelf.c:8773 +#: src/readelf.c:8788 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr " збільшити адреÑу на Ñталу величину %u до %s\n" -#: src/readelf.c:8792 +#: src/readelf.c:8807 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr " збільшити адреÑу на фікÑовану величину %u до %s\n" #. Takes no argument. -#: src/readelf.c:8802 +#: src/readelf.c:8817 msgid " set prologue end flag" msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу" #. Takes no argument. -#: src/readelf.c:8807 +#: src/readelf.c:8822 msgid " set epilogue begin flag" msgstr " вÑтановити прапорець початку епілогу" -#: src/readelf.c:8816 +#: src/readelf.c:8831 #, c-format msgid " set isa to %u\n" msgstr " вÑтановити isa у %u\n" @@ -5659,7 +5667,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:8825 +#: src/readelf.c:8840 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -5667,97 +5675,97 @@ msgstr[0] " невідомий код операції з %<PRIu8> Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ msgstr[1] " невідомий код операції з %<PRIu8> параметрами:" msgstr[2] " невідомий код операції з %<PRIu8> параметрами:" -#: src/readelf.c:8863 +#: src/readelf.c:8879 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s" -#: src/readelf.c:9032 +#: src/readelf.c:9048 #, fuzzy, c-format msgid "invalid loclists data" msgstr "некоректні дані" -#: src/readelf.c:9285 +#: src/readelf.c:9301 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s" -#: src/readelf.c:9492 src/readelf.c:10506 +#: src/readelf.c:9508 src/readelf.c:10552 msgid " <INVALID DATA>\n" msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n" -#: src/readelf.c:9546 src/readelf.c:9709 +#: src/readelf.c:9563 src/readelf.c:9726 #, c-format msgid "cannot get macro information section data: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу відомоÑтей щодо макроÑів: %s" -#: src/readelf.c:9626 +#: src/readelf.c:9643 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу" -#: src/readelf.c:9649 +#: src/readelf.c:9666 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу" -#: src/readelf.c:9750 +#: src/readelf.c:9767 #, c-format msgid " Offset: 0x%<PRIx64>\n" msgstr " ЗміщеннÑ: 0x%<PRIx64>\n" -#: src/readelf.c:9762 +#: src/readelf.c:9779 #, c-format msgid " Version: %<PRIu16>\n" msgstr " ВерÑÑ–Ñ: %<PRIu16>\n" -#: src/readelf.c:9768 src/readelf.c:10625 +#: src/readelf.c:9785 src/readelf.c:10672 #, c-format msgid " unknown version, cannot parse section\n" msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n" -#: src/readelf.c:9775 -#, c-format -msgid " Flag: 0x%<PRIx8>\n" +#: src/readelf.c:9792 +#, fuzzy, c-format +msgid " Flag: 0x%<PRIx8>" msgstr " Прапорець: 0x%<PRIx8>\n" -#: src/readelf.c:9778 +#: src/readelf.c:9821 #, c-format msgid " Offset length: %<PRIu8>\n" msgstr " Довжина зміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:9786 +#: src/readelf.c:9829 #, c-format msgid " .debug_line offset: 0x%<PRIx64>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n" -#: src/readelf.c:9811 +#: src/readelf.c:9854 #, c-format msgid " extension opcode table, %<PRIu8> items:\n" msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n" -#: src/readelf.c:9818 +#: src/readelf.c:9861 #, c-format msgid " [%<PRIx8>]" msgstr " [%<PRIx8>]" -#: src/readelf.c:9830 +#: src/readelf.c:9873 #, c-format msgid " %<PRIu8> arguments:" msgstr " %<PRIu8> аргументів:" -#: src/readelf.c:9845 +#: src/readelf.c:9888 #, c-format msgid " no arguments." msgstr " немає аргументів." -#: src/readelf.c:10046 +#: src/readelf.c:10089 #, 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:10088 +#: src/readelf.c:10133 #, c-format msgid "" "\n" @@ -5768,41 +5776,41 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n" " %*s Ð Ñдок\n" -#: src/readelf.c:10103 +#: src/readelf.c:10148 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ñдків: %s\n" -#: src/readelf.c:10131 +#: src/readelf.c:10177 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s" -#: src/readelf.c:10230 +#: src/readelf.c:10276 #, fuzzy, c-format msgid " Length: %8<PRIu64>\n" msgstr "" "\n" " Довжина: %6<PRIu64>\n" -#: src/readelf.c:10232 +#: src/readelf.c:10278 #, fuzzy, c-format msgid " Offset size: %8<PRIu8>\n" msgstr " Довжина зміщеннÑ: %<PRIu8>\n" -#: src/readelf.c:10246 +#: src/readelf.c:10292 #, fuzzy, c-format msgid " DWARF version: %8<PRIu16>\n" msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n" -#: src/readelf.c:10255 +#: src/readelf.c:10301 #, fuzzy, c-format msgid " Padding: %8<PRIx16>\n" msgstr "" "\n" " Довжина: %6<PRIu64>\n" -#: src/readelf.c:10309 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5811,7 +5819,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10411 +#: src/readelf.c:10457 #, c-format msgid "" "\n" @@ -5820,22 +5828,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10434 +#: src/readelf.c:10480 #, c-format msgid " LPStart encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x " -#: src/readelf.c:10446 +#: src/readelf.c:10492 #, c-format msgid " TType encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x " -#: src/readelf.c:10461 +#: src/readelf.c:10507 #, c-format msgid " Call site encoding: %#x " msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x " -#: src/readelf.c:10474 +#: src/readelf.c:10520 msgid "" "\n" " Call site table:" @@ -5843,7 +5851,7 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:" -#: src/readelf.c:10488 +#: src/readelf.c:10534 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5856,12 +5864,12 @@ msgstr "" " МіÑце заÑтоÑуваннÑ: %#<PRIx64>\n" " ДіÑ: %u\n" -#: src/readelf.c:10561 +#: src/readelf.c:10607 #, c-format msgid "invalid TType encoding" msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType" -#: src/readelf.c:10587 +#: src/readelf.c:10634 #, c-format msgid "" "\n" @@ -5870,37 +5878,37 @@ msgstr "" "\n" "Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n" -#: src/readelf.c:10616 +#: src/readelf.c:10663 #, c-format msgid " Version: %<PRId32>\n" msgstr " ВерÑÑ–Ñ: %<PRId32>\n" -#: src/readelf.c:10634 +#: src/readelf.c:10681 #, c-format msgid " CU offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n" -#: src/readelf.c:10641 +#: src/readelf.c:10688 #, c-format msgid " TU offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n" -#: src/readelf.c:10648 +#: src/readelf.c:10695 #, c-format msgid " address offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n" -#: src/readelf.c:10655 +#: src/readelf.c:10702 #, c-format msgid " symbol offset: %#<PRIx32>\n" msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n" -#: src/readelf.c:10662 +#: src/readelf.c:10709 #, c-format msgid " constant offset: %#<PRIx32>\n" msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n" -#: src/readelf.c:10676 +#: src/readelf.c:10723 #, c-format msgid "" "\n" @@ -5909,7 +5917,7 @@ msgstr "" "\n" " СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:10701 +#: src/readelf.c:10748 #, c-format msgid "" "\n" @@ -5918,7 +5926,7 @@ msgstr "" "\n" " СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:10730 +#: src/readelf.c:10777 #, c-format msgid "" "\n" @@ -5927,7 +5935,7 @@ msgstr "" "\n" " СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n" -#: src/readelf.c:10762 +#: src/readelf.c:10809 #, c-format msgid "" "\n" @@ -5936,18 +5944,18 @@ msgstr "" "\n" " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n" -#: src/readelf.c:10900 +#: src/readelf.c:10947 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор контекÑту зневаджуваннÑ: %s" -#: src/readelf.c:11263 src/readelf.c:11885 src/readelf.c:11996 -#: src/readelf.c:12054 +#: src/readelf.c:11310 src/readelf.c:11932 src/readelf.c:12043 +#: src/readelf.c:12101 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s" -#: src/readelf.c:11626 +#: src/readelf.c:11673 #, c-format msgid "" "\n" @@ -5956,21 +5964,21 @@ msgstr "" "\n" "%*s... <повторюєтьÑÑ %u разів> ..." -#: src/readelf.c:12133 +#: src/readelf.c:12180 msgid " Owner Data size Type\n" msgstr " ВлаÑник Розм. даних Тип\n" -#: src/readelf.c:12151 +#: src/readelf.c:12209 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:12201 +#: src/readelf.c:12261 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу запиÑів: %s" -#: src/readelf.c:12228 +#: src/readelf.c:12288 #, c-format msgid "" "\n" @@ -5980,7 +5988,7 @@ msgstr "" "Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм " "%#0<PRIx64>:\n" -#: src/readelf.c:12251 +#: src/readelf.c:12311 #, c-format msgid "" "\n" @@ -5989,7 +5997,7 @@ msgstr "" "\n" "Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12297 +#: src/readelf.c:12358 #, c-format msgid "" "\n" @@ -5998,12 +6006,12 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n" -#: src/readelf.c:12324 src/readelf.c:12375 +#: src/readelf.c:12385 src/readelf.c:12436 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s" -#: src/readelf.c:12329 +#: src/readelf.c:12390 #, c-format msgid "" "\n" @@ -6012,7 +6020,7 @@ msgstr "" "\n" "ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12334 +#: src/readelf.c:12395 #, fuzzy, c-format msgid "" "\n" @@ -6022,7 +6030,7 @@ msgstr "" "\n" "ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12348 +#: src/readelf.c:12409 #, c-format msgid "" "\n" @@ -6031,7 +6039,7 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n" -#: src/readelf.c:12380 +#: src/readelf.c:12441 #, c-format msgid "" "\n" @@ -6040,7 +6048,7 @@ msgstr "" "\n" "Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12385 +#: src/readelf.c:12446 #, fuzzy, c-format msgid "" "\n" @@ -6050,7 +6058,7 @@ msgstr "" "\n" "Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n" -#: src/readelf.c:12434 +#: src/readelf.c:12495 #, c-format msgid "" "\n" @@ -6059,7 +6067,7 @@ msgstr "" "\n" "розділу [%lu] не Ñ–Ñнує" -#: src/readelf.c:12463 +#: src/readelf.c:12524 #, c-format msgid "" "\n" @@ -6068,12 +6076,12 @@ msgstr "" "\n" "розділу «%s» не Ñ–Ñнує" -#: src/readelf.c:12520 +#: src/readelf.c:12581 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s" -#: src/readelf.c:12523 +#: src/readelf.c:12584 #, c-format msgid "" "\n" @@ -6082,7 +6090,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика Ñимволів\n" -#: src/readelf.c:12527 +#: src/readelf.c:12588 #, c-format msgid "" "\n" @@ -6091,12 +6099,12 @@ msgstr "" "\n" "Покажчик архіву «%s» міÑтить %zu запиÑів:\n" -#: src/readelf.c:12545 +#: src/readelf.c:12606 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s" -#: src/readelf.c:12550 +#: src/readelf.c:12611 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» міÑтить:\n" @@ -6163,12 +6171,12 @@ msgstr "Ðекоректна оÑнова чиÑленнÑ: %s" msgid "%s: file format not recognized" msgstr "%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла" -#: src/size.c:416 src/size.c:549 +#: src/size.c:418 src/size.c:551 #, c-format msgid " (ex %s)" msgstr " (прикл. %s)" -#: src/size.c:574 +#: src/size.c:576 msgid "(TOTALS)\n" msgstr "(ЗÐГÐЛОМ)\n" @@ -6377,31 +6385,31 @@ msgstr "помилка mprotect" msgid "Skipping section %zd '%s' data outside file" msgstr "ПропуÑкаємо дані %zd «%s» поза файлом" -#: src/strip.c:70 +#: src/strip.c:71 msgid "Place stripped output into FILE" msgstr "ВивеÑти дані піÑÐ»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ ФÐЙЛа" -#: src/strip.c:71 +#: src/strip.c:72 msgid "Extract the removed sections into FILE" msgstr "Видобути вилучені розділи до ФÐЙЛа" -#: src/strip.c:72 +#: src/strip.c:73 msgid "Embed name FILE instead of -f argument" msgstr "Вбудувати назву ФÐЙЛа заміÑÑ‚ÑŒ аргументу -f" -#: src/strip.c:76 +#: src/strip.c:77 msgid "Remove all debugging symbols" msgstr "Вилучити вÑÑ– Ñимволи зневаджуваннÑ" -#: src/strip.c:80 +#: src/strip.c:81 msgid "Remove section headers (not recommended)" msgstr "Вилучити заголовки розділів (не рекомендовано)" -#: src/strip.c:82 +#: src/strip.c:83 msgid "Copy modified/access timestamps to the output" msgstr "Скопіювати чаÑові позначки зміни/доÑтупу до виведених даних" -#: src/strip.c:84 +#: src/strip.c:85 msgid "" "Resolve all trivial relocations between debug sections if the removed " "sections are placed in a debug file (only relevant for ET_REL files, " @@ -6411,64 +6419,84 @@ msgstr "" "вилучені розділи було розташовано у діагноÑтичному файлі (ÑтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ " "файлів ET_REL, ÑкаÑувати дію неможливо, потребує параметра -f)" -#: src/strip.c:86 +#: src/strip.c:87 +msgid "" +"Similar to --reloc-debug-sections, but resolve all trivial relocations " +"between debug sections in place. No other stripping is performed (operation " +"is not reversable, incompatible with -f, -g, --remove-comment and --remove-" +"section)" +msgstr "" + +#: src/strip.c:89 msgid "Remove .comment section" msgstr "Вилучити розділ .comment" -#: src/strip.c:87 +#: src/strip.c:90 msgid "" "Remove the named section. SECTION is an extended wildcard pattern. May be " "given more than once. Only non-allocated sections can be removed." msgstr "" -#: src/strip.c:88 +#: src/strip.c:91 msgid "" "Keep the named section. SECTION is an extended wildcard pattern. May be " "given more than once." msgstr "" #. Short description of program. -#: src/strip.c:95 +#: src/strip.c:98 msgid "Discard symbols from object files." msgstr "Відкинути Ñимволи з об’єктних файлів" -#: src/strip.c:241 +#: src/strip.c:247 #, c-format msgid "--reloc-debug-sections used without -f" msgstr "--reloc-debug-sections викориÑтано без -f" -#: src/strip.c:255 +#: src/strip.c:253 +#, c-format +msgid "" +"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --" +"remove-section" +msgstr "" + +#: src/strip.c:267 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" msgstr "" "Разом з «-o» або «-f» можна викориÑтовувати лише один файл вхідних даних" -#: src/strip.c:278 +#: src/strip.c:290 #, c-format msgid "-f option specified twice" msgstr "параметр -f вказано двічі" -#: src/strip.c:287 +#: src/strip.c:299 #, c-format msgid "-F option specified twice" msgstr "параметр -F вказано двічі" -#: src/strip.c:346 +#: src/strip.c:362 #, fuzzy, c-format msgid "cannot both keep and remove .comment section" msgstr "Вилучити розділ .comment" -#: src/strip.c:371 src/strip.c:395 +#: src/strip.c:574 +#, c-format +msgid "bad relocation" +msgstr "помилкове переÑуваннÑ" + +#: src/strip.c:726 src/strip.c:750 #, c-format msgid "cannot stat input file '%s'" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла «%s» за допомогою stat" -#: src/strip.c:385 +#: src/strip.c:740 #, c-format msgid "while opening '%s'" msgstr "під Ñ‡Ð°Ñ Ñпроби Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»" -#: src/strip.c:423 +#: src/strip.c:778 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "" @@ -6481,132 +6509,132 @@ msgstr "" #. result = handle_ar (fd, elf, NULL, fname, #. preserve_dates ? tv : NULL); #. -#: src/strip.c:435 +#: src/strip.c:790 #, c-format msgid "%s: no support for stripping archive" msgstr "%s: підтримки Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ вміÑту з архіву не передбачено" -#: src/strip.c:534 +#: src/strip.c:1001 #, c-format msgid "cannot open EBL backend" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ канал Ñервера EBL" -#: src/strip.c:579 +#: src/strip.c:1046 #, c-format msgid "cannot get number of phdrs" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ phdr" -#: src/strip.c:595 src/strip.c:619 -#, c-format -msgid "cannot create new file '%s': %s" +#: src/strip.c:1060 src/strip.c:1103 +#, fuzzy, c-format +msgid "cannot create new ehdr for file '%s': %s" +msgstr "не вдалоÑÑ Ñтворити файл «%s»: %s" + +#: src/strip.c:1070 src/strip.c:1113 +#, fuzzy, c-format +msgid "cannot create new phdr for file '%s': %s" msgstr "не вдалоÑÑ Ñтворити файл «%s»: %s" -#: src/strip.c:701 +#: src/strip.c:1194 #, c-format msgid "illformed file '%s'" msgstr "помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° «%s»" -#: src/strip.c:711 +#: src/strip.c:1204 #, fuzzy, c-format msgid "Cannot remove allocated section '%s'" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити PLT-розділ: %s" -#: src/strip.c:720 +#: src/strip.c:1213 #, fuzzy, c-format msgid "Cannot both keep and remove section '%s'" msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ новий розділ: %s" -#: src/strip.c:1076 src/strip.c:1210 +#: src/strip.c:1573 src/strip.c:1688 #, c-format msgid "while generating output file: %s" msgstr "під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° з виведеними даними: %s" -#: src/strip.c:1141 +#: src/strip.c:1637 #, fuzzy, c-format -msgid "%s: error while getting shdrstrndx: %s" +msgid "%s: error while updating ELF header: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s" -#: src/strip.c:1157 +#: src/strip.c:1646 #, fuzzy, c-format -msgid "%s: error getting zero section: %s" -msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" +msgid "%s: error while getting shdrstrndx: %s" +msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s" -#: src/strip.c:1166 +#: src/strip.c:1654 src/strip.c:2534 #, fuzzy, c-format -msgid "%s: error while updating zero section: %s" -msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" - -#: src/strip.c:1176 src/strip.c:2292 -#, c-format -msgid "%s: error while creating ELF header: %s" +msgid "%s: error updating shdrstrndx: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s" -#: src/strip.c:1193 +#: src/strip.c:1671 #, c-format msgid "while preparing output for '%s'" msgstr "під Ñ‡Ð°Ñ Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… даних Ð´Ð»Ñ Â«%s»" -#: src/strip.c:1255 src/strip.c:1318 +#: src/strip.c:1733 src/strip.c:1796 #, c-format msgid "while create section header section: %s" msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ заголовка розділу: %s" -#: src/strip.c:1264 +#: src/strip.c:1742 #, c-format msgid "cannot allocate section data: %s" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити дані розділу: %s" -#: src/strip.c:1330 +#: src/strip.c:1808 #, c-format msgid "while create section header string table: %s" msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголовка розділу: %s" -#: src/strip.c:1337 +#: src/strip.c:1815 #, fuzzy, c-format msgid "no memory to create section header string table" msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголовка розділу: %s" -#: src/strip.c:1547 +#: src/strip.c:2027 #, c-format msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]" msgstr "" -#: src/strip.c:2078 -#, c-format -msgid "bad relocation" -msgstr "помилкове переÑуваннÑ" - -#: src/strip.c:2203 src/strip.c:2316 +#: src/strip.c:2450 src/strip.c:2558 #, c-format msgid "while writing '%s': %s" msgstr "під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу «%s»: %s" -#: src/strip.c:2214 +#: src/strip.c:2461 #, c-format msgid "while creating '%s'" msgstr "під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Â«%s»" -#: src/strip.c:2237 +#: src/strip.c:2484 #, c-format msgid "while computing checksum for debug information" msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми Ð´Ð»Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичних даних" -#: src/strip.c:2301 +#: src/strip.c:2525 +#, c-format +msgid "%s: error while creating ELF header: %s" +msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s" + +#: src/strip.c:2543 #, c-format msgid "%s: error while reading the file: %s" msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" -#: src/strip.c:2341 src/strip.c:2361 +#: src/strip.c:2583 src/strip.c:2603 #, c-format msgid "while writing '%s'" msgstr "під Ñ‡Ð°Ñ Ñпроби запиÑу «%s»" -#: src/strip.c:2398 src/strip.c:2405 +#: src/strip.c:2640 src/strip.c:2647 #, c-format msgid "error while finishing '%s': %s" msgstr "помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Â«%s»: %s" -#: src/strip.c:2422 src/strip.c:2498 +#: src/strip.c:2664 src/strip.c:2740 #, c-format msgid "cannot set access and modification date of '%s'" msgstr "не вдалоÑÑ Ð²Ñтановити права доÑтупу та дату зміни «%s»" @@ -6699,193 +6727,223 @@ msgstr "не вдалоÑÑ Ñтворити заголовок ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/unstrip.c:257 +#: src/unstrip.c:248 src/unstrip.c:2034 +#, c-format +msgid "cannot get ELF header: %s" +msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF: %s" + +#: src/unstrip.c:258 #, fuzzy, c-format msgid "cannot get new zero section: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s" -#: src/unstrip.c:260 +#: src/unstrip.c:261 #, fuzzy, c-format msgid "cannot update new zero section: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ переÑуваннÑ: %s" -#: src/unstrip.c:264 +#: src/unstrip.c:265 #, c-format msgid "cannot copy ELF header: %s" msgstr "не вдалоÑÑ Ñкопіювати заголовок ELF: %s" -#: src/unstrip.c:268 src/unstrip.c:1962 src/unstrip.c:2005 +#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095 #, c-format msgid "cannot get number of program headers: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s" -#: src/unstrip.c:273 src/unstrip.c:1966 +#: src/unstrip.c:274 src/unstrip.c:2056 #, c-format msgid "cannot create program headers: %s" msgstr "не вдалоÑÑ Ñтворити заголовки програми: %s" -#: src/unstrip.c:279 +#: src/unstrip.c:280 #, c-format msgid "cannot copy program header: %s" msgstr "не вдалоÑÑ Ñкопіювати заголовок програми: %s" -#: src/unstrip.c:289 +#: src/unstrip.c:290 #, c-format msgid "cannot copy section header: %s" msgstr "не вдалоÑÑ Ñкопіювати заголовок розділу: %s" -#: src/unstrip.c:292 src/unstrip.c:1597 +#: src/unstrip.c:293 src/unstrip.c:1665 #, c-format msgid "cannot get section data: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s" -#: src/unstrip.c:294 src/unstrip.c:1599 +#: src/unstrip.c:295 src/unstrip.c:1667 #, c-format msgid "cannot copy section data: %s" msgstr "не вдалоÑÑ Ñкопіювати дані розділу: %s" -#: src/unstrip.c:318 +#: src/unstrip.c:319 #, c-format msgid "cannot create directory '%s'" msgstr "не вдалоÑÑ Ñтворити каталог «%s»" -#: src/unstrip.c:390 src/unstrip.c:820 src/unstrip.c:1631 +#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702 #, c-format msgid "cannot get symbol table entry: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів: %s" -#: src/unstrip.c:406 src/unstrip.c:631 src/unstrip.c:652 src/unstrip.c:664 -#: src/unstrip.c:1652 src/unstrip.c:1828 src/unstrip.c:1852 +#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682 +#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942 #, c-format msgid "cannot update symbol table: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ таблицю Ñимволів: %s" -#: src/unstrip.c:416 +#: src/unstrip.c:417 #, c-format msgid "cannot update section header: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок розділу: %s" -#: src/unstrip.c:455 src/unstrip.c:466 +#: src/unstrip.c:459 src/unstrip.c:473 #, c-format msgid "cannot update relocation: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ переÑуваннÑ: %s" -#: src/unstrip.c:554 +#: src/unstrip.c:570 #, c-format msgid "cannot get symbol version: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s" -#: src/unstrip.c:567 +#: src/unstrip.c:583 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "неочікуваний тип розділу у [%zu] з поÑиланнÑм sh_link на symtab" -#: src/unstrip.c:826 +#: src/unstrip.c:851 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ñдка у Ñимволі [%zu]" -#: src/unstrip.c:984 src/unstrip.c:1334 +#: src/unstrip.c:1009 src/unstrip.c:1398 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ назву розділу [%zu]: %s" -#: src/unstrip.c:1025 src/unstrip.c:1044 src/unstrip.c:1082 +#: src/unstrip.c:1024 +#, fuzzy, c-format +msgid "bad sh_link for group section: %s" +msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu" + +#: src/unstrip.c:1030 +#, fuzzy, c-format +msgid "couldn't get shdr for group section: %s" +msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок 0-го розділу: %s" + +#: src/unstrip.c:1035 +#, fuzzy, c-format +msgid "bad data for group symbol section: %s" +msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів\n" + +#: src/unstrip.c:1041 +#, fuzzy, c-format +msgid "couldn't get symbol for group section: %s" +msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s" + +#: src/unstrip.c:1046 +#, fuzzy, c-format +msgid "bad symbol name for group section: %s" +msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s" + +#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ «.gnu.prelink_undo»: %s" -#: src/unstrip.c:1062 +#: src/unstrip.c:1125 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 +#: src/unstrip.c:1136 #, c-format msgid "invalid contents in '%s' section" msgstr "некоректний вміÑÑ‚ розділу «%s»" -#: src/unstrip.c:1128 src/unstrip.c:1456 +#: src/unstrip.c:1192 src/unstrip.c:1524 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідний розділ Ð´Ð»Ñ [%zu] «%s»" -#: src/unstrip.c:1253 src/unstrip.c:1268 src/unstrip.c:1535 src/unstrip.c:1787 +#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877 #, c-format msgid "cannot add section name to string table: %s" msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ назву розділу до таблиці Ñ€Ñдків: %s" -#: src/unstrip.c:1277 +#: src/unstrip.c:1341 #, c-format msgid "cannot update section header string table data: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ дані заголовка розділу у таблиці Ñ€Ñдків: %s" -#: src/unstrip.c:1305 src/unstrip.c:1309 +#: src/unstrip.c:1369 src/unstrip.c:1373 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ заголовка розділу у таблиці Ñ€Ñдків: %s" -#: src/unstrip.c:1313 src/unstrip.c:1317 src/unstrip.c:1550 +#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618 #, c-format msgid "cannot get section count: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s" -#: src/unstrip.c:1320 +#: src/unstrip.c:1384 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "у очищеному файлі більше розділів ніж у файлі з даними Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ â€” " "помилковий порÑдок параметрів?" -#: src/unstrip.c:1379 src/unstrip.c:1471 +#: src/unstrip.c:1446 src/unstrip.c:1539 #, c-format msgid "cannot read section header string table: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ таблицю Ñ€Ñдків заголовка розділу: %s" -#: src/unstrip.c:1529 +#: src/unstrip.c:1597 #, c-format msgid "cannot add new section: %s" msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ новий розділ: %s" -#: src/unstrip.c:1639 +#: src/unstrip.c:1710 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "Ñимвол [%zu] має некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ" -#: src/unstrip.c:1923 +#: src/unstrip.c:1742 +#, fuzzy, c-format +msgid "group has invalid section index [%zd]" +msgstr "Ñимвол [%zu] має некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ" + +#: src/unstrip.c:2013 #, c-format msgid "cannot read section data: %s" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані розділу: %s" -#: src/unstrip.c:1944 -#, c-format -msgid "cannot get ELF header: %s" -msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF: %s" - -#: src/unstrip.c:1952 +#: src/unstrip.c:2042 #, c-format msgid "cannot update ELF header: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок ELF: %s" -#: src/unstrip.c:1976 +#: src/unstrip.c:2066 #, c-format msgid "cannot update program header: %s" msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок програми: %s" -#: src/unstrip.c:1981 src/unstrip.c:2063 +#: src/unstrip.c:2071 src/unstrip.c:2153 #, c-format msgid "cannot write output file: %s" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл виведених даних: %s" -#: src/unstrip.c:2032 +#: src/unstrip.c:2122 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Дані DWARF не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ компонуваннÑм; " "Ñпробуйте виправити це командою prelink -u" -#: src/unstrip.c:2035 +#: src/unstrip.c:2125 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6893,76 +6951,76 @@ msgstr "" "Дані DWARF у «%s» не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ " "компонуваннÑм; Ñпробуйте виправити це командою prelink -u" -#: src/unstrip.c:2054 src/unstrip.c:2105 src/unstrip.c:2117 src/unstrip.c:2203 +#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "не вдалоÑÑ Ñтворити деÑкриптор ELF: %s" -#: src/unstrip.c:2096 +#: src/unstrip.c:2186 msgid "WARNING: " msgstr "УВÐГÐ: " -#: src/unstrip.c:2098 +#: src/unstrip.c:2188 msgid ", use --force" msgstr ", ÑкориÑтайтеÑÑ --force" -#: src/unstrip.c:2121 +#: src/unstrip.c:2211 msgid "ELF header identification (e_ident) different" msgstr "Різні ідентифікатори заголовків ELF (e_ident)" -#: src/unstrip.c:2124 +#: src/unstrip.c:2214 msgid "ELF header type (e_type) different" msgstr "Різні типи заголовків ELF (e_type)" -#: src/unstrip.c:2127 +#: src/unstrip.c:2217 msgid "ELF header machine type (e_machine) different" msgstr "Різні типи архітектур заголовків ELF (e_machine)" -#: src/unstrip.c:2130 +#: src/unstrip.c:2220 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "очищений заголовок програми (e_phnum) Ñ” меншим за неочищений" -#: src/unstrip.c:2160 +#: src/unstrip.c:2250 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очищений файл Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s" -#: src/unstrip.c:2164 +#: src/unstrip.c:2254 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ очищений файл «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s" -#: src/unstrip.c:2179 +#: src/unstrip.c:2269 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл діагноÑтичних даних Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s" -#: src/unstrip.c:2183 +#: src/unstrip.c:2273 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл діагноÑтичних даних «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s" -#: src/unstrip.c:2196 +#: src/unstrip.c:2286 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "у модулі «%s» файл «%s» не очищено strip" -#: src/unstrip.c:2227 +#: src/unstrip.c:2317 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "не вдалоÑÑ ÐºÐµÑˆÑƒÐ²Ð°Ñ‚Ð¸ адреÑи розділів Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s" -#: src/unstrip.c:2360 +#: src/unstrip.c:2450 #, c-format msgid "no matching modules found" msgstr "відповідних модулів не виÑвлено" -#: src/unstrip.c:2369 +#: src/unstrip.c:2459 #, c-format msgid "matched more than one module" msgstr "вÑтановлено відповідніÑÑ‚ÑŒ декількох модулів" -#: src/unstrip.c:2413 +#: src/unstrip.c:2503 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -6970,7 +7028,7 @@ msgstr "" "ОЧИЩЕÐИЙ-ФÐЙЛ ФÐЙЛ-DEBUG\n" "[МОДУЛЬ...]" -#: src/unstrip.c:2414 +#: src/unstrip.c:2504 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" @@ -7042,6 +7100,14 @@ msgstr "Додатково вивеÑти назви функцій" msgid "Show instances of inlined functions" msgstr "ВивеÑти екземплÑри вбудованих функцій" +#, fuzzy +#~ msgid "%s: error getting zero section: %s" +#~ msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" + +#, fuzzy +#~ msgid "%s: error while updating zero section: %s" +#~ msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s" + #~ msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" #~ msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" @@ -7546,9 +7612,6 @@ msgstr "ВивеÑти екземплÑри вбудованих функцій" #~ msgstr "" #~ "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: небезбітовий розділ Ñлідом за безбітовим розділом" -#~ msgid "cannot get header of 0th section: %s" -#~ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок 0-го розділу: %s" - #~ msgid "linker backend didn't specify function to relocate section" #~ msgstr "у Ñервері ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ визначено функції Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ переÑуваннÑ" diff --git a/src/ChangeLog b/src/ChangeLog index b0db6fbd..b6fd9d22 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -27,6 +27,155 @@ * ar.c: Open files in O_BINARY. +2018-11-10 Mark Wielaard <mark@klomp.org> + + * elflint.c (check_program_header): Allow PT_GNU_EH_FRAME segment + to be matched against SHT_X86_64_UNWIND section. + +2018-11-09 Mark Wielaard <mark@klomp.org> + + * strip.c (remove_debug_relocations): Check if section is gnu + compressed and decompress and recompress it. + +2018-11-12 Mark Wielaard <mark@klomp.org> + + * elflint.c (check_note_data): Recognize NT_GNU_BUILD_ATTRIBUTE_OPEN + and NT_GNU_BUILD_ATTRIBUTE_OPEN. + * readelf.c (handle_notes_data): Handle + ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX. Pass nhdr.n_namesz to + ebl_object_note. + +2018-11-11 Mark Wielaard <mark@klomp.org> + + * readelf.c (handle_notes_data): Pass n_descsz to + ebl_object_note_type_name. + * elflint.c (check_note_data): Recognize NT_VERSION, add owner + name to unknown note error. + +2018-10-20 Mark Wielaard <mark@klomp.org> + + * readelf.c (process_elf_file): Use dwelf_elf_begin to open pure_elf. + +2018-10-26 Mark Wielaard <mark@klomp.org> + + * strip.c (OPT_RELOC_DEBUG_ONLY): New define. + (options): Add reloc-debug-sections-only. + (reloc_debug_only): New static bool. + (main): Check reloc_debug_only is the only strip option used. + (parse_opt): Handle OPT_RELOC_DEBUG_ONLY. + (handle_debug_relocs): New function. + (handle_elf): Add local variables lastsec_offset and lastsec_size. + Handle reloc_debug_only. + +2018-10-24 Mark Wielaard <mark@klomp.org> + + * strip.c (handle_elf): Extract code to update shdrstrndx into... + (update_shdrstrndx): ... this new function. + +2018-10-24 Mark Wielaard <mark@klomp.org> + + * strip.c (handle_elf): Extract code into separate functions... + (secndx_name): ... new function. + (get_xndxdata): Likewise. + (remove_debug_relocations): Likewise. + +2018-10-24 Mark Wielaard <mark@klomp.org> + + * strip.c (handle_elf): Always copy over phdrs if there are any + and check phnum instead of e_type to determine whether to move + allocated sections. + +2018-11-02 Mark Wielaard <mark@klomp.org> + + * unstrip.c (copy_elf): Add ELF_CHECK to make sure gelf_getehdr () + doesn't return NULL. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * elflint.c (check_note_data): Recognize NT_GNU_PROPERTY_TYPE_0. + (check_note): Use p_align to pass either ELF_T_NHDR or ELF_T_NHDR8 to + elf_getdata_rawchunk. + * readelf (handle_notes): Likewise. + +2018-10-24 Mark Wielaard <mark@klomp.org> + + * addr2line.c (print_addrsym): Use elf_getshdrstrndx instead of + Ehdr field. + +2018-10-24 Mark Wielaard <mark@klomp.org> + + * readelf.c (section_name): Remove ehdr argument, lookup shstrndx. + (print_debug_abbrev_section): Don't pass ehdr. + (print_debug_addr_section): Likewise. + (print_decoded_aranges_section): Likewise. + (print_debug_aranges_section): Likewise. + (print_debug_rnglists_section): Likewise. + (print_debug_ranges_section): Likewise. + (print_debug_units): Likewise. + (print_decoded_line_section): Likewise. + (print_debug_line_section): Likewise. + (print_debug_loclists_section): Likewise. + (print_debug_loc_section): Likewise. + (print_debug_macinfo_section): Likewise. + (print_debug_macro_section): Likewise. + (print_debug_pubnames_section): Likewise. + (print_debug_str_section): Liekwise. + (print_debug_str_offsets_section): Likewise. + (print_gdb_index_section): Likewise. + +2018-10-16 Mark Wielaard <mark@klomp.org> + + * readelf.c (print_debug_frame_section): Make sure readp is never + greater than cieend. + +2018-10-19 Mark Wielaard <mark@klomp.org> + + * dwfl_module_getdwarf.c (adjust_relocs): Check sh_entsize is not + zero. + (add_new_section_symbols): Likewise. + (copy_elided_sections): Likewise. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * size.c (handle_ar): Only close elf if prefix was NULL. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * arlib.c (arlib_add_symbols): Check that sh_entsize is not zero. + +2018-10-14 Mark Wielaard <mark@klomp.org> + + * ar.c (do_oper_extract): Assume epoch if ar_date is bogus. + +2018-10-14 Mark Wielaard <mark@klomp.org> + + * findtextrel.c (process_file): Check that sh_entsize is not zero. + +2018-10-13 Mark Wielaard <mark@klomp.org> + + * readelf.c (print_debug_macro_section): Use elf_getdata. Print + decoded flag string. + +2018-10-19 Mark Wielaard <mark@klomp.org> + + * unstrip.c (copy_elided_sections): Renumber group section indexes. + +2018-10-12 Mark Wielaard <mark@klomp.org> + + * strip.c (handle_elf): Don't remove SHF_GROUP flag from sections. + Skip group section flag when renumbering section indexes. + * unstrip.c (struct section): Add sig field. + (compare_unalloc_sections): Take and use sig1 and sig2 as arguments. + (compare_sections): Pass signatures to compare_unalloc_sections. + (get_group_sig): New function. + (find_alloc_sections_prelink): Set signature. + (copy_elided_sections): Likewise and pass them on. + (find_unalloc_section): Take and pass signatures. + +2018-10-02 Andreas Schwab <schwab@suse.de> + + * strip.c (handle_elf): Handle ADD/SUB relocation. + 2018-09-13 Mark Wielaard <mark@klomp.org> * readelf.c (print_shdr): Get number of section with elf_getshdrnum. diff --git a/src/addr2line.c b/src/addr2line.c index 32660f7a..8bd974cb 100644 --- a/src/addr2line.c +++ b/src/addr2line.c @@ -446,9 +446,9 @@ print_addrsym (Dwfl_Module *mod, GElf_Addr addr) if (shdr != NULL) { Elf *elf = dwfl_module_getelf (mod, &ebias); - GElf_Ehdr ehdr; - if (gelf_getehdr (elf, &ehdr) != NULL) - printf (" (%s)", elf_strptr (elf, ehdr.e_shstrndx, + size_t shstrndx; + if (elf_getshdrstrndx (elf, &shstrndx) >= 0) + printf (" (%s)", elf_strptr (elf, shstrndx, shdr->sh_name)); } } @@ -519,8 +519,14 @@ do_oper_extract (int oper, const char *arfname, char **argv, int argc, else if (oper == oper_list) { char datestr[100]; - strftime (datestr, sizeof (datestr), "%b %d %H:%M %Y", - localtime (&arhdr->ar_date)); + struct tm *tp = localtime (&arhdr->ar_date); + if (tp == NULL) + { + time_t time = 0; + tp = localtime (&time); + } + + strftime (datestr, sizeof (datestr), "%b %d %H:%M %Y", tp); printf ("%c%c%c%c%c%c%c%c%c %u/%u %6ju %s %s\n", (arhdr->ar_mode & S_IRUSR) ? 'r' : '-', diff --git a/src/arlib.c b/src/arlib.c index 778e0878..a6521e30 100644 --- a/src/arlib.c +++ b/src/arlib.c @@ -252,6 +252,9 @@ arlib_add_symbols (Elf *elf, const char *arfname, const char *membername, if (data == NULL) continue; + if (shdr->sh_entsize == 0) + continue; + int nsyms = shdr->sh_size / shdr->sh_entsize; for (int ndx = shdr->sh_info; ndx < nsyms; ++ndx) { diff --git a/src/elflint.c b/src/elflint.c index e6efda56..e0ef95ce 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -1,5 +1,5 @@ /* Pedantic checking of ELF files compliance with gABI/psABI spec. - Copyright (C) 2001-2015, 2017 Red Hat, Inc. + Copyright (C) 2001-2015, 2017, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -4331,7 +4331,31 @@ section [%2d] '%s': unknown core file note type %" PRIu32 case NT_GNU_HWCAP: case NT_GNU_BUILD_ID: case NT_GNU_GOLD_VERSION: - break; + case NT_GNU_PROPERTY_TYPE_0: + if (nhdr.n_namesz == sizeof ELF_NOTE_GNU + && strcmp (data->d_buf + name_offset, ELF_NOTE_GNU) == 0) + break; + else + { + /* NT_VERSION is 1, same as NT_GNU_ABI_TAG. It has no + descriptor and (ab)uses the name as version string. */ + if (nhdr.n_descsz == 0 && nhdr.n_type == NT_VERSION) + break; + } + goto unknown_note; + + case NT_GNU_BUILD_ATTRIBUTE_OPEN: + case NT_GNU_BUILD_ATTRIBUTE_FUNC: + /* GNU Build Attributes store most data in the owner + name, which must start with the + ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX "GA". */ + if (nhdr.n_namesz >= sizeof ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX + && strncmp (data->d_buf + name_offset, + ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX, + strlen (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX)) == 0) + break; + else + goto unknown_note; case 0: /* Linux vDSOs use a type 0 note for the kernel version word. */ @@ -4340,16 +4364,21 @@ section [%2d] '%s': unknown core file note type %" PRIu32 break; FALLTHROUGH; default: + { + unknown_note: if (shndx == 0) ERROR (gettext ("\ -phdr[%d]: unknown object file note type %" PRIu32 " at offset %zu\n"), - phndx, (uint32_t) nhdr.n_type, offset); +phdr[%d]: unknown object file note type %" PRIu32 " with owner name '%s' at offset %zu\n"), + phndx, (uint32_t) nhdr.n_type, + (char *) data->d_buf + name_offset, offset); else ERROR (gettext ("\ section [%2d] '%s': unknown object file note type %" PRIu32 - " at offset %zu\n"), + " with owner name '%s' at offset %zu\n"), shndx, section_name (ebl, shndx), - (uint32_t) nhdr.n_type, offset); + (uint32_t) nhdr.n_type, + (char *) data->d_buf + name_offset, offset); + } } } @@ -4376,7 +4405,8 @@ phdr[%d]: no note entries defined for the type of file\n"), GElf_Off notes_size = 0; Elf_Data *data = elf_getdata_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz, - ELF_T_NHDR); + (phdr->p_align == 8 + ? ELF_T_NHDR8 : ELF_T_NHDR)); if (data != NULL && data->d_buf != NULL) notes_size = check_note_data (ebl, ehdr, data, 0, cnt, phdr->p_offset); @@ -4603,8 +4633,10 @@ program header offset in ELF header and PHDR entry do not match")); any = true; shdr = gelf_getshdr (scn, &shdr_mem); if (shdr != NULL - && shdr->sh_type == (is_debuginfo - ? SHT_NOBITS : SHT_PROGBITS) + && ((is_debuginfo && shdr->sh_type == SHT_NOBITS) + || (! is_debuginfo + && (shdr->sh_type == SHT_PROGBITS + || shdr->sh_type == SHT_X86_64_UNWIND))) && elf_strptr (ebl->elf, shstrndx, shdr->sh_name) != NULL && ! strcmp (".eh_frame_hdr", elf_strptr (ebl->elf, shstrndx, shdr->sh_name))) diff --git a/src/findtextrel.c b/src/findtextrel.c index 76456195..5c26715e 100644 --- a/src/findtextrel.c +++ b/src/findtextrel.c @@ -1,5 +1,5 @@ /* Locate source files or functions which caused text relocations. - Copyright (C) 2005-2010, 2012, 2014 Red Hat, Inc. + Copyright (C) 2005-2010, 2012, 2014, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2005. @@ -263,9 +263,10 @@ process_file (const char *fname, bool more_than_one) seen_dynamic = true; Elf_Data *data = elf_getdata (scn, NULL); + size_t entries = (shdr->sh_entsize == 0 + ? 0 : shdr->sh_size / shdr->sh_entsize); - for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; - ++cnt) + for (size_t cnt = 0; cnt < entries; ++cnt) { GElf_Dyn dynmem; GElf_Dyn *dyn; @@ -413,10 +414,11 @@ cannot get symbol table section %zu in '%s': %s"), if (shdr->sh_type == SHT_REL) { Elf_Data *data = elf_getdata (scn, NULL); + size_t entries = (shdr->sh_entsize == 0 + ? 0 : shdr->sh_size / shdr->sh_entsize); for (int cnt = 0; - (size_t) cnt < shdr->sh_size / shdr->sh_entsize; - ++cnt) + (size_t) cnt < entries; ++cnt) { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); @@ -436,10 +438,10 @@ cannot get relocation at index %d in section %zu in '%s': %s"), else if (shdr->sh_type == SHT_RELA) { Elf_Data *data = elf_getdata (scn, NULL); + size_t entries = (shdr->sh_entsize == 0 + ? 0 : shdr->sh_size / shdr->sh_entsize); - for (int cnt = 0; - (size_t) cnt < shdr->sh_size / shdr->sh_entsize; - ++cnt) + for (int cnt = 0; (size_t) cnt < entries; ++cnt) { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); @@ -531,9 +533,10 @@ check_rel (size_t nsegments, struct segments segments[nsegments], int highidx = -1; GElf_Sym sym_mem; GElf_Sym *sym; + size_t entries = (shdr->sh_entsize == 0 + ? 0 : shdr->sh_size / shdr->sh_entsize); - for (int i = 0; (size_t) i < shdr->sh_size / shdr->sh_entsize; - ++i) + for (int i = 0; (size_t) i < entries; ++i) { sym = gelf_getsym (symdata, i, &sym_mem); if (sym == NULL) diff --git a/src/readelf.c b/src/readelf.c index 90a14061..c8c9851b 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -910,7 +910,6 @@ process_elf_file (Dwfl_Module *dwflmod, int fd) if (ehdr == NULL) { - elf_error: error (0, 0, gettext ("cannot read ELF header: %s"), elf_errmsg (-1)); return; } @@ -953,7 +952,7 @@ process_elf_file (Dwfl_Module *dwflmod, int fd) { /* Read the file afresh. */ off_t aroff = elf_getaroff (elf); - pure_elf = elf_begin (fd, ELF_C_READ_MMAP, NULL); + pure_elf = dwelf_elf_begin (fd); if (aroff > 0) { /* Archive member. */ @@ -963,7 +962,10 @@ process_elf_file (Dwfl_Module *dwflmod, int fd) pure_elf = armem; } if (pure_elf == NULL) - goto elf_error; + { + error (0, 0, gettext ("cannot read ELF: %s"), elf_errmsg (-1)); + return; + } pure_ebl = ebl_openbackend (pure_elf); if (pure_ebl == NULL) goto ebl_error; @@ -1535,9 +1537,12 @@ print_phdr (Ebl *ebl, GElf_Ehdr *ehdr) static const char * -section_name (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr) +section_name (Ebl *ebl, GElf_Shdr *shdr) { - return elf_strptr (ebl->elf, ehdr->e_shstrndx, shdr->sh_name) ?: "???"; + size_t shstrndx; + if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0) + return "???"; + return elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "???"; } @@ -5008,7 +5013,7 @@ listptr_cu (struct listptr_table *table, size_t *idxp, static void print_debug_abbrev_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { const size_t sh_size = (dbg->sectiondata[IDX_debug_abbrev] ? @@ -5016,7 +5021,7 @@ print_debug_abbrev_section (Dwfl_Module *dwflmod __attribute__ ((unused)), printf (gettext ("\nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n" " [ Code]\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); Dwarf_Off offset = 0; @@ -5086,7 +5091,7 @@ print_debug_addr_section (Dwfl_Module *dwflmod __attribute__ ((unused)), { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); if (shdr->sh_size == 0) @@ -5334,7 +5339,7 @@ print_decoded_aranges_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, "\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entries:\n", cnt), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset, cnt); /* Compute floor(log16(cnt)). */ @@ -5395,7 +5400,7 @@ print_debug_aranges_section (Dwfl_Module *dwflmod __attribute__ ((unused)), printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); const unsigned char *readp = data->d_buf; @@ -5411,7 +5416,7 @@ print_debug_aranges_section (Dwfl_Module *dwflmod __attribute__ ((unused)), { invalid_data: error (0, 0, gettext ("invalid data in section [%zu] '%s'"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr)); + elf_ndxscn (scn), section_name (ebl, shdr)); return; } @@ -5555,13 +5560,14 @@ split_dwarf_cu_base (Dwarf *dbg, Dwarf_CU **cu, Dwarf_Addr *cu_base) /* Print content of DWARF .debug_rnglists section. */ static void print_debug_rnglists_section (Dwfl_Module *dwflmod, - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg __attribute__((unused))) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); Elf_Data *data =(dbg->sectiondata[IDX_debug_rnglists] @@ -5586,7 +5592,7 @@ print_debug_rnglists_section (Dwfl_Module *dwflmod, { invalid_data: error (0, 0, gettext ("invalid data in section [%zu] '%s'"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr)); + elf_ndxscn (scn), section_name (ebl, shdr)); return; } @@ -5946,7 +5952,7 @@ print_debug_ranges_section (Dwfl_Module *dwflmod, printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); sort_listptr (&known_rangelistptr, "rangelistptr"); @@ -6603,18 +6609,24 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, ptrdiff_t start = readp - (unsigned char *) data->d_buf; const unsigned char *const cieend = readp + unit_length; - if (unlikely (cieend > dataend || readp + 8 > dataend)) + if (unlikely (cieend > dataend)) goto invalid_data; Dwarf_Off cie_id; if (length == 4) { + if (unlikely (cieend - readp < 4)) + goto invalid_data; cie_id = read_4ubyte_unaligned_inc (dbg, readp); if (!is_eh_frame && cie_id == DW_CIE_ID_32) cie_id = DW_CIE_ID_64; } else - cie_id = read_8ubyte_unaligned_inc (dbg, readp); + { + if (unlikely (cieend - readp < 8)) + goto invalid_data; + cie_id = read_8ubyte_unaligned_inc (dbg, readp); + } uint_fast8_t version = 2; unsigned int code_alignment_factor; @@ -6626,6 +6638,8 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, if (cie_id == (is_eh_frame ? 0 : DW_CIE_ID_64)) { + if (unlikely (cieend - readp < 2)) + goto invalid_data; version = *readp++; const char *const augmentation = (const char *) readp; readp = memchr (readp, '\0', cieend - readp); @@ -7532,12 +7546,12 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) static void print_debug_units (Dwfl_Module *dwflmod, - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg, bool debug_types) { const bool silent = !(print_debug_sections & section_info) && !debug_types; - const char *secname = section_name (ebl, ehdr, shdr); + const char *secname = section_name (ebl, shdr); if (!silent) printf (gettext ("\ @@ -7834,12 +7848,13 @@ print_debug_types_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, static void -print_decoded_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, +print_decoded_line_section (Dwfl_Module *dwflmod, Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); size_t address_size @@ -8188,7 +8203,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); if (shdr->sh_size == 0) @@ -8225,7 +8240,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, { invalid_data: error (0, 0, gettext ("invalid data in section [%zu] '%s'"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr)); + elf_ndxscn (scn), section_name (ebl, shdr)); return; } unit_length = read_8ubyte_unaligned_inc (dbg, linep); @@ -8352,7 +8367,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, error (0, 0, gettext ("invalid data at offset %tu in section [%zu] '%s'"), linep - (const unsigned char *) data->d_buf, - elf_ndxscn (scn), section_name (ebl, ehdr, shdr)); + elf_ndxscn (scn), section_name (ebl, shdr)); linep = lineendp; continue; } @@ -8852,13 +8867,14 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, static void print_debug_loclists_section (Dwfl_Module *dwflmod, - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); Elf_Data *data = (dbg->sectiondata[IDX_debug_loclists] @@ -8883,7 +8899,7 @@ print_debug_loclists_section (Dwfl_Module *dwflmod, { invalid_data: error (0, 0, gettext ("invalid data in section [%zu] '%s'"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr)); + elf_ndxscn (scn), section_name (ebl, shdr)); return; } @@ -9294,7 +9310,7 @@ print_debug_loc_section (Dwfl_Module *dwflmod, printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); sort_listptr (&known_locsptr, "loclistptr"); @@ -9533,12 +9549,13 @@ mac_compare (const void *p1, const void *p2) static void print_debug_macinfo_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); putc_unlocked ('\n', stdout); @@ -9698,17 +9715,17 @@ print_debug_macinfo_section (Dwfl_Module *dwflmod __attribute__ ((unused)), static void print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); putc_unlocked ('\n', stdout); - Elf_Data *data = (dbg->sectiondata[IDX_debug_macro] - ?: elf_rawdata (scn, NULL)); + Elf_Data *data = elf_getdata (scn, NULL); if (unlikely (data == NULL)) { error (0, 0, gettext ("cannot get macro information section data: %s"), @@ -9777,7 +9794,33 @@ print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)), if (readp + 1 > readendp) goto invalid_data; const unsigned char flag = *readp++; - printf (gettext (" Flag: 0x%" PRIx8 "\n"), flag); + printf (gettext (" Flag: 0x%" PRIx8), flag); + if (flag != 0) + { + printf (" ("); + if ((flag & 0x01) != 0) + { + printf ("offset_size"); + if ((flag & 0xFE) != 0) + printf (", "); + } + if ((flag & 0x02) != 0) + { + printf ("debug_line_offset"); + if ((flag & 0xFC) != 0) + printf (", "); + } + if ((flag & 0x04) != 0) + { + printf ("operands_table"); + if ((flag & 0xF8) != 0) + printf (", "); + } + if ((flag & 0xF8) != 0) + printf ("unknown"); + printf (")"); + } + printf ("\n"); unsigned int offset_len = (flag & 0x01) ? 8 : 4; printf (gettext (" Offset length: %" PRIu8 "\n"), offset_len); @@ -10059,11 +10102,12 @@ print_pubnames (Dwarf *dbg __attribute__ ((unused)), Dwarf_Global *global, /* Print the known exported symbols in the DWARF section '.debug_pubnames'. */ static void print_debug_pubnames_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); int n = 0; @@ -10073,7 +10117,8 @@ print_debug_pubnames_section (Dwfl_Module *dwflmod __attribute__ ((unused)), /* Print the content of the DWARF string section '.debug_str'. */ static void print_debug_str_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg __attribute__ ((unused))) { @@ -10093,7 +10138,7 @@ print_debug_str_section (Dwfl_Module *dwflmod __attribute__ ((unused)), printf (gettext ("\nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n" " %*s String\n"), elf_ndxscn (scn), - section_name (ebl, ehdr, shdr), (uint64_t) shdr->sh_offset, + section_name (ebl, shdr), (uint64_t) shdr->sh_offset, /* TRANS: the debugstr| prefix makes the string unique. */ digits + 2, sgettext ("debugstr|Offset")); @@ -10117,12 +10162,13 @@ print_debug_str_section (Dwfl_Module *dwflmod __attribute__ ((unused)), static void print_debug_str_offsets_section (Dwfl_Module *dwflmod __attribute__ ((unused)), - Ebl *ebl, GElf_Ehdr *ehdr, + Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset); if (shdr->sh_size == 0) @@ -10586,12 +10632,13 @@ print_debug_exception_table (Dwfl_Module *dwflmod __attribute__ ((unused)), http://sourceware.org/gdb/current/onlinedocs/gdb/Index-Section-Format.html */ static void -print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, +print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, + GElf_Ehdr *ehdr __attribute__ ((unused)), Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) { printf (gettext ("\nGDB section [%2zu] '%s' at offset %#" PRIx64 " contains %" PRId64 " bytes :\n"), - elf_ndxscn (scn), section_name (ebl, ehdr, shdr), + elf_ndxscn (scn), section_name (ebl, shdr), (uint64_t) shdr->sh_offset, (uint64_t) shdr->sh_size); Elf_Data *data = elf_rawdata (scn, NULL); @@ -12150,14 +12197,26 @@ handle_notes_data (Ebl *ebl, const GElf_Ehdr *ehdr, const char *name = nhdr.n_namesz == 0 ? "" : data->d_buf + name_offset; const char *desc = data->d_buf + desc_offset; + /* GNU Build Attributes are weird, they store most of their data + into the owner name field. Extract just the owner name + prefix here, then use the rest later as data. */ + bool is_gnu_build_attr + = strncmp (name, ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX, + strlen (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX)) == 0; + const char *print_name = (is_gnu_build_attr + ? ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX : name); + size_t print_namesz = (is_gnu_build_attr + ? strlen (print_name) : nhdr.n_namesz); + char buf[100]; char buf2[100]; printf (gettext (" %-13.*s %9" PRId32 " %s\n"), - (int) nhdr.n_namesz, name, nhdr.n_descsz, + (int) print_namesz, print_name, nhdr.n_descsz, ehdr->e_type == ET_CORE ? ebl_core_note_type_name (ebl, nhdr.n_type, buf, sizeof (buf)) : ebl_object_note_type_name (ebl, name, nhdr.n_type, + nhdr.n_descsz, buf2, sizeof (buf2))); /* Filter out invalid entries. */ @@ -12193,7 +12252,8 @@ handle_notes_data (Ebl *ebl, const GElf_Ehdr *ehdr, handle_core_note (ebl, &nhdr, name, desc); } else - ebl_object_note (ebl, name, nhdr.n_type, nhdr.n_descsz, desc); + ebl_object_note (ebl, nhdr.n_namesz, name, nhdr.n_type, + nhdr.n_descsz, desc); } } @@ -12259,7 +12319,8 @@ handle_notes (Ebl *ebl, GElf_Ehdr *ehdr) handle_notes_data (ebl, ehdr, phdr->p_offset, elf_getdata_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz, - ELF_T_NHDR)); + (phdr->p_align == 8 + ? ELF_T_NHDR8 : ELF_T_NHDR))); } } @@ -374,8 +374,10 @@ handle_ar (int fd, Elf *elf, const char *prefix, const char *fname) INTERNAL_ERROR (fname); } - if (unlikely (elf_end (elf) != 0)) - INTERNAL_ERROR (fname); + /* Only close ELF handle if this was a "top level" ar file. */ + if (prefix == NULL) + if (unlikely (elf_end (elf) != 0)) + INTERNAL_ERROR (fname); return result; } diff --git a/src/strip.c b/src/strip.c index a85a2306..15a43ff7 100644 --- a/src/strip.c +++ b/src/strip.c @@ -1,5 +1,5 @@ /* Discard section not used at runtime from object files. - Copyright (C) 2000-2012, 2014, 2015, 2016, 2017 Red Hat, Inc. + Copyright (C) 2000-2012, 2014, 2015, 2016, 2017, 2018 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2000. @@ -61,6 +61,7 @@ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT; #define OPT_STRIP_SECTIONS 0x102 #define OPT_RELOC_DEBUG 0x103 #define OPT_KEEP_SECTION 0x104 +#define OPT_RELOC_DEBUG_ONLY 0x105 /* Definitions of arguments for argp functions. */ @@ -82,6 +83,8 @@ static const struct argp_option options[] = N_("Copy modified/access timestamps to the output"), 0 }, { "reloc-debug-sections", OPT_RELOC_DEBUG, NULL, 0, N_("Resolve all trivial relocations between debug sections if the removed sections are placed in a debug file (only relevant for ET_REL files, operation is not reversable, needs -f)"), 0 }, + { "reloc-debug-sections-only", OPT_RELOC_DEBUG_ONLY, NULL, 0, + N_("Similar to --reloc-debug-sections, but resolve all trivial relocations between debug sections in place. No other stripping is performed (operation is not reversable, incompatible with -f, -g, --remove-comment and --remove-section)"), 0 }, { "remove-comment", OPT_REMOVE_COMMENT, NULL, 0, N_("Remove .comment section"), 0 }, { "remove-section", 'R', "SECTION", 0, N_("Remove the named section. SECTION is an extended wildcard pattern. May be given more than once. Only non-allocated sections can be removed."), 0 }, @@ -159,6 +162,9 @@ static bool permissive; /* If true perform relocations between debug sections. */ static bool reloc_debug; +/* If true perform relocations between debug sections only. */ +static bool reloc_debug_only; + /* Sections the user explicitly wants to keep or remove. */ struct section_pattern { @@ -240,6 +246,12 @@ main (int argc, char *argv[]) error (EXIT_FAILURE, 0, gettext ("--reloc-debug-sections used without -f")); + if (reloc_debug_only && + (debug_fname != NULL || remove_secs != NULL + || remove_comment == true || remove_debug == true)) + error (EXIT_FAILURE, 0, + gettext ("--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --remove-section")); + /* Tell the library which version we are expecting. */ elf_version (EV_CURRENT); @@ -307,6 +319,10 @@ parse_opt (int key, char *arg, struct argp_state *state) reloc_debug = true; break; + case OPT_RELOC_DEBUG_ONLY: + reloc_debug_only = true; + break; + case OPT_REMOVE_COMMENT: remove_comment = true; break; @@ -354,6 +370,345 @@ parse_opt (int key, char *arg, struct argp_state *state) return 0; } +static const char * +secndx_name (Elf *elf, size_t ndx) +{ + size_t shstrndx; + GElf_Shdr mem; + Elf_Scn *sec = elf_getscn (elf, ndx); + GElf_Shdr *shdr = gelf_getshdr (sec, &mem); + if (shdr == NULL || elf_getshdrstrndx (elf, &shstrndx) < 0) + return "???"; + return elf_strptr (elf, shstrndx, shdr->sh_name) ?: "???"; +} + +/* Get the extended section index table data for a symbol table section. */ +static Elf_Data * +get_xndxdata (Elf *elf, Elf_Scn *symscn) +{ + Elf_Data *xndxdata = NULL; + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (symscn, &shdr_mem); + if (shdr != NULL && shdr->sh_type == SHT_SYMTAB) + { + size_t scnndx = elf_ndxscn (symscn); + Elf_Scn *xndxscn = NULL; + while ((xndxscn = elf_nextscn (elf, xndxscn)) != NULL) + { + GElf_Shdr xndxshdr_mem; + GElf_Shdr *xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem); + + if (xndxshdr != NULL + && xndxshdr->sh_type == SHT_SYMTAB_SHNDX + && xndxshdr->sh_link == scnndx) + { + xndxdata = elf_getdata (xndxscn, NULL); + break; + } + } + } + + return xndxdata; +} + +/* Updates the shdrstrndx for the given Elf by updating the Ehdr and + possibly the section zero extension field. Returns zero on success. */ +static int +update_shdrstrndx (Elf *elf, size_t shdrstrndx) +{ + GElf_Ehdr ehdr; + if (gelf_getehdr (elf, &ehdr) == 0) + return 1; + + if (shdrstrndx < SHN_LORESERVE) + ehdr.e_shstrndx = shdrstrndx; + else + { + ehdr.e_shstrndx = SHN_XINDEX; + Elf_Scn *scn0 = elf_getscn (elf, 0); + GElf_Shdr shdr0_mem; + GElf_Shdr *shdr0 = gelf_getshdr (scn0, &shdr0_mem); + if (shdr0 == NULL) + return 1; + + shdr0->sh_link = shdrstrndx; + if (gelf_update_shdr (scn0, shdr0) == 0) + return 1; + } + + if (unlikely (gelf_update_ehdr (elf, &ehdr) == 0)) + return 1; + + return 0; +} + +/* Remove any relocations between debug sections in ET_REL + for the debug file when requested. These relocations are always + zero based between the unallocated sections. */ +static void +remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr, + const char *fname, size_t shstrndx) +{ + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + /* We need the actual section and header from the elf + not just the cached original in shdr_info because we + might want to change the size. */ + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA) + { + /* Make sure that this relocation section points to a + section to relocate with contents, that isn't + allocated and that is a debug section. */ + Elf_Scn *tscn = elf_getscn (elf, shdr->sh_info); + GElf_Shdr tshdr_mem; + GElf_Shdr *tshdr = gelf_getshdr (tscn, &tshdr_mem); + if (tshdr->sh_type == SHT_NOBITS + || tshdr->sh_size == 0 + || (tshdr->sh_flags & SHF_ALLOC) != 0) + continue; + + const char *tname = elf_strptr (elf, shstrndx, + tshdr->sh_name); + if (! tname || ! ebl_debugscn_p (ebl, tname)) + continue; + + /* OK, lets relocate all trivial cross debug section + relocations. */ + Elf_Data *reldata = elf_getdata (scn, NULL); + if (reldata == NULL || reldata->d_buf == NULL) + INTERNAL_ERROR (fname); + + /* Make sure we adjust the uncompressed debug data + (and recompress if necessary at the end). */ + GElf_Chdr tchdr; + int tcompress_type = 0; + bool is_gnu_compressed = false; + if (strncmp (tname, ".zdebug", strlen ("zdebug")) == 0) + { + is_gnu_compressed = true; + if (elf_compress_gnu (tscn, 0, 0) != 1) + INTERNAL_ERROR (fname); + } + else + { + if (gelf_getchdr (tscn, &tchdr) != NULL) + { + tcompress_type = tchdr.ch_type; + if (elf_compress (tscn, 0, 0) != 1) + INTERNAL_ERROR (fname); + } + } + + Elf_Data *tdata = elf_getdata (tscn, NULL); + if (tdata == NULL || tdata->d_buf == NULL + || tdata->d_type != ELF_T_BYTE) + INTERNAL_ERROR (fname); + + /* Pick up the symbol table and shndx table to + resolve relocation symbol indexes. */ + Elf64_Word symt = shdr->sh_link; + Elf_Data *symdata, *xndxdata; + Elf_Scn * symscn = elf_getscn (elf, symt); + symdata = elf_getdata (symscn, NULL); + xndxdata = get_xndxdata (elf, symscn); + if (symdata == NULL) + INTERNAL_ERROR (fname); + + /* Apply one relocation. Returns true when trivial + relocation actually done. */ + bool relocate (GElf_Addr offset, const GElf_Sxword addend, + bool is_rela, int rtype, int symndx) + { + /* R_*_NONE relocs can always just be removed. */ + if (rtype == 0) + return true; + + /* We only do simple absolute relocations. */ + int addsub = 0; + Elf_Type type = ebl_reloc_simple_type (ebl, rtype, &addsub); + if (type == ELF_T_NUM) + return false; + + /* These are the types we can relocate. */ +#define TYPES DO_TYPE (BYTE, Byte); DO_TYPE (HALF, Half); \ + DO_TYPE (WORD, Word); DO_TYPE (SWORD, Sword); \ + DO_TYPE (XWORD, Xword); DO_TYPE (SXWORD, Sxword) + + /* And only for relocations against other debug sections. */ + GElf_Sym sym_mem; + Elf32_Word xndx; + GElf_Sym *sym = gelf_getsymshndx (symdata, xndxdata, + symndx, &sym_mem, + &xndx); + Elf32_Word sec = (sym->st_shndx == SHN_XINDEX + ? xndx : sym->st_shndx); + + if (ebl_debugscn_p (ebl, secndx_name (elf, sec))) + { + size_t size; + +#define DO_TYPE(NAME, Name) GElf_##Name Name; + union { TYPES; } tmpbuf; +#undef DO_TYPE + + switch (type) + { +#define DO_TYPE(NAME, Name) \ + case ELF_T_##NAME: \ + size = sizeof (GElf_##Name); \ + tmpbuf.Name = 0; \ + break; + TYPES; +#undef DO_TYPE + default: + return false; + } + + if (offset > tdata->d_size + || tdata->d_size - offset < size) + { + cleanup_debug (); + error (EXIT_FAILURE, 0, gettext ("bad relocation")); + } + + /* When the symbol value is zero then for SHT_REL + sections this is all that needs to be checked. + The addend is contained in the original data at + the offset already. So if the (section) symbol + address is zero and the given addend is zero + just remove the relocation, it isn't needed + anymore. */ + if (addend == 0 && sym->st_value == 0) + return true; + + Elf_Data tmpdata = + { + .d_type = type, + .d_buf = &tmpbuf, + .d_size = size, + .d_version = EV_CURRENT, + }; + Elf_Data rdata = + { + .d_type = type, + .d_buf = tdata->d_buf + offset, + .d_size = size, + .d_version = EV_CURRENT, + }; + + GElf_Addr value = sym->st_value; + if (is_rela) + { + /* For SHT_RELA sections we just take the + given addend and add it to the value. */ + value += addend; + /* For ADD/SUB relocations we need to fetch the + current section contents. */ + if (addsub != 0) + { + Elf_Data *d = gelf_xlatetom (elf, &tmpdata, + &rdata, + ehdr->e_ident[EI_DATA]); + if (d == NULL) + INTERNAL_ERROR (fname); + assert (d == &tmpdata); + } + } + else + { + /* For SHT_REL sections we have to peek at + what is already in the section at the given + offset to get the addend. */ + Elf_Data *d = gelf_xlatetom (elf, &tmpdata, + &rdata, + ehdr->e_ident[EI_DATA]); + if (d == NULL) + INTERNAL_ERROR (fname); + assert (d == &tmpdata); + } + + switch (type) + { +#define DO_TYPE(NAME, Name) \ + case ELF_T_##NAME: \ + if (addsub < 0) \ + tmpbuf.Name -= (GElf_##Name) value; \ + else \ + tmpbuf.Name += (GElf_##Name) value; \ + break; + TYPES; +#undef DO_TYPE + default: + abort (); + } + + /* Now finally put in the new value. */ + Elf_Data *s = gelf_xlatetof (elf, &rdata, + &tmpdata, + ehdr->e_ident[EI_DATA]); + if (s == NULL) + INTERNAL_ERROR (fname); + assert (s == &rdata); + + return true; + } + return false; + } + + if (shdr->sh_entsize == 0) + INTERNAL_ERROR (fname); + + size_t nrels = shdr->sh_size / shdr->sh_entsize; + size_t next = 0; + if (shdr->sh_type == SHT_REL) + for (size_t relidx = 0; relidx < nrels; ++relidx) + { + GElf_Rel rel_mem; + GElf_Rel *r = gelf_getrel (reldata, relidx, &rel_mem); + if (! relocate (r->r_offset, 0, false, + GELF_R_TYPE (r->r_info), + GELF_R_SYM (r->r_info))) + { + if (relidx != next) + gelf_update_rel (reldata, next, r); + ++next; + } + } + else + for (size_t relidx = 0; relidx < nrels; ++relidx) + { + GElf_Rela rela_mem; + GElf_Rela *r = gelf_getrela (reldata, relidx, &rela_mem); + if (! relocate (r->r_offset, r->r_addend, true, + GELF_R_TYPE (r->r_info), + GELF_R_SYM (r->r_info))) + { + if (relidx != next) + gelf_update_rela (reldata, next, r); + ++next; + } + } + + nrels = next; + shdr->sh_size = reldata->d_size = nrels * shdr->sh_entsize; + gelf_update_shdr (scn, shdr); + + if (is_gnu_compressed) + { + if (elf_compress_gnu (tscn, 1, ELF_CHF_FORCE) != 1) + INTERNAL_ERROR (fname); + } + else if (tcompress_type != 0) + { + if (elf_compress (tscn, tcompress_type, ELF_CHF_FORCE) != 1) + INTERNAL_ERROR (fname); + } + } + } +} static int process_file (const char *fname) @@ -444,6 +799,116 @@ process_file (const char *fname) return result; } +/* Processing for --reloc-debug-sections-only. */ +static int +handle_debug_relocs (Elf *elf, Ebl *ebl, Elf *new_elf, + GElf_Ehdr *ehdr, const char *fname, size_t shstrndx, + GElf_Off *last_offset, GElf_Xword *last_size) +{ + + /* Copy over the ELF header. */ + if (gelf_update_ehdr (new_elf, ehdr) == 0) + { + error (0, 0, "couldn't update new ehdr: %s", elf_errmsg (-1)); + return 1; + } + + /* Copy over sections and record end of allocated sections. */ + GElf_Off lastoffset = 0; + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + /* Get the header. */ + GElf_Shdr shdr; + if (gelf_getshdr (scn, &shdr) == NULL) + { + error (0, 0, "couldn't get shdr: %s", elf_errmsg (-1)); + return 1; + } + + /* Create new section. */ + Elf_Scn *new_scn = elf_newscn (new_elf); + if (new_scn == NULL) + { + error (0, 0, "couldn't create new section: %s", elf_errmsg (-1)); + return 1; + } + + if (gelf_update_shdr (new_scn, &shdr) == 0) + { + error (0, 0, "couldn't update shdr: %s", elf_errmsg (-1)); + return 1; + } + + /* Copy over section data. */ + Elf_Data *data = NULL; + while ((data = elf_getdata (scn, data)) != NULL) + { + Elf_Data *new_data = elf_newdata (new_scn); + if (new_data == NULL) + { + error (0, 0, "couldn't create new section data: %s", + elf_errmsg (-1)); + return 1; + } + *new_data = *data; + } + + /* Record last offset of allocated section. */ + if ((shdr.sh_flags & SHF_ALLOC) != 0) + { + GElf_Off filesz = (shdr.sh_type != SHT_NOBITS + ? shdr.sh_size : 0); + if (lastoffset < shdr.sh_offset + filesz) + lastoffset = shdr.sh_offset + filesz; + } + } + + /* Make sure section header name table is setup correctly, we'll + need it to determine whether to relocate sections. */ + if (update_shdrstrndx (new_elf, shstrndx) != 0) + { + error (0, 0, "error updating shdrstrndx: %s", elf_errmsg (-1)); + return 1; + } + + /* Adjust the relocation sections. */ + remove_debug_relocations (ebl, new_elf, ehdr, fname, shstrndx); + + /* Adjust the offsets of the non-allocated sections, so they come after + the allocated sections. */ + scn = NULL; + while ((scn = elf_nextscn (new_elf, scn)) != NULL) + { + /* Get the header. */ + GElf_Shdr shdr; + if (gelf_getshdr (scn, &shdr) == NULL) + { + error (0, 0, "couldn't get shdr: %s", elf_errmsg (-1)); + return 1; + } + + /* Adjust non-allocated section offsets to be after any allocated. */ + if ((shdr.sh_flags & SHF_ALLOC) == 0) + { + shdr.sh_offset = ((lastoffset + shdr.sh_addralign - 1) + & ~((GElf_Off) (shdr.sh_addralign - 1))); + if (gelf_update_shdr (scn, &shdr) == 0) + { + error (0, 0, "couldn't update shdr: %s", elf_errmsg (-1)); + return 1; + } + + GElf_Off filesz = (shdr.sh_type != SHT_NOBITS + ? shdr.sh_size : 0); + lastoffset = shdr.sh_offset + filesz; + *last_offset = shdr.sh_offset; + *last_size = filesz; + } + } + + return 0; +} /* Maximum size of array allocated on stack. */ #define MAX_STACK_ALLOC (400 * 1024) @@ -460,6 +925,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, tmp_debug_fname = NULL; int result = 0; size_t shdridx = 0; + GElf_Off lastsec_offset = 0; + Elf64_Xword lastsec_size = 0; size_t shstrndx; struct shdr_info { @@ -518,7 +985,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, the --reloc-debug-sections option are currently the only reasons we need EBL so don't open the backend unless necessary. */ Ebl *ebl = NULL; - if (remove_debug || reloc_debug) + if (remove_debug || reloc_debug || reloc_debug_only) { ebl = ebl_openbackend (elf); if (ebl == NULL) @@ -580,49 +1047,75 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, else newelf = elf_clone (elf, ELF_C_EMPTY); - if (unlikely (gelf_newehdr (newelf, gelf_getclass (elf)) == 0) - || (ehdr->e_type != ET_REL - && unlikely (gelf_newphdr (newelf, phnum) == 0))) + if (unlikely (gelf_newehdr (newelf, gelf_getclass (elf)) == 0)) { - error (0, 0, gettext ("cannot create new file '%s': %s"), + error (0, 0, gettext ("cannot create new ehdr for file '%s': %s"), output_fname ?: fname, elf_errmsg (-1)); goto fail; } /* Copy over the old program header if needed. */ - if (ehdr->e_type != ET_REL) - for (cnt = 0; cnt < phnum; ++cnt) - { - GElf_Phdr phdr_mem; - GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem); - if (phdr == NULL - || unlikely (gelf_update_phdr (newelf, cnt, phdr) == 0)) - INTERNAL_ERROR (fname); - } + if (phnum > 0) + { + if (unlikely (gelf_newphdr (newelf, phnum) == 0)) + { + error (0, 0, gettext ("cannot create new phdr for file '%s': %s"), + output_fname ?: fname, elf_errmsg (-1)); + goto fail; + } + + for (cnt = 0; cnt < phnum; ++cnt) + { + GElf_Phdr phdr_mem; + GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem); + if (phdr == NULL + || unlikely (gelf_update_phdr (newelf, cnt, phdr) == 0)) + INTERNAL_ERROR (fname); + } + } + + if (reloc_debug_only) + { + if (handle_debug_relocs (elf, ebl, newelf, ehdr, fname, shstrndx, + &lastsec_offset, &lastsec_size) != 0) + { + result = 1; + goto fail_close; + } + idx = shstrndx; + goto done; /* Skip all actual stripping operations. */ + } if (debug_fname != NULL) { /* Also create an ELF descriptor for the debug file */ debugelf = elf_begin (debug_fd, ELF_C_WRITE_MMAP, NULL); - if (unlikely (gelf_newehdr (debugelf, gelf_getclass (elf)) == 0) - || (ehdr->e_type != ET_REL - && unlikely (gelf_newphdr (debugelf, phnum) == 0))) + if (unlikely (gelf_newehdr (debugelf, gelf_getclass (elf)) == 0)) { - error (0, 0, gettext ("cannot create new file '%s': %s"), + error (0, 0, gettext ("cannot create new ehdr for file '%s': %s"), debug_fname, elf_errmsg (-1)); goto fail_close; } /* Copy over the old program header if needed. */ - if (ehdr->e_type != ET_REL) - for (cnt = 0; cnt < phnum; ++cnt) - { - GElf_Phdr phdr_mem; - GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem); - if (phdr == NULL - || unlikely (gelf_update_phdr (debugelf, cnt, phdr) == 0)) - INTERNAL_ERROR (fname); - } + if (phnum > 0) + { + if (unlikely (gelf_newphdr (debugelf, phnum) == 0)) + { + error (0, 0, gettext ("cannot create new phdr for file '%s': %s"), + debug_fname, elf_errmsg (-1)); + goto fail_close; + } + + for (cnt = 0; cnt < phnum; ++cnt) + { + GElf_Phdr phdr_mem; + GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem); + if (phdr == NULL + || unlikely (gelf_update_phdr (debugelf, cnt, phdr) == 0)) + INTERNAL_ERROR (fname); + } + } } /* Number of sections. */ @@ -730,7 +1223,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, to keep the layout of all allocated sections as similar as possible to the original file. In relocatable object files everything can be moved. */ - if (ehdr->e_type == ET_REL + if (phnum == 0 || (shdr_info[cnt].shdr.sh_flags & SHF_ALLOC) == 0) shdr_info[cnt].shdr.sh_offset = 0; @@ -784,9 +1277,13 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, if (shdr_info[shdr_info[cnt].group_idx].idx == 0) { - /* The section group section will be removed. */ + /* The section group section might be removed. + Don't remove the SHF_GROUP flag. The section is + either also removed, in which case the flag doesn't matter. + Or it moves with the group into the debug file, then + it will be reconnected with the new group and should + still have the flag set. */ shdr_info[cnt].group_idx = 0; - shdr_info[cnt].shdr.sh_flags &= ~SHF_GROUP; } } @@ -1127,6 +1624,14 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, debugehdr->e_entry = ehdr->e_entry; debugehdr->e_flags = ehdr->e_flags; + if (unlikely (gelf_update_ehdr (debugelf, debugehdr) == 0)) + { + error (0, 0, gettext ("%s: error while updating ELF header: %s"), + debug_fname, elf_errmsg (-1)); + result = 1; + goto fail_close; + } + size_t shdrstrndx; if (elf_getshdrstrndx (elf, &shdrstrndx) < 0) { @@ -1136,36 +1641,9 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, goto fail_close; } - if (shstrndx < SHN_LORESERVE) - debugehdr->e_shstrndx = shdrstrndx; - else + if (update_shdrstrndx (debugelf, shdrstrndx) != 0) { - debugehdr->e_shstrndx = SHN_XINDEX; - Elf_Scn *scn0 = elf_getscn (debugelf, 0); - GElf_Shdr shdr0_mem; - GElf_Shdr *shdr0 = gelf_getshdr (scn0, &shdr0_mem); - if (shdr0 == NULL) - { - error (0, 0, gettext ("%s: error getting zero section: %s"), - debug_fname, elf_errmsg (-1)); - result = 1; - goto fail_close; - } - - shdr0->sh_link = shdrstrndx; - if (gelf_update_shdr (scn0, shdr0) == 0) - { - error (0, 0, gettext ("%s: error while updating zero section: %s"), - debug_fname, elf_errmsg (-1)); - result = 1; - goto fail_close; - } - - } - - if (unlikely (gelf_update_ehdr (debugelf, debugehdr) == 0)) - { - error (0, 0, gettext ("%s: error while creating ELF header: %s"), + error (0, 0, gettext ("%s: error updating shdrstrndx: %s"), debug_fname, elf_errmsg (-1)); result = 1; goto fail_close; @@ -1360,7 +1838,9 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, && shdr_info[cnt].data->d_buf != NULL); Elf32_Word *grpref = (Elf32_Word *) shdr_info[cnt].data->d_buf; - for (size_t inner = 0; + /* First word is the section group flag. + Followed by section indexes, that need to be renumbered. */ + for (size_t inner = 1; inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); ++inner) if (grpref[inner] < shnum) @@ -1950,240 +2430,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, zero based between the unallocated sections. */ if (debug_fname != NULL && removing_sections && reloc_debug && ehdr->e_type == ET_REL) - { - scn = NULL; - cnt = 0; - while ((scn = elf_nextscn (debugelf, scn)) != NULL) - { - cnt++; - /* We need the actual section and header from the debugelf - not just the cached original in shdr_info because we - might want to change the size. */ - GElf_Shdr shdr_mem; - GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); - if (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA) - { - /* Make sure that this relocation section points to a - section to relocate with contents, that isn't - allocated and that is a debug section. */ - Elf_Scn *tscn = elf_getscn (debugelf, shdr->sh_info); - GElf_Shdr tshdr_mem; - GElf_Shdr *tshdr = gelf_getshdr (tscn, &tshdr_mem); - if (tshdr->sh_type == SHT_NOBITS - || tshdr->sh_size == 0 - || (tshdr->sh_flags & SHF_ALLOC) != 0) - continue; - - const char *tname = elf_strptr (debugelf, shstrndx, - tshdr->sh_name); - if (! tname || ! ebl_debugscn_p (ebl, tname)) - continue; - - /* OK, lets relocate all trivial cross debug section - relocations. */ - Elf_Data *reldata = elf_getdata (scn, NULL); - if (reldata == NULL || reldata->d_buf == NULL) - INTERNAL_ERROR (fname); - - /* Make sure we adjust the uncompressed debug data - (and recompress if necessary at the end). */ - GElf_Chdr tchdr; - int tcompress_type = 0; - if (gelf_getchdr (tscn, &tchdr) != NULL) - { - tcompress_type = tchdr.ch_type; - if (elf_compress (tscn, 0, 0) != 1) - INTERNAL_ERROR (fname); - } - - Elf_Data *tdata = elf_getdata (tscn, NULL); - if (tdata == NULL || tdata->d_buf == NULL - || tdata->d_type != ELF_T_BYTE) - INTERNAL_ERROR (fname); - - /* Pick up the symbol table and shndx table to - resolve relocation symbol indexes. */ - Elf64_Word symt = shdr->sh_link; - Elf_Data *symdata, *xndxdata; - elf_assert (symt < shnum + 2); - elf_assert (shdr_info[symt].symtab_idx < shnum + 2); - symdata = (shdr_info[symt].debug_data - ?: shdr_info[symt].data); - xndxdata = (shdr_info[shdr_info[symt].symtab_idx].debug_data - ?: shdr_info[shdr_info[symt].symtab_idx].data); - - /* Apply one relocation. Returns true when trivial - relocation actually done. */ - bool relocate (GElf_Addr offset, const GElf_Sxword addend, - bool is_rela, int rtype, int symndx) - { - /* R_*_NONE relocs can always just be removed. */ - if (rtype == 0) - return true; - - /* We only do simple absolute relocations. */ - Elf_Type type = ebl_reloc_simple_type (ebl, rtype); - if (type == ELF_T_NUM) - return false; - - /* These are the types we can relocate. */ -#define TYPES DO_TYPE (BYTE, Byte); DO_TYPE (HALF, Half); \ - DO_TYPE (WORD, Word); DO_TYPE (SWORD, Sword); \ - DO_TYPE (XWORD, Xword); DO_TYPE (SXWORD, Sxword) - - /* And only for relocations against other debug sections. */ - GElf_Sym sym_mem; - Elf32_Word xndx; - GElf_Sym *sym = gelf_getsymshndx (symdata, xndxdata, - symndx, &sym_mem, - &xndx); - Elf32_Word sec = (sym->st_shndx == SHN_XINDEX - ? xndx : sym->st_shndx); - if (sec >= shnum + 2) - INTERNAL_ERROR (fname); - - if (ebl_debugscn_p (ebl, shdr_info[sec].name)) - { - size_t size; - -#define DO_TYPE(NAME, Name) GElf_##Name Name; - union { TYPES; } tmpbuf; -#undef DO_TYPE - - switch (type) - { -#define DO_TYPE(NAME, Name) \ - case ELF_T_##NAME: \ - size = sizeof (GElf_##Name); \ - tmpbuf.Name = 0; \ - break; - TYPES; -#undef DO_TYPE - default: - return false; - } - - if (offset > tdata->d_size - || tdata->d_size - offset < size) - { - cleanup_debug (); - error (EXIT_FAILURE, 0, gettext ("bad relocation")); - } - - /* When the symbol value is zero then for SHT_REL - sections this is all that needs to be checked. - The addend is contained in the original data at - the offset already. So if the (section) symbol - address is zero and the given addend is zero - just remove the relocation, it isn't needed - anymore. */ - if (addend == 0 && sym->st_value == 0) - return true; - - Elf_Data tmpdata = - { - .d_type = type, - .d_buf = &tmpbuf, - .d_size = size, - .d_version = EV_CURRENT, - }; - Elf_Data rdata = - { - .d_type = type, - .d_buf = tdata->d_buf + offset, - .d_size = size, - .d_version = EV_CURRENT, - }; - - GElf_Addr value = sym->st_value; - if (is_rela) - { - /* For SHT_RELA sections we just take the - given addend and add it to the value. */ - value += addend; - } - else - { - /* For SHT_REL sections we have to peek at - what is already in the section at the given - offset to get the addend. */ - Elf_Data *d = gelf_xlatetom (debugelf, &tmpdata, - &rdata, - ehdr->e_ident[EI_DATA]); - if (d == NULL) - INTERNAL_ERROR (fname); - assert (d == &tmpdata); - } - - switch (type) - { -#define DO_TYPE(NAME, Name) \ - case ELF_T_##NAME: \ - tmpbuf.Name += (GElf_##Name) value; \ - break; - TYPES; -#undef DO_TYPE - default: - abort (); - } - - /* Now finally put in the new value. */ - Elf_Data *s = gelf_xlatetof (debugelf, &rdata, - &tmpdata, - ehdr->e_ident[EI_DATA]); - if (s == NULL) - INTERNAL_ERROR (fname); - assert (s == &rdata); - - return true; - } - return false; - } - - if (shdr->sh_entsize == 0) - INTERNAL_ERROR (fname); - - size_t nrels = shdr->sh_size / shdr->sh_entsize; - size_t next = 0; - if (shdr->sh_type == SHT_REL) - for (size_t relidx = 0; relidx < nrels; ++relidx) - { - GElf_Rel rel_mem; - GElf_Rel *r = gelf_getrel (reldata, relidx, &rel_mem); - if (! relocate (r->r_offset, 0, false, - GELF_R_TYPE (r->r_info), - GELF_R_SYM (r->r_info))) - { - if (relidx != next) - gelf_update_rel (reldata, next, r); - ++next; - } - } - else - for (size_t relidx = 0; relidx < nrels; ++relidx) - { - GElf_Rela rela_mem; - GElf_Rela *r = gelf_getrela (reldata, relidx, &rela_mem); - if (! relocate (r->r_offset, r->r_addend, true, - GELF_R_TYPE (r->r_info), - GELF_R_SYM (r->r_info))) - { - if (relidx != next) - gelf_update_rela (reldata, next, r); - ++next; - } - } - - nrels = next; - shdr->sh_size = reldata->d_size = nrels * shdr->sh_entsize; - gelf_update_shdr (scn, shdr); - - if (tcompress_type != 0) - if (elf_compress (tscn, tcompress_type, ELF_CHF_FORCE) != 1) - INTERNAL_ERROR (fname); - } - } - } + remove_debug_relocations (ebl, debugelf, ehdr, fname, shstrndx); /* Now that we have done all adjustments to the data, we can actually write out the debug file. */ @@ -2247,6 +2494,10 @@ while computing checksum for debug information")); } } + lastsec_offset = shdr_info[shdridx].shdr.sh_offset; + lastsec_size = shdr_info[shdridx].shdr.sh_size; + + done: /* Finally finish the ELF header. Fill in the fields not handled by libelf from the old file. */ newehdr = gelf_getehdr (newelf, &newehdr_mem); @@ -2263,31 +2514,22 @@ while computing checksum for debug information")); /* We need to position the section header table. */ const size_t offsize = gelf_fsize (elf, ELF_T_OFF, 1, EV_CURRENT); - newehdr->e_shoff = ((shdr_info[shdridx].shdr.sh_offset - + shdr_info[shdridx].shdr.sh_size + offsize - 1) + newehdr->e_shoff = ((lastsec_offset + lastsec_size + offsize - 1) & ~((GElf_Off) (offsize - 1))); newehdr->e_shentsize = gelf_fsize (elf, ELF_T_SHDR, 1, EV_CURRENT); - /* The new section header string table index. */ - if (likely (idx < SHN_HIRESERVE) && likely (idx != SHN_XINDEX)) - newehdr->e_shstrndx = idx; - else + if (gelf_update_ehdr (newelf, newehdr) == 0) { - /* The index does not fit in the ELF header field. */ - shdr_info[0].scn = elf_getscn (elf, 0); - - if (gelf_getshdr (shdr_info[0].scn, &shdr_info[0].shdr) == NULL) - INTERNAL_ERROR (fname); - - shdr_info[0].shdr.sh_link = idx; - (void) gelf_update_shdr (shdr_info[0].scn, &shdr_info[0].shdr); - - newehdr->e_shstrndx = SHN_XINDEX; + error (0, 0, gettext ("%s: error while creating ELF header: %s"), + output_fname ?: fname, elf_errmsg (-1)); + cleanup_debug (); + return 1; } - if (gelf_update_ehdr (newelf, newehdr) == 0) + /* The new section header string table index. */ + if (update_shdrstrndx (newelf, idx) != 0) { - error (0, 0, gettext ("%s: error while creating ELF header: %s"), + error (0, 0, gettext ("%s: error updating shdrstrndx: %s"), output_fname ?: fname, elf_errmsg (-1)); cleanup_debug (); return 1; @@ -2305,7 +2547,7 @@ while computing checksum for debug information")); /* The ELF library better follows our layout when this is not a relocatable object file. */ elf_flagelf (newelf, ELF_C_SET, - (ehdr->e_type != ET_REL ? ELF_F_LAYOUT : 0) + (phnum > 0 ? ELF_F_LAYOUT : 0) | (permissive ? ELF_F_PERMISSIVE : 0)); /* Finally write the file. */ @@ -2334,7 +2576,7 @@ while computing checksum for debug information")); || (pwrite_retry (fd, zero, sizeof zero, offsetof (Elf32_Ehdr, e_shentsize)) != sizeof zero) - || ftruncate (fd, shdr_info[shdridx].shdr.sh_offset) < 0) + || ftruncate (fd, lastsec_offset) < 0) { error (0, errno, gettext ("while writing '%s'"), output_fname ?: fname); @@ -2354,7 +2596,7 @@ while computing checksum for debug information")); || (pwrite_retry (fd, zero, sizeof zero, offsetof (Elf64_Ehdr, e_shentsize)) != sizeof zero) - || ftruncate (fd, shdr_info[shdridx].shdr.sh_offset) < 0) + || ftruncate (fd, lastsec_offset) < 0) { error (0, errno, gettext ("while writing '%s'"), output_fname ?: fname); diff --git a/src/unstrip.c b/src/unstrip.c index ae37d576..723cc746 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -245,6 +245,7 @@ copy_elf (Elf *outelf, Elf *inelf) GElf_Ehdr ehdr_mem; GElf_Ehdr *ehdr = gelf_getehdr (inelf, &ehdr_mem); + ELF_CHECK (ehdr != NULL, _("cannot get ELF header: %s")); if (shstrndx < SHN_LORESERVE) ehdr->e_shstrndx = shstrndx; else @@ -447,6 +448,9 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, switch (shdr->sh_type) { case SHT_REL: + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "REL section cannot have zero sh_entsize"); + for (size_t i = 0; i < shdr->sh_size / shdr->sh_entsize; ++i) { GElf_Rel rel_mem; @@ -458,6 +462,9 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, break; case SHT_RELA: + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "RELA section cannot have zero sh_entsize"); + for (size_t i = 0; i < shdr->sh_size / shdr->sh_entsize; ++i) { GElf_Rela rela_mem; @@ -484,6 +491,10 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, case SHT_HASH: /* We must expand the table and rejigger its contents. */ { + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "HASH section cannot have zero sh_entsize"); + if (symshdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "Symbol table cannot have zero sh_entsize"); const size_t nsym = symshdr->sh_size / symshdr->sh_entsize; const size_t onent = shdr->sh_size / shdr->sh_entsize; assert (data->d_size == shdr->sh_size); @@ -539,6 +550,11 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, case SHT_GNU_versym: /* We must expand the table and move its elements around. */ { + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, + "GNU_versym section cannot have zero sh_entsize"); + if (symshdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "Symbol table cannot have zero sh_entsize"); const size_t nent = symshdr->sh_size / symshdr->sh_entsize; const size_t onent = shdr->sh_size / shdr->sh_entsize; assert (nent >= onent); @@ -604,6 +620,8 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum, GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (symscn, &shdr_mem); ELF_CHECK (shdr != NULL, _("cannot get section header: %s")); + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, "Symbol table section cannot have zero sh_entsize"); const size_t nsym = shdr->sh_size / shdr->sh_entsize; size_t symndx_map[nsym - 1]; @@ -697,6 +715,7 @@ struct section { Elf_Scn *scn; const char *name; + const char *sig; Elf_Scn *outscn; Dwelf_Strent *strent; GElf_Shdr shdr; @@ -721,7 +740,8 @@ compare_alloc_sections (const struct section *s1, const struct section *s2, static int compare_unalloc_sections (const GElf_Shdr *shdr1, const GElf_Shdr *shdr2, - const char *name1, const char *name2) + const char *name1, const char *name2, + const char *sig1, const char *sig2) { /* Sort by sh_flags as an arbitrary ordering. */ if (shdr1->sh_flags < shdr2->sh_flags) @@ -735,6 +755,10 @@ compare_unalloc_sections (const GElf_Shdr *shdr1, const GElf_Shdr *shdr2, if (shdr1->sh_size > shdr2->sh_size) return 1; + /* Are they both SHT_GROUP sections? Then compare signatures. */ + if (sig1 != NULL && sig2 != NULL) + return strcmp (sig1, sig2); + /* Sort by name as last resort. */ return strcmp (name1, name2); } @@ -752,7 +776,8 @@ compare_sections (const void *a, const void *b, bool rel) return ((s1->shdr.sh_flags & SHF_ALLOC) ? compare_alloc_sections (s1, s2, rel) : compare_unalloc_sections (&s1->shdr, &s2->shdr, - s1->name, s2->name)); + s1->name, s2->name, + s1->sig, s2->sig)); } static int @@ -987,6 +1012,44 @@ get_section_name (size_t ndx, const GElf_Shdr *shdr, const Elf_Data *shstrtab) return shstrtab->d_buf + shdr->sh_name; } +/* Returns the signature of a group section, or NULL if the given + section isn't a group. */ +static const char * +get_group_sig (Elf *elf, GElf_Shdr *shdr) +{ + if (shdr->sh_type != SHT_GROUP) + return NULL; + + Elf_Scn *symscn = elf_getscn (elf, shdr->sh_link); + if (symscn == NULL) + error (EXIT_FAILURE, 0, _("bad sh_link for group section: %s"), + elf_errmsg (-1)); + + GElf_Shdr symshdr_mem; + GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem); + if (symshdr == NULL) + error (EXIT_FAILURE, 0, _("couldn't get shdr for group section: %s"), + elf_errmsg (-1)); + + Elf_Data *symdata = elf_getdata (symscn, NULL); + if (symdata == NULL) + error (EXIT_FAILURE, 0, _("bad data for group symbol section: %s"), + elf_errmsg (-1)); + + GElf_Sym sym_mem; + GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem); + if (sym == NULL) + error (EXIT_FAILURE, 0, _("couldn't get symbol for group section: %s"), + elf_errmsg (-1)); + + const char *sig = elf_strptr (elf, symshdr->sh_link, sym->st_name); + if (sig == NULL) + error (EXIT_FAILURE, 0, _("bad symbol name for group section: %s"), + elf_errmsg (-1)); + + return sig; +} + /* Fix things up when prelink has moved some allocated sections around and the debuginfo file's section headers no longer match up. This fills in SECTIONS[0..NALLOC-1].outscn or exits. @@ -1112,6 +1175,7 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab, sec->scn = elf_getscn (main, i + 1); /* Really just for ndx. */ sec->outscn = NULL; sec->strent = NULL; + sec->sig = get_group_sig (main, &sec->shdr); ++undo_nalloc; } } @@ -1337,6 +1401,7 @@ more sections in stripped file than debug file -- arguments reversed?")); sections[i].scn = scn; sections[i].outscn = NULL; sections[i].strent = NULL; + sections[i].sig = get_group_sig (stripped, shdr); } const struct section *stripped_symtab = NULL; @@ -1355,7 +1420,8 @@ more sections in stripped file than debug file -- arguments reversed?")); /* Locate a matching unallocated section in SECTIONS. */ inline struct section *find_unalloc_section (const GElf_Shdr *shdr, - const char *name) + const char *name, + const char *sig) { size_t l = nalloc, u = stripped_shnum - 1; while (l < u) @@ -1363,7 +1429,8 @@ more sections in stripped file than debug file -- arguments reversed?")); size_t i = (l + u) / 2; struct section *sec = §ions[i]; int cmp = compare_unalloc_sections (shdr, &sec->shdr, - name, sec->name); + name, sec->name, + sig, sec->sig); if (cmp < 0) u = i; else if (cmp > 0) @@ -1436,7 +1503,8 @@ more sections in stripped file than debug file -- arguments reversed?")); else { /* Look for the section that matches. */ - sec = find_unalloc_section (shdr, name); + sec = find_unalloc_section (shdr, name, + get_group_sig (unstripped, shdr)); if (sec == NULL) { /* An additional unallocated section is fine if not SHT_NOBITS. @@ -1622,6 +1690,9 @@ more sections in stripped file than debug file -- arguments reversed?")); Elf_Data *shndxdata = NULL; /* XXX */ + if (shdr_mem.sh_entsize == 0) + error (EXIT_FAILURE, 0, + "SYMTAB section cannot have zero sh_entsize"); for (size_t i = 1; i < shdr_mem.sh_size / shdr_mem.sh_entsize; ++i) { GElf_Sym sym_mem; @@ -1659,6 +1730,20 @@ more sections in stripped file than debug file -- arguments reversed?")); if (shdr_mem.sh_type == SHT_DYNSYM) stripped_dynsym = sec; } + + if (shdr_mem.sh_type == SHT_GROUP) + { + /* We must adjust all the section indices in the group. + Skip the first word, which is the section group flag. + Everything else is a section index. */ + Elf32_Word *shndx = (Elf32_Word *) outdata->d_buf; + for (size_t i = 1; i < shdr_mem.sh_size / sizeof (Elf32_Word); ++i) + if (shndx[i] == SHN_UNDEF || shndx[i] >= stripped_shnum) + error (EXIT_FAILURE, 0, + _("group has invalid section index [%zd]"), i); + else + shndx[i] = ndx_section[shndx[i] - 1]; + } } /* We may need to update the symbol table. */ @@ -1673,11 +1758,16 @@ more sections in stripped file than debug file -- arguments reversed?")); /* Merge the stripped file's symbol table into the unstripped one. */ const size_t stripped_nsym = (stripped_symtab == NULL ? 1 : (stripped_symtab->shdr.sh_size - / stripped_symtab->shdr.sh_entsize)); + / (stripped_symtab->shdr.sh_entsize == 0 + ? 1 + : stripped_symtab->shdr.sh_entsize))); GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (unstripped_symtab, &shdr_mem); ELF_CHECK (shdr != NULL, _("cannot get section header: %s")); + if (shdr->sh_entsize == 0) + error (EXIT_FAILURE, 0, + "unstripped SYMTAB section cannot have zero sh_entsize"); const size_t unstripped_nsym = shdr->sh_size / shdr->sh_entsize; /* First collect all the symbols from both tables. */ diff --git a/tests/ChangeLog b/tests/ChangeLog index 2e14d364..c5aa795c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -30,6 +30,77 @@ * update3.c: Likewise. * update4.c: Likewise. +2018-11-09 Mark Wielaard <mark@klomp.org> + + * run-strip-reloc.sh: Also test testfile-debug-rel-ppc64-z.o + testfile-debug-rel-ppc64-g.o. + +2018-11-12 Mark Wielaard <mark@klomp.org> + + * run-readelf-n.sh: Add testfile-annobingroup.o test. + +2018-11-11 Mark Wielaard <mark@klomp.org> + + * run-readelf-n.sh: Fix NT_GNU_ABI_TAG type. Add testfile11 test + for NT_VERSION. + +2018-11-04 Mark Wielaard <mark@klomp.org> + + * testfile-bpf-reloc.expect.bz2: Update with new expected jump + variants. + +2018-10-20 Mark Wielaard <mark@klomp.org> + + * run-readelf-compressed.sh: New test. + * Makefile.am (TESTS): Add run-readelf-compressed.sh. + (EXTRA_DIST): Likewise. + +2018-11-09 Mark Wielaard <mark@klomp.org> + + * testfile-debug-rel-ppc64-g.o.bz2: New test file. + * testfile-debug-rel-ppc64-z.o.bz2: Likewise. + * testfile-debug-rel-ppc64.o.bz2: Likewise. + * Makefile.am (EXTRA_DIST): Add testfile-debug-rel-ppc64-g.o.bz2, + testfile-debug-rel-ppc64-z.o.bz2 and testfile-debug-rel-ppc64.o.bz2. + * run-strip-reloc.sh: Also test on testfile-debug-rel-ppc64.o. + * run-readelf-zdebug-rel.sh: Also test on testfile-debug-rel-ppc64*.o. + +2018-10-26 Mark Wielaard <mark@klomp.org> + + * run-strip-reloc.sh: Add a test for --reloc-debug-sections-only. + +2018-10-18 Mark Wielaard <mark@klomp.org> + + * run-readelf-n.sh: New test. + * testfile-gnu-property-note.bz2: New testfile. + * testfile-gnu-property-note.o.bz2: Likewise. + * Makefile.am (TESTS): Add run-readelf-n.sh. + (EXTRA_DIST): Likewise and testfile-gnu-property-note.bz2, + testfile-gnu-property-note.o.bz2. + +2018-10-12 Mark Wielaard <mark@klomp.org> + + * run-readelf-zdebug.sh: Adjust flags output. + * run-readelf-macro.sh: Likewise. + * run-readelf-macros.sh: New test. + * testfile-macros-object.o.bz2: New test file. + * Makefile.am (TESTS): Add run-readelf-macros.sh. + (EXTRA_DIST): Add run-readelf-macros.sh and + testfile-macros-object.o.bz2. + +2018-09-12 Mark Wielaard <mark@klomp.org> + + * run-annobingroup.sh: Add x86_64 ET_REL testcase. + * testfile-annobingroup-x86_64.o.bz2: New test file. + * Makefile.am (EXTRA_DIST): Add testfile-annobingroup-x86_64.o.bz2. + +2018-09-18 Mark Wielaard <mark@klomp.org> + + * backtrace-dwarf.c (thread_callback): Only error when + dwfl_thread_getframes returns an error. + (main): Don't call abort or assert but print an error when + something unexpected happens. + 2018-09-13 Mark Wielaard <mark@klomp.org> * run-strip-test-many.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index 81c53c31..d60d6636 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -102,12 +102,14 @@ 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-self.sh run-readelf-self.sh run-readelf-info-plus.sh \ + run-readelf-compressed.sh \ run-readelf-const-values.sh \ run-varlocs-self.sh run-exprlocs-self.sh \ run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \ run-readelf-test4.sh run-readelf-twofiles.sh \ run-readelf-macro.sh run-readelf-loc.sh run-readelf-ranges.sh \ run-readelf-aranges.sh run-readelf-line.sh run-readelf-z.sh \ + run-readelf-n.sh \ run-native-test.sh run-bug1-test.sh \ run-debuglink.sh run-debugaltlink.sh run-buildid.sh \ dwfl-bug-addr-overflow run-addrname-test.sh \ @@ -201,6 +203,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-strip-nothing.sh run-strip-remove-keep.sh run-strip-g.sh \ run-annobingroup.sh testfile-annobingroup.o.bz2 \ testfile-annobingroup-i386.o.bz2 \ + 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 \ @@ -216,6 +219,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-ranlib-test3.sh run-ranlib-test4.sh \ run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \ run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \ + run-readelf-compressed.sh \ run-readelf-const-values.sh testfile-const-values.debug.bz2 \ run-addrcfi.sh run-dwarfcfi.sh \ testfile11-debugframe.bz2 testfile12-debugframe.bz2 \ @@ -273,6 +277,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ testfile-dwzstr.bz2 testfile-dwzstr.multi.bz2 \ run-readelf-addr.sh run-readelf-str.sh \ run-readelf-types.sh \ + run-readelf-n.sh \ + testfile-gnu-property-note.bz2 testfile-gnu-property-note.o.bz2 \ run-allfcts-multi.sh \ test-offset-loop.bz2 test-offset-loop.alt.bz2 \ run-prelink-addr-test.sh \ @@ -410,7 +416,10 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ testfile-riscv64.bz2 testfile-riscv64-s.bz2 \ testfile-riscv64-core.bz2 \ run-copyadd-sections.sh run-copymany-sections.sh \ - run-typeiter-many.sh run-strip-test-many.sh + run-typeiter-many.sh run-strip-test-many.sh \ + testfile-debug-rel-ppc64-g.o.bz2 \ + testfile-debug-rel-ppc64-z.o.bz2 \ + testfile-debug-rel-ppc64.o.bz2 EXTRA_DIST += deleted-lib.c diff --git a/tests/backtrace-dwarf.c b/tests/backtrace-dwarf.c index 35f25ed6..dfbf1856 100644 --- a/tests/backtrace-dwarf.c +++ b/tests/backtrace-dwarf.c @@ -1,5 +1,5 @@ /* Test program for unwinding of complicated DWARF expressions. - Copyright (C) 2013, 2015 Red Hat, Inc. + Copyright (C) 2013, 2015, 2018 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <config.h> -#include <assert.h> #include <inttypes.h> #include <stdio_ext.h> #include <locale.h> @@ -117,9 +116,11 @@ frame_callback (Dwfl_Frame *state, void *frame_arg) static int thread_callback (Dwfl_Thread *thread, void *thread_arg) { - dwfl_thread_getframes (thread, frame_callback, NULL); + if (dwfl_thread_getframes (thread, frame_callback, NULL) == -1) + error (1, 0, "dwfl_thread_getframes: %s", dwfl_errmsg (-1)); + /* frame_callback shall exit (0) on success. */ - error (1, 0, "dwfl_thread_getframes: %s", dwfl_errmsg (-1)); + printf ("dwfl_thread_getframes returned, main not found\n"); return DWARF_CB_ABORT; } @@ -141,13 +142,18 @@ main (int argc __attribute__ ((unused)), char **argv) switch (pid) { case -1: - abort (); + perror ("fork failed"); + exit (-1); case 0:; long l = ptrace (PTRACE_TRACEME, 0, NULL, NULL); - assert (errno == 0); - assert (l == 0); + if (l != 0) + { + perror ("PTRACE_TRACEME failed"); + exit (-1); + } cleanup_13_main (); - abort (); + printf ("cleanup_13_main returned, impossible...\n"); + exit (-1); default: break; } @@ -155,16 +161,20 @@ main (int argc __attribute__ ((unused)), char **argv) errno = 0; int status; pid_t got = waitpid (pid, &status, 0); - assert (errno == 0); - assert (got == pid); - assert (WIFSTOPPED (status)); - assert (WSTOPSIG (status) == SIGABRT); + if (got != pid) + error (1, errno, "waitpid returned %d", got); + if (!WIFSTOPPED (status)) + error (1, 0, "unexpected wait status %u", status); + if (WSTOPSIG (status) != SIGABRT) + error (1, 0, "unexpected signal %u", WSTOPSIG (status)); Dwfl *dwfl = pid_to_dwfl (pid); - dwfl_getthreads (dwfl, thread_callback, NULL); + if (dwfl_getthreads (dwfl, thread_callback, NULL) == -1) + error (1, 0, "dwfl_getthreads: %s", dwfl_errmsg (-1)); /* There is an exit (0) call if we find the "main" frame, */ - error (1, 0, "dwfl_getthreads: %s", dwfl_errmsg (-1)); + printf ("dwfl_getthreads returned, main not found\n"); + exit (-1); } #endif /* ! __linux__ */ diff --git a/tests/run-annobingroup.sh b/tests/run-annobingroup.sh index 700df321..fd36e4ac 100755 --- a/tests/run-annobingroup.sh +++ b/tests/run-annobingroup.sh @@ -120,4 +120,37 @@ EOF testrun ${abs_top_builddir}/src/elfcmp testfile-annobingroup-i386.o remerged.elf +# echo "void * foo (void) { return foo; }" > testfile-annobingroup-x86_64.c +# gcc -g -O2 -fplugin=annobin -c testfile-annobingroup-x86_64.c +testfiles testfile-annobingroup-x86_64.o + +testrun_compare ${abs_top_builddir}/src/readelf -g testfile-annobingroup-x86_64.o << EOF + +Section group [ 1] '.group' with signature '.text.hot.group' contains 3 entries: + [11] .text.hot + [12] .gnu.build.attributes.hot + [13] .rela.gnu.build.attributes.hot + +Section group [ 2] '.group' with signature '.text.unlikely.group' contains 3 entries: + [14] .text.unlikely + [15] .gnu.build.attributes.unlikely + [16] .rela.gnu.build.attributes.unlikely + +Section group [ 3] '.group' with signature '.text.hot..group' contains 1 entry: + [26] .text.hot + +Section group [ 4] '.group' with signature '.text.unlikely..group' contains 1 entry: + [27] .text.unlikely +EOF + +testrun ${abs_top_builddir}/src/strip -o stripped.elf -f debugfile.elf testfile-annobingroup-x86_64.o + +# This would/should work, except for the unknown NOTEs. +# testrun ${abs_top_builddir}/src/elflint --gnu stripped.elf +# testrun ${abs_top_builddir}/src/elflint --gnu --debug debugfile.elf + +testrun ${abs_top_builddir}/src/unstrip -o remerged.elf stripped.elf debugfile.elf + +testrun ${abs_top_builddir}/src/elfcmp testfile-annobingroup-x86_64.o remerged.elf + exit 0 diff --git a/tests/run-readelf-compressed.sh b/tests/run-readelf-compressed.sh new file mode 100755 index 00000000..a2a04a2a --- /dev/null +++ b/tests/run-readelf-compressed.sh @@ -0,0 +1,34 @@ +#! /bin/sh +# Copyright (C) 2018 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 + +# See run-strip-reloc.sh +testfiles hello_i386.ko + +tempfiles hello_i386.ko.bz2 readelf.out.1 readelf.out.2 + +testrun ${abs_top_builddir}/src/readelf -a hello_i386.ko > readelf.out.1 +bzip2 hello_i386.ko +testrun ${abs_top_builddir}/src/readelf -a hello_i386.ko.bz2 > readelf.out.2 + +diff -u readelf.out.1 readelf.out.2 +if [ $? != 0 ]; then + exit 1; +fi + +exit 0 diff --git a/tests/run-readelf-macro.sh b/tests/run-readelf-macro.sh index 86932033..8b17f7da 100755 --- a/tests/run-readelf-macro.sh +++ b/tests/run-readelf-macro.sh @@ -65,7 +65,7 @@ DWARF section [32] '.debug_macro' at offset 0x2480: Offset: 0x0 Version: 4 - Flag: 0x2 + Flag: 0x2 (debug_line_offset) Offset length: 4 .debug_line offset: 0x0 @@ -329,7 +329,7 @@ DWARF section [32] '.debug_macro' at offset 0x2480: Offset: 0x5bc Version: 4 - Flag: 0x2 + Flag: 0x2 (debug_line_offset) Offset length: 4 .debug_line offset: 0x47 diff --git a/tests/run-readelf-macros.sh b/tests/run-readelf-macros.sh new file mode 100755 index 00000000..cc311b75 --- /dev/null +++ b/tests/run-readelf-macros.sh @@ -0,0 +1,435 @@ +#! /bin/sh +# Copyright (C) 2018 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 + +# - testfile-macros-object.c +# +# #define SUCCESS 0 +# #define FAILURE 0 +# +# #include <stdbool.h> +# +# bool foo (int input) +# { +# return input == SUCCESS ? SUCCESS : FAILURE; +# } + +# gcc -g3 -gdwarf-5 -O2 -c testfile-macros-object.c + +testfiles testfile-macros-object.o + +testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=macro testfile-macros-object.o <<\EOF + +DWARF section [12] '.debug_macro' at offset 0x16f: + + Offset: 0x0 + Version: 5 + Flag: 0x2 (debug_line_offset) + Offset length: 4 + .debug_line offset: 0x0 + + #include offset 0x0 + start_file 0, [1] /home/mark/build/elfutils-obj/testfile-macros-object.c + start_file 31, [2] /usr/include/stdc-predef.h + #include offset 0x0 + end_file + #define SUCCESS 0, line 1 (indirect) + #define FAILURE 0, line 2 (indirect) + start_file 4, [3] /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/include/stdbool.h + #include offset 0x0 + end_file + end_file + + +DWARF section [14] '.debug_macro' at offset 0x19e: + + Offset: 0x0 + Version: 5 + Flag: 0x0 + Offset length: 4 + + #define __STDC__ 1, line 0 (indirect) + #define __STDC_VERSION__ 201710L, line 0 (indirect) + #define __STDC_UTF_16__ 1, line 0 (indirect) + #define __STDC_UTF_32__ 1, line 0 (indirect) + #define __STDC_HOSTED__ 1, line 0 (indirect) + #define __GNUC__ 8, line 0 (indirect) + #define __GNUC_MINOR__ 2, line 0 (indirect) + #define __GNUC_PATCHLEVEL__ 1, line 0 (indirect) + #define __VERSION__ "8.2.1 20180905 (Red Hat 8.2.1-3)", line 0 (indirect) + #define __GNUC_RH_RELEASE__ 3, line 0 (indirect) + #define __ATOMIC_RELAXED 0, line 0 (indirect) + #define __ATOMIC_SEQ_CST 5, line 0 (indirect) + #define __ATOMIC_ACQUIRE 2, line 0 (indirect) + #define __ATOMIC_RELEASE 3, line 0 (indirect) + #define __ATOMIC_ACQ_REL 4, line 0 (indirect) + #define __ATOMIC_CONSUME 1, line 0 (indirect) + #define __OPTIMIZE__ 1, line 0 (indirect) + #define __FINITE_MATH_ONLY__ 0, line 0 (indirect) + #define _LP64 1, line 0 (indirect) + #define __LP64__ 1, line 0 (indirect) + #define __SIZEOF_INT__ 4, line 0 (indirect) + #define __SIZEOF_LONG__ 8, line 0 (indirect) + #define __SIZEOF_LONG_LONG__ 8, line 0 (indirect) + #define __SIZEOF_SHORT__ 2, line 0 (indirect) + #define __SIZEOF_FLOAT__ 4, line 0 (indirect) + #define __SIZEOF_DOUBLE__ 8, line 0 (indirect) + #define __SIZEOF_LONG_DOUBLE__ 16, line 0 (indirect) + #define __SIZEOF_SIZE_T__ 8, line 0 (indirect) + #define __CHAR_BIT__ 8, line 0 (indirect) + #define __BIGGEST_ALIGNMENT__ 16, line 0 (indirect) + #define __ORDER_LITTLE_ENDIAN__ 1234, line 0 (indirect) + #define __ORDER_BIG_ENDIAN__ 4321, line 0 (indirect) + #define __ORDER_PDP_ENDIAN__ 3412, line 0 (indirect) + #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__, line 0 (indirect) + #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__, line 0 (indirect) + #define __SIZEOF_POINTER__ 8, line 0 (indirect) + #define __SIZE_TYPE__ long unsigned int, line 0 (indirect) + #define __PTRDIFF_TYPE__ long int, line 0 (indirect) + #define __WCHAR_TYPE__ int, line 0 (indirect) + #define __WINT_TYPE__ unsigned int, line 0 (indirect) + #define __INTMAX_TYPE__ long int, line 0 (indirect) + #define __UINTMAX_TYPE__ long unsigned int, line 0 (indirect) + #define __CHAR16_TYPE__ short unsigned int, line 0 (indirect) + #define __CHAR32_TYPE__ unsigned int, line 0 (indirect) + #define __SIG_ATOMIC_TYPE__ int, line 0 (indirect) + #define __INT8_TYPE__ signed char, line 0 (indirect) + #define __INT16_TYPE__ short int, line 0 (indirect) + #define __INT32_TYPE__ int, line 0 (indirect) + #define __INT64_TYPE__ long int, line 0 (indirect) + #define __UINT8_TYPE__ unsigned char, line 0 (indirect) + #define __UINT16_TYPE__ short unsigned int, line 0 (indirect) + #define __UINT32_TYPE__ unsigned int, line 0 (indirect) + #define __UINT64_TYPE__ long unsigned int, line 0 (indirect) + #define __INT_LEAST8_TYPE__ signed char, line 0 (indirect) + #define __INT_LEAST16_TYPE__ short int, line 0 (indirect) + #define __INT_LEAST32_TYPE__ int, line 0 (indirect) + #define __INT_LEAST64_TYPE__ long int, line 0 (indirect) + #define __UINT_LEAST8_TYPE__ unsigned char, line 0 (indirect) + #define __UINT_LEAST16_TYPE__ short unsigned int, line 0 (indirect) + #define __UINT_LEAST32_TYPE__ unsigned int, line 0 (indirect) + #define __UINT_LEAST64_TYPE__ long unsigned int, line 0 (indirect) + #define __INT_FAST8_TYPE__ signed char, line 0 (indirect) + #define __INT_FAST16_TYPE__ long int, line 0 (indirect) + #define __INT_FAST32_TYPE__ long int, line 0 (indirect) + #define __INT_FAST64_TYPE__ long int, line 0 (indirect) + #define __UINT_FAST8_TYPE__ unsigned char, line 0 (indirect) + #define __UINT_FAST16_TYPE__ long unsigned int, line 0 (indirect) + #define __UINT_FAST32_TYPE__ long unsigned int, line 0 (indirect) + #define __UINT_FAST64_TYPE__ long unsigned int, line 0 (indirect) + #define __INTPTR_TYPE__ long int, line 0 (indirect) + #define __UINTPTR_TYPE__ long unsigned int, line 0 (indirect) + #define __has_include(STR) __has_include__(STR), line 0 (indirect) + #define __has_include_next(STR) __has_include_next__(STR), line 0 (indirect) + #define __GXX_ABI_VERSION 1013, line 0 (indirect) + #define __SCHAR_MAX__ 0x7f, line 0 (indirect) + #define __SHRT_MAX__ 0x7fff, line 0 (indirect) + #define __INT_MAX__ 0x7fffffff, line 0 (indirect) + #define __LONG_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL, line 0 (indirect) + #define __WCHAR_MAX__ 0x7fffffff, line 0 (indirect) + #define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1), line 0 (indirect) + #define __WINT_MAX__ 0xffffffffU, line 0 (indirect) + #define __WINT_MIN__ 0U, line 0 (indirect) + #define __PTRDIFF_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __SIZE_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __SCHAR_WIDTH__ 8, line 0 (indirect) + #define __SHRT_WIDTH__ 16, line 0 (indirect) + #define __INT_WIDTH__ 32, line 0 (indirect) + #define __LONG_WIDTH__ 64, line 0 (indirect) + #define __LONG_LONG_WIDTH__ 64, line 0 (indirect) + #define __WCHAR_WIDTH__ 32, line 0 (indirect) + #define __WINT_WIDTH__ 32, line 0 (indirect) + #define __PTRDIFF_WIDTH__ 64, line 0 (indirect) + #define __SIZE_WIDTH__ 64, line 0 (indirect) + #define __INTMAX_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INTMAX_C(c) c ## L, line 0 (indirect) + #define __UINTMAX_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __UINTMAX_C(c) c ## UL, line 0 (indirect) + #define __INTMAX_WIDTH__ 64, line 0 (indirect) + #define __SIG_ATOMIC_MAX__ 0x7fffffff, line 0 (indirect) + #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1), line 0 (indirect) + #define __SIG_ATOMIC_WIDTH__ 32, line 0 (indirect) + #define __INT8_MAX__ 0x7f, line 0 (indirect) + #define __INT16_MAX__ 0x7fff, line 0 (indirect) + #define __INT32_MAX__ 0x7fffffff, line 0 (indirect) + #define __INT64_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __UINT8_MAX__ 0xff, line 0 (indirect) + #define __UINT16_MAX__ 0xffff, line 0 (indirect) + #define __UINT32_MAX__ 0xffffffffU, line 0 (indirect) + #define __UINT64_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __INT_LEAST8_MAX__ 0x7f, line 0 (indirect) + #define __INT8_C(c) c, line 0 (indirect) + #define __INT_LEAST8_WIDTH__ 8, line 0 (indirect) + #define __INT_LEAST16_MAX__ 0x7fff, line 0 (indirect) + #define __INT16_C(c) c, line 0 (indirect) + #define __INT_LEAST16_WIDTH__ 16, line 0 (indirect) + #define __INT_LEAST32_MAX__ 0x7fffffff, line 0 (indirect) + #define __INT32_C(c) c, line 0 (indirect) + #define __INT_LEAST32_WIDTH__ 32, line 0 (indirect) + #define __INT_LEAST64_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INT64_C(c) c ## L, line 0 (indirect) + #define __INT_LEAST64_WIDTH__ 64, line 0 (indirect) + #define __UINT_LEAST8_MAX__ 0xff, line 0 (indirect) + #define __UINT8_C(c) c, line 0 (indirect) + #define __UINT_LEAST16_MAX__ 0xffff, line 0 (indirect) + #define __UINT16_C(c) c, line 0 (indirect) + #define __UINT_LEAST32_MAX__ 0xffffffffU, line 0 (indirect) + #define __UINT32_C(c) c ## U, line 0 (indirect) + #define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __UINT64_C(c) c ## UL, line 0 (indirect) + #define __INT_FAST8_MAX__ 0x7f, line 0 (indirect) + #define __INT_FAST8_WIDTH__ 8, line 0 (indirect) + #define __INT_FAST16_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INT_FAST16_WIDTH__ 64, line 0 (indirect) + #define __INT_FAST32_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INT_FAST32_WIDTH__ 64, line 0 (indirect) + #define __INT_FAST64_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INT_FAST64_WIDTH__ 64, line 0 (indirect) + #define __UINT_FAST8_MAX__ 0xff, line 0 (indirect) + #define __UINT_FAST16_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __UINT_FAST32_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __UINT_FAST64_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __INTPTR_MAX__ 0x7fffffffffffffffL, line 0 (indirect) + #define __INTPTR_WIDTH__ 64, line 0 (indirect) + #define __UINTPTR_MAX__ 0xffffffffffffffffUL, line 0 (indirect) + #define __GCC_IEC_559 2, line 0 (indirect) + #define __GCC_IEC_559_COMPLEX 2, line 0 (indirect) + #define __FLT_EVAL_METHOD__ 0, line 0 (indirect) + #define __FLT_EVAL_METHOD_TS_18661_3__ 0, line 0 (indirect) + #define __DEC_EVAL_METHOD__ 2, line 0 (indirect) + #define __FLT_RADIX__ 2, line 0 (indirect) + #define __FLT_MANT_DIG__ 24, line 0 (indirect) + #define __FLT_DIG__ 6, line 0 (indirect) + #define __FLT_MIN_EXP__ (-125), line 0 (indirect) + #define __FLT_MIN_10_EXP__ (-37), line 0 (indirect) + #define __FLT_MAX_EXP__ 128, line 0 (indirect) + #define __FLT_MAX_10_EXP__ 38, line 0 (indirect) + #define __FLT_DECIMAL_DIG__ 9, line 0 (indirect) + #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F, line 0 (indirect) + #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F, line 0 (indirect) + #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F, line 0 (indirect) + #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F, line 0 (indirect) + #define __FLT_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __DBL_MANT_DIG__ 53, line 0 (indirect) + #define __DBL_DIG__ 15, line 0 (indirect) + #define __DBL_MIN_EXP__ (-1021), line 0 (indirect) + #define __DBL_MIN_10_EXP__ (-307), line 0 (indirect) + #define __DBL_MAX_EXP__ 1024, line 0 (indirect) + #define __DBL_MAX_10_EXP__ 308, line 0 (indirect) + #define __DBL_DECIMAL_DIG__ 17, line 0 (indirect) + #define __DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L), line 0 (indirect) + #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L), line 0 (indirect) + #define __DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L), line 0 (indirect) + #define __DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L), line 0 (indirect) + #define __DBL_HAS_DENORM__ 1, line 0 (indirect) + #define __DBL_HAS_INFINITY__ 1, line 0 (indirect) + #define __DBL_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __LDBL_MANT_DIG__ 64, line 0 (indirect) + #define __LDBL_DIG__ 18, line 0 (indirect) + #define __LDBL_MIN_EXP__ (-16381), line 0 (indirect) + #define __LDBL_MIN_10_EXP__ (-4931), line 0 (indirect) + #define __LDBL_MAX_EXP__ 16384, line 0 (indirect) + #define __LDBL_MAX_10_EXP__ 4932, line 0 (indirect) + #define __DECIMAL_DIG__ 21, line 0 (indirect) + #define __LDBL_DECIMAL_DIG__ 21, line 0 (indirect) + #define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L, line 0 (indirect) + #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L, line 0 (indirect) + #define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L, line 0 (indirect) + #define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L, line 0 (indirect) + #define __LDBL_HAS_DENORM__ 1, line 0 (indirect) + #define __LDBL_HAS_INFINITY__ 1, line 0 (indirect) + #define __LDBL_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __FLT32_MANT_DIG__ 24, line 0 (indirect) + #define __FLT32_DIG__ 6, line 0 (indirect) + #define __FLT32_MIN_EXP__ (-125), line 0 (indirect) + #define __FLT32_MIN_10_EXP__ (-37), line 0 (indirect) + #define __FLT32_MAX_EXP__ 128, line 0 (indirect) + #define __FLT32_MAX_10_EXP__ 38, line 0 (indirect) + #define __FLT32_DECIMAL_DIG__ 9, line 0 (indirect) + #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32, line 0 (indirect) + #define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32, line 0 (indirect) + #define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32, line 0 (indirect) + #define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32, line 0 (indirect) + #define __FLT32_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT32_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT32_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __FLT64_MANT_DIG__ 53, line 0 (indirect) + #define __FLT64_DIG__ 15, line 0 (indirect) + #define __FLT64_MIN_EXP__ (-1021), line 0 (indirect) + #define __FLT64_MIN_10_EXP__ (-307), line 0 (indirect) + #define __FLT64_MAX_EXP__ 1024, line 0 (indirect) + #define __FLT64_MAX_10_EXP__ 308, line 0 (indirect) + #define __FLT64_DECIMAL_DIG__ 17, line 0 (indirect) + #define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64, line 0 (indirect) + #define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64, line 0 (indirect) + #define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64, line 0 (indirect) + #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64, line 0 (indirect) + #define __FLT64_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT64_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT64_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __FLT128_MANT_DIG__ 113, line 0 (indirect) + #define __FLT128_DIG__ 33, line 0 (indirect) + #define __FLT128_MIN_EXP__ (-16381), line 0 (indirect) + #define __FLT128_MIN_10_EXP__ (-4931), line 0 (indirect) + #define __FLT128_MAX_EXP__ 16384, line 0 (indirect) + #define __FLT128_MAX_10_EXP__ 4932, line 0 (indirect) + #define __FLT128_DECIMAL_DIG__ 36, line 0 (indirect) + #define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128, line 0 (indirect) + #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128, line 0 (indirect) + #define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128, line 0 (indirect) + #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128, line 0 (indirect) + #define __FLT128_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT128_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT128_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __FLT32X_MANT_DIG__ 53, line 0 (indirect) + #define __FLT32X_DIG__ 15, line 0 (indirect) + #define __FLT32X_MIN_EXP__ (-1021), line 0 (indirect) + #define __FLT32X_MIN_10_EXP__ (-307), line 0 (indirect) + #define __FLT32X_MAX_EXP__ 1024, line 0 (indirect) + #define __FLT32X_MAX_10_EXP__ 308, line 0 (indirect) + #define __FLT32X_DECIMAL_DIG__ 17, line 0 (indirect) + #define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x, line 0 (indirect) + #define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x, line 0 (indirect) + #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x, line 0 (indirect) + #define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x, line 0 (indirect) + #define __FLT32X_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT32X_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT32X_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __FLT64X_MANT_DIG__ 64, line 0 (indirect) + #define __FLT64X_DIG__ 18, line 0 (indirect) + #define __FLT64X_MIN_EXP__ (-16381), line 0 (indirect) + #define __FLT64X_MIN_10_EXP__ (-4931), line 0 (indirect) + #define __FLT64X_MAX_EXP__ 16384, line 0 (indirect) + #define __FLT64X_MAX_10_EXP__ 4932, line 0 (indirect) + #define __FLT64X_DECIMAL_DIG__ 21, line 0 (indirect) + #define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x, line 0 (indirect) + #define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x, line 0 (indirect) + #define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x, line 0 (indirect) + #define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x, line 0 (indirect) + #define __FLT64X_HAS_DENORM__ 1, line 0 (indirect) + #define __FLT64X_HAS_INFINITY__ 1, line 0 (indirect) + #define __FLT64X_HAS_QUIET_NAN__ 1, line 0 (indirect) + #define __DEC32_MANT_DIG__ 7, line 0 (indirect) + #define __DEC32_MIN_EXP__ (-94), line 0 (indirect) + #define __DEC32_MAX_EXP__ 97, line 0 (indirect) + #define __DEC32_MIN__ 1E-95DF, line 0 (indirect) + #define __DEC32_MAX__ 9.999999E96DF, line 0 (indirect) + #define __DEC32_EPSILON__ 1E-6DF, line 0 (indirect) + #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF, line 0 (indirect) + #define __DEC64_MANT_DIG__ 16, line 0 (indirect) + #define __DEC64_MIN_EXP__ (-382), line 0 (indirect) + #define __DEC64_MAX_EXP__ 385, line 0 (indirect) + #define __DEC64_MIN__ 1E-383DD, line 0 (indirect) + #define __DEC64_MAX__ 9.999999999999999E384DD, line 0 (indirect) + #define __DEC64_EPSILON__ 1E-15DD, line 0 (indirect) + #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD, line 0 (indirect) + #define __DEC128_MANT_DIG__ 34, line 0 (indirect) + #define __DEC128_MIN_EXP__ (-6142), line 0 (indirect) + #define __DEC128_MAX_EXP__ 6145, line 0 (indirect) + #define __DEC128_MIN__ 1E-6143DL, line 0 (indirect) + #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL, line 0 (indirect) + #define __DEC128_EPSILON__ 1E-33DL, line 0 (indirect) + #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL, line 0 (indirect) + #define __REGISTER_PREFIX__ , line 0 (indirect) + #define __USER_LABEL_PREFIX__ , line 0 (indirect) + #define __GNUC_STDC_INLINE__ 1, line 0 (indirect) + #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1, line 0 (indirect) + #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1, line 0 (indirect) + #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1, line 0 (indirect) + #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1, line 0 (indirect) + #define __GCC_ATOMIC_BOOL_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_CHAR_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_SHORT_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_INT_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_LONG_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_LLONG_LOCK_FREE 2, line 0 (indirect) + #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1, line 0 (indirect) + #define __GCC_ATOMIC_POINTER_LOCK_FREE 2, line 0 (indirect) + #define __GCC_HAVE_DWARF2_CFI_ASM 1, line 0 (indirect) + #define __PRAGMA_REDEFINE_EXTNAME 1, line 0 (indirect) + #define __SIZEOF_INT128__ 16, line 0 (indirect) + #define __SIZEOF_WCHAR_T__ 4, line 0 (indirect) + #define __SIZEOF_WINT_T__ 4, line 0 (indirect) + #define __SIZEOF_PTRDIFF_T__ 8, line 0 (indirect) + #define __amd64 1, line 0 (indirect) + #define __amd64__ 1, line 0 (indirect) + #define __x86_64 1, line 0 (indirect) + #define __x86_64__ 1, line 0 (indirect) + #define __SIZEOF_FLOAT80__ 16, line 0 (indirect) + #define __SIZEOF_FLOAT128__ 16, line 0 (indirect) + #define __ATOMIC_HLE_ACQUIRE 65536, line 0 (indirect) + #define __ATOMIC_HLE_RELEASE 131072, line 0 (indirect) + #define __GCC_ASM_FLAG_OUTPUTS__ 1, line 0 (indirect) + #define __k8 1, line 0 (indirect) + #define __k8__ 1, line 0 (indirect) + #define __code_model_small__ 1, line 0 (indirect) + #define __MMX__ 1, line 0 (indirect) + #define __SSE__ 1, line 0 (indirect) + #define __SSE2__ 1, line 0 (indirect) + #define __FXSR__ 1, line 0 (indirect) + #define __SSE_MATH__ 1, line 0 (indirect) + #define __SSE2_MATH__ 1, line 0 (indirect) + #define __SEG_FS 1, line 0 (indirect) + #define __SEG_GS 1, line 0 (indirect) + #define __gnu_linux__ 1, line 0 (indirect) + #define __linux 1, line 0 (indirect) + #define __linux__ 1, line 0 (indirect) + #define linux 1, line 0 (indirect) + #define __unix 1, line 0 (indirect) + #define __unix__ 1, line 0 (indirect) + #define unix 1, line 0 (indirect) + #define __ELF__ 1, line 0 (indirect) + #define __DECIMAL_BID_FORMAT__ 1, line 0 (indirect) + + +DWARF section [16] '.debug_macro' at offset 0x98e: + + Offset: 0x0 + Version: 5 + Flag: 0x0 + Offset length: 4 + + #define _STDC_PREDEF_H 1, line 19 (indirect) + #define __STDC_IEC_559__ 1, line 30 (indirect) + #define __STDC_IEC_559_COMPLEX__ 1, line 31 (indirect) + #define __STDC_ISO_10646__ 201103L, line 35 (indirect) + #define __STDC_NO_THREADS__ 1, line 38 (indirect) + + +DWARF section [18] '.debug_macro' at offset 0x9b0: + + Offset: 0x0 + Version: 5 + Flag: 0x0 + Offset length: 4 + + #define _STDBOOL_H , line 29 (indirect) + #define bool _Bool, line 33 (indirect) + #define true 1, line 34 (indirect) + #define false 0, line 35 (indirect) + #define __bool_true_false_are_defined 1, line 52 (indirect) + +EOF + +exit 0 diff --git a/tests/run-readelf-n.sh b/tests/run-readelf-n.sh new file mode 100755 index 00000000..c2db2ce2 --- /dev/null +++ b/tests/run-readelf-n.sh @@ -0,0 +1,127 @@ +# Copyright (C) 2018 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 + +# - testfile-gnu-property-note.c +# int +# main () +# { +# return 0; +# } +# +# gcc -fcf-protection -c testfile-gnu-property-note.c +# gcc -o testfile-gnu-property-note testfile-gnu-property-note.o +# eu-strip --strip-sections testfile-gnu-property-note + +testfiles testfile-gnu-property-note.o testfile-gnu-property-note + +# Test reading notes through sections +testrun_compare ${abs_top_builddir}/src/readelf -n testfile-gnu-property-note.o << EOF + +Note section [ 6] '.note.gnu.property' of 32 bytes at offset 0x80: + Owner Data size Type + GNU 16 GNU_PROPERTY_TYPE_0 + X86 FEATURE_1_AND: 00000003 IBT SHSTK +EOF + +# Test reading notes through segments +testrun_compare ${abs_top_builddir}/src/readelf -n testfile-gnu-property-note << EOF + +Note segment of 32 bytes at offset 0x300: + Owner Data size Type + GNU 16 GNU_PROPERTY_TYPE_0 + X86 FEATURE_1_AND: 00000003 IBT SHSTK + +Note segment of 68 bytes at offset 0x320: + Owner Data size Type + GNU 16 GNU_ABI_TAG + OS: Linux, ABI: 3.2.0 + GNU 20 GNU_BUILD_ID + Build ID: 83cb2229fabd2065d1361f5b46424cd75270f94b +EOF + +# NT_VERSION note type clashes with "GNU" owner type NT_GNU_ABI_TAG. +# Uses owner name (with zero desc) for version string. +testfiles testfile11 +testrun_compare ${abs_top_builddir}/src/readelf -n testfile11 << EOF + +Note section [ 2] '.note.ABI-tag' of 32 bytes at offset 0x128: + Owner Data size Type + GNU 16 GNU_ABI_TAG + OS: Linux, ABI: 2.2.5 + +Note section [35] '.note' of 60 bytes at offset 0x13364: + Owner Data size Type + 01.01 0 VERSION + 01.01 0 VERSION + 01.01 0 VERSION +EOF + +# See run-annobingroup.sh +testfiles testfile-annobingroup.o +testrun_compare ${abs_top_builddir}/src/readelf -n testfile-annobingroup.o << EOF + +Note section [ 5] '.gnu.build.attributes' of 272 bytes at offset 0x50: + Owner Data size Type + GA 16 GNU Build Attribute OPEN + Address Range: 0 - 0 + VERSION: "3p8" + GA 0 GNU Build Attribute OPEN + TOOL: "gcc 8.1.1 20180712" + GA 0 GNU Build Attribute OPEN + "GOW": 5 + GA 0 GNU Build Attribute OPEN + STACK_PROT: 0 + GA 0 GNU Build Attribute OPEN + "stack_clash": FALSE + GA 0 GNU Build Attribute OPEN + "cf_protection": 0 + GA 0 GNU Build Attribute OPEN + PIC: 0 + GA 0 GNU Build Attribute OPEN + SHORT_ENUM: FALSE + GA 0 GNU Build Attribute OPEN + ABI: c001100000012 + GA 0 GNU Build Attribute OPEN + "stack_realign": FALSE + +Note section [ 7] '.gnu.build.attributes..text.unlikely' of 216 bytes at offset 0x160: + Owner Data size Type + GA 16 GNU Build Attribute FUNC + Address Range: 0 - 0 + ABI: c001100000012 + GA 0 GNU Build Attribute FUNC + "stack_realign": FALSE + GA 0 GNU Build Attribute FUNC + STACK_PROT: 0 + GA 0 GNU Build Attribute FUNC + "stack_clash": FALSE + GA 0 GNU Build Attribute FUNC + "cf_protection": 0 + GA 0 GNU Build Attribute FUNC + PIC: 0 + GA 0 GNU Build Attribute FUNC + "GOW": 5 + GA 0 GNU Build Attribute FUNC + SHORT_ENUM: FALSE + +Note section [22] '.note.gnu.property' of 48 bytes at offset 0x40c: + Owner Data size Type + GNU 32 GNU_PROPERTY_TYPE_0 + X86 0xc0000000 data: 00 00 00 00 + X86 0xc0000001 data: 00 00 00 00 +EOF diff --git a/tests/run-readelf-zdebug-rel.sh b/tests/run-readelf-zdebug-rel.sh index 3f20078c..53fa42a2 100755 --- a/tests/run-readelf-zdebug-rel.sh +++ b/tests/run-readelf-zdebug-rel.sh @@ -146,4 +146,110 @@ cat loc.out | sed -e "s/'.debug_loc' at offset 0x185/'.zdebug_loc' at offset 0x1 cat loc.out | sed -e "s/at offset 0x185/at offset 0x150/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-z.o +# Same as above, but on ppc64 +testfiles testfile-debug-rel-ppc64.o +testfiles testfile-debug-rel-ppc64-g.o testfile-debug-rel-ppc64-z.o + +cat > info.out << \EOF + +DWARF section [ 6] '.debug_info' at offset 0x80: + [Offset] + Compilation unit at offset 0: + Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 + [ b] compile_unit abbrev: 1 + producer (strp) "GNU C11 7.3.1 20180712 (Red Hat 7.3.1-6) -Asystem=linux -Asystem=unix -Asystem=posix -msecure-plt -g -Og" + language (data1) C99 (12) + name (strp) "testfile-zdebug-rel.c" + comp_dir (strp) "/home/mjw" + low_pc (addr) 000000000000000000 + high_pc (data8) 44 (0x000000000000002c) + stmt_list (sec_offset) 0 + [ 2d] subprogram abbrev: 2 + external (flag_present) yes + name (strp) "main" + decl_file (data1) testfile-zdebug-rel.c (1) + decl_line (data1) 4 + prototyped (flag_present) yes + type (ref4) [ 82] + low_pc (addr) 000000000000000000 + high_pc (data8) 44 (0x000000000000002c) + frame_base (exprloc) + [ 0] call_frame_cfa + GNU_all_call_sites (flag_present) yes + sibling (ref4) [ 82] + [ 4e] formal_parameter abbrev: 3 + name (strp) "argc" + decl_file (data1) testfile-zdebug-rel.c (1) + decl_line (data1) 4 + type (ref4) [ 82] + location (sec_offset) location list [ 0] + [ 5d] formal_parameter abbrev: 4 + name (strp) "argv" + decl_file (data1) testfile-zdebug-rel.c (1) + decl_line (data1) 4 + type (ref4) [ 89] + location (exprloc) + [ 0] reg4 + [ 6a] variable abbrev: 5 + name (string) "a" + decl_file (data1) testfile-zdebug-rel.c (1) + decl_line (data1) 6 + type (ref4) [ 9c] + const_value (sdata) 18446744073709551607 (-9) + [ 74] variable abbrev: 6 + name (string) "b" + decl_file (data1) testfile-zdebug-rel.c (1) + decl_line (data1) 7 + type (ref4) [ 9c] + location (sec_offset) location list [ 4e] + [ 82] base_type abbrev: 7 + byte_size (data1) 4 + encoding (data1) signed (5) + name (string) "int" + [ 89] pointer_type abbrev: 8 + byte_size (data1) 8 + type (ref4) [ 8f] + [ 8f] pointer_type abbrev: 8 + byte_size (data1) 8 + type (ref4) [ 95] + [ 95] base_type abbrev: 9 + byte_size (data1) 1 + encoding (data1) unsigned_char (8) + name (strp) "char" + [ 9c] base_type abbrev: 9 + byte_size (data1) 8 + encoding (data1) unsigned (7) + name (strp) "long unsigned int" +EOF + +cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-ppc64.o + +cat info.out | sed -e "s/'.debug_info'/'.zdebug_info'/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-ppc64-g.o + +cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-ppc64-z.o + +cat > loc.out << \EOF + +DWARF section [ 9] '.debug_loc' at offset 0x1af: + + CU [ b] base: 000000000000000000 + [ 0] range 0, 4 + [ 0] reg3 + range 4, 14 + [ 0] breg3 -42 + [ 2] stack_value + range 14, 2c + [ 0] GNU_entry_value: + [ 0] reg3 + [ 3] stack_value + [ 4e] range 8, 18 + [ 0] reg3 +EOF + +cat loc.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-ppc64.o + +cat loc.out | sed -e "s/'.debug_loc' at offset 0x1af/'.zdebug_loc' at offset 0x15f/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-ppc64-g.o + +cat loc.out | sed -e "s/at offset 0x1af/at offset 0x177/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-ppc64-z.o + exit 0 diff --git a/tests/run-readelf-zdebug.sh b/tests/run-readelf-zdebug.sh index 878e0ba8..9de68deb 100755 --- a/tests/run-readelf-zdebug.sh +++ b/tests/run-readelf-zdebug.sh @@ -100,7 +100,7 @@ DWARF section [33] '.debug_macro' at offset 0xab5: Offset: 0x0 Version: 4 - Flag: 0x2 + Flag: 0x2 (debug_line_offset) Offset length: 4 .debug_line offset: 0x0 diff --git a/tests/run-strip-reloc.sh b/tests/run-strip-reloc.sh index 56280c65..e73c7414 100755 --- a/tests/run-strip-reloc.sh +++ b/tests/run-strip-reloc.sh @@ -32,6 +32,8 @@ runtest() { 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 || @@ -67,6 +69,15 @@ runtest() { 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. @@ -129,4 +140,14 @@ testrun ${abs_top_builddir}/src/elfcompress -o strip-compressed.o -t zlib \ 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/testfile-annobingroup-x86_64.o.bz2 b/tests/testfile-annobingroup-x86_64.o.bz2 Binary files differnew file mode 100644 index 00000000..ec389db2 --- /dev/null +++ b/tests/testfile-annobingroup-x86_64.o.bz2 diff --git a/tests/testfile-bpf-dis1.expect.bz2 b/tests/testfile-bpf-dis1.expect.bz2 Binary files differindex 21b55e94..61a8afb1 100644 --- a/tests/testfile-bpf-dis1.expect.bz2 +++ b/tests/testfile-bpf-dis1.expect.bz2 diff --git a/tests/testfile-debug-rel-ppc64-g.o.bz2 b/tests/testfile-debug-rel-ppc64-g.o.bz2 Binary files differnew file mode 100644 index 00000000..8c5ec99e --- /dev/null +++ b/tests/testfile-debug-rel-ppc64-g.o.bz2 diff --git a/tests/testfile-debug-rel-ppc64-z.o.bz2 b/tests/testfile-debug-rel-ppc64-z.o.bz2 Binary files differnew file mode 100644 index 00000000..df50465f --- /dev/null +++ b/tests/testfile-debug-rel-ppc64-z.o.bz2 diff --git a/tests/testfile-debug-rel-ppc64.o.bz2 b/tests/testfile-debug-rel-ppc64.o.bz2 Binary files differnew file mode 100644 index 00000000..8340d0ce --- /dev/null +++ b/tests/testfile-debug-rel-ppc64.o.bz2 diff --git a/tests/testfile-gnu-property-note.bz2 b/tests/testfile-gnu-property-note.bz2 Binary files differnew file mode 100755 index 00000000..c03bd9bb --- /dev/null +++ b/tests/testfile-gnu-property-note.bz2 diff --git a/tests/testfile-gnu-property-note.o.bz2 b/tests/testfile-gnu-property-note.o.bz2 Binary files differnew file mode 100644 index 00000000..5147c64f --- /dev/null +++ b/tests/testfile-gnu-property-note.o.bz2 diff --git a/tests/testfile-macros-object.o.bz2 b/tests/testfile-macros-object.o.bz2 Binary files differnew file mode 100644 index 00000000..de5fa1a0 --- /dev/null +++ b/tests/testfile-macros-object.o.bz2 |