diff options
author | Ulf Hermann <[email protected]> | 2019-01-09 13:57:31 +0100 |
---|---|---|
committer | Ulf Hermann <[email protected]> | 2019-01-09 13:57:31 +0100 |
commit | bc774f62436c4fe5082f0a70c6620fa0fdf823a9 (patch) | |
tree | 07963f45b2cdaccf12281712e2eef179dbce1fee | |
parent | 5da108a40dd24c7d3e4183ec9ae1904bb3f01575 (diff) | |
parent | 4ea9a2db164caadf836a65d5cdffb09a2d5a37ce (diff) |
Merge tag 'elfutils-0.175'
elfutils 0.175 release
Change-Id: I409f41767af349d0521351dd733879ad31c65aab
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 <[email protected]> + + * 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 <[email protected]> + + * ppc_initreg.c (ppc_set_initial_registers_tid): Use define instead of + const for size of dwarf_regs array. + +2018-10-02 Andreas Schwab <[email protected]> + + * 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 <[email protected]> * 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 <[email protected]>, 2015. This file is part of elfutils. Written by Ulrich Drepper <[email protected]>, 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 <[email protected]>, 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 <[email protected]> 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 <[email protected]> + + * bpf.h: Add BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE. + 2018-07-04 Ross Burton <[email protected]> * 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 <[email protected]> + + * disasm_cb.c (read_symtab_exec): Check sh_entsize is not zero. + 2018-07-04 Ross Burton <[email protected]> * 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 <[email protected]> + + * bpf_disasm.c (bpf_disasm): Recognize BPF_JLT, BPF_JLE, BPF_JSLT + and BPF_JSLE. + 2018-02-09 Joshua Watt <[email protected]> * 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 <[email protected]> + + * libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin. + +2018-10-29 Milian Wolff <[email protected]> + + * dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type != SHT_NOBITS. + 2018-09-13 Mark Wielaard <[email protected]> * 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 <[email protected]> +2018-10-21 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * dwelf_elf_gnu_build_id.c (find_elf_build_id): Check p_align to + set ELF type. + +2016-10-11 Akihiko Odaki <[email protected]> * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * dwfl_module_getdwarf.c (find_aux_sym): Check sh_entsize is not zero. + +2018-10-14 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * relocate.c (relocate): Handle ADD/SUB relocations. + 2018-09-13 Mark Wielaard <[email protected]> * 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 <[email protected]> + + * eblobjnotetypename.c (ebl_object_note_type_name): Don't update + w, t and len unnecessarily. + +2018-11-12 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> * 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 <[email protected]>, 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 <[email protected]>, 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 <[email protected]> + + * libebl.h (__elf32_msize): Mark with const attribute. + (__elf64_msize): Likewise. + +2018-11-13 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * elf_compress_gnu.c (elf_compress_gnu): Use elf_getdata. + +2018-11-12 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> * 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 <[email protected]>\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 <[email protected]>\n" "Language-Team: Japanese <[email protected]>\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 <[email protected]>\n" "Language-Team: Polish <[email protected]>\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 <[email protected]>\n" "Language-Team: Ukrainian <[email protected]>\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 <[email protected]> + + * 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 <[email protected]> + + * strip.c (remove_debug_relocations): Check if section is gnu + compressed and decompress and recompress it. + +2018-11-12 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * readelf.c (process_elf_file): Use dwelf_elf_begin to open pure_elf. + +2018-10-26 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * strip.c (handle_elf): Extract code to update shdrstrndx into... + (update_shdrstrndx): ... this new function. + +2018-10-24 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * unstrip.c (copy_elf): Add ELF_CHECK to make sure gelf_getehdr () + doesn't return NULL. + +2018-10-18 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * addr2line.c (print_addrsym): Use elf_getshdrstrndx instead of + Ehdr field. + +2018-10-24 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * readelf.c (print_debug_frame_section): Make sure readp is never + greater than cieend. + +2018-10-19 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * size.c (handle_ar): Only close elf if prefix was NULL. + +2018-10-18 Mark Wielaard <[email protected]> + + * arlib.c (arlib_add_symbols): Check that sh_entsize is not zero. + +2018-10-14 Mark Wielaard <[email protected]> + + * ar.c (do_oper_extract): Assume epoch if ar_date is bogus. + +2018-10-14 Mark Wielaard <[email protected]> + + * findtextrel.c (process_file): Check that sh_entsize is not zero. + +2018-10-13 Mark Wielaard <[email protected]> + + * readelf.c (print_debug_macro_section): Use elf_getdata. Print + decoded flag string. + +2018-10-19 Mark Wielaard <[email protected]> + + * unstrip.c (copy_elided_sections): Renumber group section indexes. + +2018-10-12 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * strip.c (handle_elf): Handle ADD/SUB relocation. + 2018-09-13 Mark Wielaard <[email protected]> * 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 <[email protected]>, 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 <[email protected]>, 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 <[email protected]>, 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 <[email protected]> + + * run-strip-reloc.sh: Also test testfile-debug-rel-ppc64-z.o + testfile-debug-rel-ppc64-g.o. + +2018-11-12 Mark Wielaard <[email protected]> + + * run-readelf-n.sh: Add testfile-annobingroup.o test. + +2018-11-11 Mark Wielaard <[email protected]> + + * run-readelf-n.sh: Fix NT_GNU_ABI_TAG type. Add testfile11 test + for NT_VERSION. + +2018-11-04 Mark Wielaard <[email protected]> + + * testfile-bpf-reloc.expect.bz2: Update with new expected jump + variants. + +2018-10-20 Mark Wielaard <[email protected]> + + * run-readelf-compressed.sh: New test. + * Makefile.am (TESTS): Add run-readelf-compressed.sh. + (EXTRA_DIST): Likewise. + +2018-11-09 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * run-strip-reloc.sh: Add a test for --reloc-debug-sections-only. + +2018-10-18 Mark Wielaard <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> * 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 |