From 3eaa4421b2422452b40547aab3e8da0749990ef9 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 11 Jun 2020 19:07:28 +0200 Subject: tests: Add GCOV flags when necessary. The nlist-test has a special compile rule, make sure it gets the GCOV flags when configuring with --enable-gcov. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/Makefile.am | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/ChangeLog b/tests/ChangeLog index 99f9da9d..e5d9196b 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-06-11 Mark Wielaard + + * Makefile.am (nlist-test): Add GCOV flags when necessary. + 2020-06-06 Mark Wielaard * testfilesyms32.bz2: New test file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 7db7db16..53dd70a7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -80,13 +80,19 @@ backtrace-child-biarch$(EXEEXT): backtrace-child.c $(AM_LDFLAGS) $(LDFLAGS) $(backtrace_child_LDFLAGS) \ -o $@ $< +if GCOV +GCOV_FLAGS=-fprofile-arcs -ftest-coverage +else +GCOV_FLAGS= +endif + # test_nlist checks its own symbol table, and expects various symbols # to be in the order as specified in the source file. Explicitly set # minimal CFLAGS test-nlist$(EXEEXT): test-nlist.c $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $< + $(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD) TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ update1 update2 update3 update4 \ -- cgit v1.2.1 From 9698a399292fbc5e07eac17217af2de8bf5cb4b0 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 14 Jun 2020 20:28:07 +0100 Subject: elfutils/configure.ac: use $READELF, not readelf Allow user to specify own readelf. Use detected readelf, not 'readelf'. Noticed when was building elfutils on tuple-prefixed toolchain: ``` checking whether the compiler generates build-ids... ./configure: line 5197: readelf: command not found no ``` Signed-off-by: Sergei Trofimovich --- ChangeLog | 4 ++++ configure.ac | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 763fa002..8e79ec5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-06-15 Sergei Trofimovich + + * configure.ac: Use READELF in build-id check. + 2020-06-11 Mark Wielaard * configure.ac: Set version to 0.180. diff --git a/configure.ac b/configure.ac index 74cc749d..8d3bcb7b 100644 --- a/configure.ac +++ b/configure.ac @@ -200,7 +200,7 @@ fi # We really want build-ids. Warn and force generating them if gcc was # configure without --enable-linker-build-id AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl -AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) +AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; $READELF -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) if test "$ac_cv_buildid" = "no"; then AC_MSG_WARN([compiler doesn't generate build-id by default]) LDFLAGS="$LDFLAGS -Wl,--build-id" -- cgit v1.2.1 From bca87ed8a200b8845e82b06fa94e69cd637dfea3 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 00:25:47 +0200 Subject: tests: Use #/usr/bin/env bash in scripts that use bash Some systems don't have bash in /bin. Signed-off-by: Mark Wielaard --- config/ChangeLog | 4 ++++ config/upload-release.sh | 2 +- tests/ChangeLog | 30 ++++++++++++++++++++++++++++++ tests/coverage.sh | 2 +- tests/run-ar.sh | 2 +- tests/run-backtrace-core-aarch64.sh | 2 +- tests/run-backtrace-core-i386.sh | 2 +- tests/run-backtrace-core-ppc.sh | 2 +- tests/run-backtrace-core-s390.sh | 2 +- tests/run-backtrace-core-s390x.sh | 2 +- tests/run-backtrace-core-sparc.sh | 2 +- tests/run-backtrace-core-x32.sh | 2 +- tests/run-backtrace-core-x86_64.sh | 2 +- tests/run-backtrace-data.sh | 2 +- tests/run-backtrace-demangle.sh | 2 +- tests/run-backtrace-dwarf.sh | 2 +- tests/run-backtrace-fp-core-aarch64.sh | 2 +- tests/run-backtrace-fp-core-i386.sh | 2 +- tests/run-backtrace-fp-core-ppc64le.sh | 2 +- tests/run-backtrace-fp-core-x86_64.sh | 2 +- tests/run-backtrace-native-biarch.sh | 2 +- tests/run-backtrace-native-core-biarch.sh | 2 +- tests/run-backtrace-native-core.sh | 2 +- tests/run-backtrace-native.sh | 2 +- tests/run-debuginfod-find.sh | 2 +- tests/run-deleted.sh | 2 +- tests/run-dwelf_elf_e_machine_string.sh | 2 +- tests/run-large-elf-file.sh | 2 +- tests/run-lfs-symbols.sh | 2 +- tests/run-linkmap-cut.sh | 2 +- 30 files changed, 62 insertions(+), 28 deletions(-) diff --git a/config/ChangeLog b/config/ChangeLog index 2ad93702..459f7528 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2020-06-16 Mark Wielaard + + * upload-release.sh: Use /usr/bin/env bash. + 2020-06-11 Mark Wielaard * elfutils.spec.in: Update for 0.189. diff --git a/config/upload-release.sh b/config/upload-release.sh index b52642ea..18c91c0e 100755 --- a/config/upload-release.sh +++ b/config/upload-release.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Must be run in the source directory. # Should have passed make distcheck. diff --git a/tests/ChangeLog b/tests/ChangeLog index e5d9196b..05220bd7 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,33 @@ +2020-06-16 Mark Wielaard + + * coverage.sh: Use /usr/bin/env bash. + * run-ar.sh: Likewise. + * run-backtrace-core-aarch64.sh: Likewise. + * run-backtrace-core-i386.sh: Likewise. + * run-backtrace-core-ppc.sh: Likewise. + * run-backtrace-core-s390.sh: Likewise. + * run-backtrace-core-s390x.sh: Likewise. + * run-backtrace-core-sparc.sh: Likewise. + * run-backtrace-core-x32.sh: Likewise. + * run-backtrace-core-x86_64.sh: Likewise. + * run-backtrace-data.sh: Likewise. + * run-backtrace-demangle.sh: Likewise. + * run-backtrace-dwarf.sh: Likewise. + * run-backtrace-fp-core-aarch64.sh: Likewise. + * run-backtrace-fp-core-i386.sh: Likewise. + * run-backtrace-fp-core-ppc64le.sh: Likewise. + * run-backtrace-fp-core-x86_64.sh: Likewise. + * run-backtrace-native-biarch.sh: Likewise. + * run-backtrace-native-core-biarch.sh: Likewise. + * run-backtrace-native-core.sh: Likewise. + * run-backtrace-native.sh: Likewise. + * run-debuginfod-find.sh: Likewise. + * run-deleted.sh: Likewise. + * run-dwelf_elf_e_machine_string.sh: Likewise. + * run-large-elf-file.sh: Likewise. + * run-lfs-symbols.sh: Likewise. + * run-linkmap-cut.sh: Likewise. + 2020-06-11 Mark Wielaard * Makefile.am (nlist-test): Add GCOV flags when necessary. diff --git a/tests/coverage.sh b/tests/coverage.sh index 01d292cc..448d43ba 100755 --- a/tests/coverage.sh +++ b/tests/coverage.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash if [ "x$1" = "x-v" ]; then verbose=yes diff --git a/tests/run-ar.sh b/tests/run-ar.sh index fb9394d5..656f1d1a 100755 --- a/tests/run-ar.sh +++ b/tests/run-ar.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2017 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-aarch64.sh b/tests/run-backtrace-core-aarch64.sh index a29a6613..41221d36 100755 --- a/tests/run-backtrace-core-aarch64.sh +++ b/tests/run-backtrace-core-aarch64.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-i386.sh b/tests/run-backtrace-core-i386.sh index 7294ec3d..c497f4aa 100755 --- a/tests/run-backtrace-core-i386.sh +++ b/tests/run-backtrace-core-i386.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-ppc.sh b/tests/run-backtrace-core-ppc.sh index 555ac352..1a51046c 100755 --- a/tests/run-backtrace-core-ppc.sh +++ b/tests/run-backtrace-core-ppc.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-s390.sh b/tests/run-backtrace-core-s390.sh index d3b6dc9c..ce3afb93 100755 --- a/tests/run-backtrace-core-s390.sh +++ b/tests/run-backtrace-core-s390.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-s390x.sh b/tests/run-backtrace-core-s390x.sh index c3e236d4..39450c14 100755 --- a/tests/run-backtrace-core-s390x.sh +++ b/tests/run-backtrace-core-s390x.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-sparc.sh b/tests/run-backtrace-core-sparc.sh index 60399baa..2f39e745 100755 --- a/tests/run-backtrace-core-sparc.sh +++ b/tests/run-backtrace-core-sparc.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2015 Oracle, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-x32.sh b/tests/run-backtrace-core-x32.sh index 2ad76bcf..e6144b35 100755 --- a/tests/run-backtrace-core-x32.sh +++ b/tests/run-backtrace-core-x32.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) H.J. Lu , 2015. # This file is part of elfutils. # diff --git a/tests/run-backtrace-core-x86_64.sh b/tests/run-backtrace-core-x86_64.sh index d00cd6d6..49248015 100755 --- a/tests/run-backtrace-core-x86_64.sh +++ b/tests/run-backtrace-core-x86_64.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-data.sh b/tests/run-backtrace-data.sh index 3062c304..f67a43ef 100755 --- a/tests/run-backtrace-data.sh +++ b/tests/run-backtrace-data.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-demangle.sh b/tests/run-backtrace-demangle.sh index 2d253240..403a4852 100755 --- a/tests/run-backtrace-demangle.sh +++ b/tests/run-backtrace-demangle.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2014, 2015 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-dwarf.sh b/tests/run-backtrace-dwarf.sh index 8834048a..7ed795d8 100755 --- a/tests/run-backtrace-dwarf.sh +++ b/tests/run-backtrace-dwarf.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-fp-core-aarch64.sh b/tests/run-backtrace-fp-core-aarch64.sh index fda88d37..397e3c3a 100755 --- a/tests/run-backtrace-fp-core-aarch64.sh +++ b/tests/run-backtrace-fp-core-aarch64.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2017 The Qt Company # This file is part of elfutils. # diff --git a/tests/run-backtrace-fp-core-i386.sh b/tests/run-backtrace-fp-core-i386.sh index c58ff532..43f859fe 100755 --- a/tests/run-backtrace-fp-core-i386.sh +++ b/tests/run-backtrace-fp-core-i386.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2017 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-fp-core-ppc64le.sh b/tests/run-backtrace-fp-core-ppc64le.sh index 326ca342..345b8dbe 100755 --- a/tests/run-backtrace-fp-core-ppc64le.sh +++ b/tests/run-backtrace-fp-core-ppc64le.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2017 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-fp-core-x86_64.sh b/tests/run-backtrace-fp-core-x86_64.sh index 348eb183..12f44c4b 100755 --- a/tests/run-backtrace-fp-core-x86_64.sh +++ b/tests/run-backtrace-fp-core-x86_64.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2017 The Qt Company # This file is part of elfutils. # diff --git a/tests/run-backtrace-native-biarch.sh b/tests/run-backtrace-native-biarch.sh index 2afe38a5..92869830 100755 --- a/tests/run-backtrace-native-biarch.sh +++ b/tests/run-backtrace-native-biarch.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013, 2015 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-native-core-biarch.sh b/tests/run-backtrace-native-core-biarch.sh index 02552ce9..23274257 100755 --- a/tests/run-backtrace-native-core-biarch.sh +++ b/tests/run-backtrace-native-core-biarch.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013, 2015 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-native-core.sh b/tests/run-backtrace-native-core.sh index cb025a56..db95895f 100755 --- a/tests/run-backtrace-native-core.sh +++ b/tests/run-backtrace-native-core.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-backtrace-native.sh b/tests/run-backtrace-native.sh index ddae345d..823c4117 100755 --- a/tests/run-backtrace-native.sh +++ b/tests/run-backtrace-native.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2013 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 7faad331..f0c77c51 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright (C) 2019-2020 Red Hat, Inc. # This file is part of elfutils. diff --git a/tests/run-deleted.sh b/tests/run-deleted.sh index 0f647621..a1ec1ecf 100755 --- a/tests/run-deleted.sh +++ b/tests/run-deleted.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2014 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-dwelf_elf_e_machine_string.sh b/tests/run-dwelf_elf_e_machine_string.sh index ba6d0e63..658f229f 100755 --- a/tests/run-dwelf_elf_e_machine_string.sh +++ b/tests/run-dwelf_elf_e_machine_string.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Test to make sure all EM values in elf.h are recognized # Copyright (C) 2019 Red Hat, Inc. # This file is part of elfutils. diff --git a/tests/run-large-elf-file.sh b/tests/run-large-elf-file.sh index cbe30615..667d24d8 100755 --- a/tests/run-large-elf-file.sh +++ b/tests/run-large-elf-file.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2019 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-lfs-symbols.sh b/tests/run-lfs-symbols.sh index b65391b6..7398e7f4 100755 --- a/tests/run-lfs-symbols.sh +++ b/tests/run-lfs-symbols.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2015 Red Hat, Inc. # This file is part of elfutils. # diff --git a/tests/run-linkmap-cut.sh b/tests/run-linkmap-cut.sh index de2bc7cc..053b96dc 100755 --- a/tests/run-linkmap-cut.sh +++ b/tests/run-linkmap-cut.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#! /usr/bin/env bash # Copyright (C) 2014 Red Hat, Inc. # This file is part of elfutils. # -- cgit v1.2.1 From 0d70fc0cb868ef95b25137d62bdaefa4a1462330 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 17:53:08 +0200 Subject: backends: Make the reloc_nametable zero element an one char array. We are using the reloc_nametable zero element as an char array. So make that element an actual array (we are actually after one of the next string arrays in the table). Signed-off-by: Mark Wielaard --- backends/ChangeLog | 6 ++++++ backends/common-reloc.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/backends/ChangeLog b/backends/ChangeLog index 7d3578b0..c85dfd2a 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,9 @@ +2020-06-16 Mark Wielard + + * common-reloc.c (reloc_nametable): Make zero a 1 char array. + Initialize it as an array { '\0' }. + (reloc_type_name): Access zero as an array. + 2020-06-10 Mark Wielard * aarch64_init.c (aarch64_init): Remove ehlen, return eh. diff --git a/backends/common-reloc.c b/backends/common-reloc.c index 096ed1c7..a91bc87d 100644 --- a/backends/common-reloc.c +++ b/backends/common-reloc.c @@ -45,14 +45,14 @@ static const struct EBLHOOK(reloc_nametable) { - char zero; + char zero[1]; #define RELOC_TYPE(type, uses) \ char name_##type[sizeof R_NAME (type)]; #include RELOC_TYPES #undef RELOC_TYPE } EBLHOOK(reloc_nametable) = { - '\0', + { '\0' }, #define RELOC_TYPE(type, uses) R_NAME (type), #include RELOC_TYPES #undef RELOC_TYPE @@ -92,7 +92,7 @@ EBLHOOK(reloc_type_name) (int reloc, #endif if (reloc >= 0 && reloc < nreloc && EBLHOOK(reloc_nameidx)[reloc] != 0) - return &reloc_namestr[EBLHOOK(reloc_nameidx)[reloc]]; + return reloc_namestr[EBLHOOK(reloc_nameidx)[reloc]]; return NULL; } -- cgit v1.2.1 From 8f206771085f780bca0c55ff809d7556e2abc120 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 18:05:59 +0200 Subject: libdw: Add missing FALLTHROUGH in execute_cfi. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 4 ++++ libdw/cfi.c | 1 + 2 files changed, 5 insertions(+) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index c75b0958..72cd5003 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,7 @@ +2020-06-16 Mark Wielaard + + * cfi.c (execute_cfi): Add missing FALLTHROUGH. + 2020-05-08 Mark Wielaard * libdw_visit_scopes.c (walk_children): Don't recurse into imported diff --git a/libdw/cfi.c b/libdw/cfi.c index 341e055b..6705294f 100644 --- a/libdw/cfi.c +++ b/libdw/cfi.c @@ -229,6 +229,7 @@ execute_cfi (Dwarf_CFI *cache, case DW_CFA_offset_extended: get_uleb128 (operand, program, end); cfi_assert (program < end); + FALLTHROUGH; case DW_CFA_offset + 0 ... DW_CFA_offset + CFI_PRIMARY_MAX: get_uleb128 (offset, program, end); offset *= cie->data_alignment_factor; -- cgit v1.2.1 From 3ba91e83e2b6b1e062e5c7ff8ab2d26e276f2987 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 18:14:37 +0200 Subject: elflint: Explicitly check and ignore elf_compress error. We just want to make sure that any section data is decompressed before use, if the section was already decompressed that is fine, so just ignore any errors. The make this more clear, explicitly check for errors, then don't do anything. This is better than silently ignoring since everywhere else in the code we do explicitly check for errors. Signed-off-by: Mark Wielaard --- src/ChangeLog | 5 +++++ src/elflint.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 512d7b54..e78bc358 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * elflint.c (check_elf_header): Explicitly check and ignore + any error from elf_compress. + 2020-06-07 Mark Wielaard * nm.c (sort_by_name_strtab): Replace by... diff --git a/src/elflint.c b/src/elflint.c index 72584de0..9cdcccca 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -467,7 +467,7 @@ invalid number of section header table entries\n")); break; /* If the section wasn't compressed this does nothing, but returns an error. We don't care. */ - elf_compress (scn, 0, 0); + if (elf_compress (scn, 0, 0) < 0) { ; } } if (scnt < shnum) ERROR (gettext ("Can only check %u headers, shnum was %u\n"), scnt, shnum); -- cgit v1.2.1 From 6e3693687850c538204f781e4e0fecbaa5adacdc Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 18:19:45 +0200 Subject: libdwfl: When we find a compressed image, use that, don't search for others We try to find a compressed vmlinux image ending with either .gz, bz2 or xz. Stop searching if we find one. Otherwise we will leak a file descriptor for an earlier one we opened. Signed-off-by: Mark Wielaard --- libdwfl/ChangeLog | 5 +++++ libdwfl/linux-kernel-modules.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 4f1ec9da..44b3ece7 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * linux-kernel-modules.c (try_kernel_name): Don't try other + compressed kernels if we already found an compressed image. + 2020-05-09 Mark Wielaard * find-debuginfo.c (dwfl_standard_find_debuginfo): Return failure diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 0434f1e5..84a05f28 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -128,7 +128,7 @@ try_kernel_name (Dwfl *dwfl, char **fname, bool try_debug) if (fd < 0) for (size_t i = 0; - i < sizeof vmlinux_suffixes / sizeof vmlinux_suffixes[0]; + i < sizeof vmlinux_suffixes / sizeof vmlinux_suffixes[0] && fd < 0; ++i) { char *zname; -- cgit v1.2.1 From af008675ed00222d2caafb47391c65abb575e1a4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 18:24:43 +0200 Subject: libdwfl: Flag an error if CIE return_address_register is invalid. If the CIE return address register is invalid (unknown) for the architecture immediately flag an error and return. Signed-off-by: Mark Wielaard --- libdwfl/ChangeLog | 5 +++++ libdwfl/frame_unwind.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 44b3ece7..5a3d566f 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * frame_unwind.c (handle_cfi): Flag an error if + return_address_register is invalid. + 2020-06-16 Mark Wielaard * linux-kernel-modules.c (try_kernel_name): Don't try other diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c index d7dfa5a9..bdceeb3e 100644 --- a/libdwfl/frame_unwind.c +++ b/libdwfl/frame_unwind.c @@ -562,7 +562,11 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI *cfi, Dwarf_Addr bias) /* The return register is special for setting the unwound->pc_state. */ unsigned ra = frame->fde->cie->return_address_register; bool ra_set = false; - ebl_dwarf_to_regno (ebl, &ra); + if (! ebl_dwarf_to_regno (ebl, &ra)) + { + __libdwfl_seterrno (DWFL_E_INVALID_REGISTER); + return; + } for (unsigned regno = 0; regno < nregs; regno++) { -- cgit v1.2.1 From 8a8c75c92cef4df7ec09b7b2c71408746ebe399b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 23:22:56 +0200 Subject: ar, ranlib: Call fchown before fchmod, explicitly check and ignore errors. In ar and ranlib we don't mind if the fchown call fails (it normally would, then the file simply gets own by the current user). We used to call fchown before fchmod, but that might ignore (or reset) some mode flags, so call fchown first, then try fchmod (like we already do in elfcompress). Also explicitly test and then ignore any errors for chown. We used to do some asm trick, but that confuses some static analyzers (and it is somewhat unreadable). Also split out the giant if statements to make them a little bit more understandable. Signed-off-by: Mark Wielaard --- src/ChangeLog | 8 ++++++++ src/ar.c | 65 +++++++++++++++++++++++++++++++++++------------------------ src/ranlib.c | 44 +++++++++++++++++++++++----------------- 3 files changed, 72 insertions(+), 45 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e78bc358..0129b8bf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2020-06-16 Mark Wielaard + + * ar.c (do_oper_extract): Split large if statement. Call fchown + before fchmod and explicitly ignore the return value. + (do_oper_delete): Likewise. + (do_oper_insert): Likewise. + * ranlib.c (handle_file): Likewise. + 2020-06-16 Mark Wielaard * elflint.c (check_elf_header): Explicitly check and ignore diff --git a/src/ar.c b/src/ar.c index d70f1f46..7d33d814 100644 --- a/src/ar.c +++ b/src/ar.c @@ -787,26 +787,30 @@ cannot rename temporary file to %.*s"), else rest_off = SARMAG; - if ((symtab.symsnamelen != 0 + if (symtab.symsnamelen != 0 && ((write_retry (newfd, symtab.symsoff, symtab.symsofflen) != (ssize_t) symtab.symsofflen) || (write_retry (newfd, symtab.symsname, symtab.symsnamelen) != (ssize_t) symtab.symsnamelen))) - /* Even if the original file had content before the - symbol table, we write it in the correct order. */ - || (index_off != SARMAG - && copy_content (elf, newfd, SARMAG, index_off - SARMAG)) - || copy_content (elf, newfd, rest_off, st.st_size - rest_off) - /* Set the mode of the new file to the same values the - original file has. */ - || fchmod (newfd, st.st_mode & ALLPERMS) != 0 - /* Never complain about fchown failing. */ - || (({asm ("" :: "r" (fchown (newfd, st.st_uid, - st.st_gid))); }), - close (newfd) != 0) - || (newfd = -1, rename (tmpfname, arfname) != 0)) + goto nonew_unlink; + /* Even if the original file had content before the + symbol table, we write it in the correct order. */ + if ((index_off != SARMAG + && copy_content (elf, newfd, SARMAG, index_off - SARMAG)) + || copy_content (elf, newfd, rest_off, st.st_size - rest_off)) + goto nonew_unlink; + + /* Never complain about fchown failing. */ + if (fchown (newfd, st.st_uid, st.st_gid) != 0) { ; } + /* Set the mode of the new file to the same values the + original file has. */ + if (fchmod (newfd, st.st_mode & ALLPERMS) != 0 + || close (newfd) != 0) + goto nonew_unlink; + newfd = -1; + if (rename (tmpfname, arfname) != 0) goto nonew_unlink; } } @@ -1052,12 +1056,15 @@ do_oper_delete (const char *arfname, char **argv, int argc, } /* Set the mode of the new file to the same values the original file - has. */ + has. Never complain about fchown failing. But do it before + setting the mode (which might be reset/ignored if the owner is + wrong. */ + if (fchown (newfd, st.st_uid, st.st_gid) != 0) { ; } if (fchmod (newfd, st.st_mode & ALLPERMS) != 0 - /* Never complain about fchown failing. */ - || (({asm ("" :: "r" (fchown (newfd, st.st_uid, st.st_gid))); }), - close (newfd) != 0) - || (newfd = -1, rename (tmpfname, arfname) != 0)) + || close (newfd) != 0) + goto nonew_unlink; + newfd = -1; + if (rename (tmpfname, arfname) != 0) goto nonew_unlink; errout: @@ -1534,13 +1541,19 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc, /* Set the mode of the new file to the same values the original file has. */ - if (fd != -1 - && (fchmod (newfd, st.st_mode & ALLPERMS) != 0 - /* Never complain about fchown failing. */ - || (({asm ("" :: "r" (fchown (newfd, st.st_uid, st.st_gid))); }), - close (newfd) != 0) - || (newfd = -1, rename (tmpfname, arfname) != 0))) - goto nonew_unlink; + if (fd != -1) + { + /* Never complain about fchown failing. But do it before + setting the modes, or they might be reset/ignored if the + owner is wrong. */ + if (fchown (newfd, st.st_uid, st.st_gid) != 0) { ; } + if (fchmod (newfd, st.st_mode & ALLPERMS) != 0 + || close (newfd) != 0) + goto nonew_unlink; + newfd = -1; + if (rename (tmpfname, arfname) != 0) + goto nonew_unlink; + } errout: for (int cnt = 0; cnt < argc; ++cnt) diff --git a/src/ranlib.c b/src/ranlib.c index b9083484..483a1b65 100644 --- a/src/ranlib.c +++ b/src/ranlib.c @@ -245,25 +245,31 @@ handle_file (const char *fname) else rest_off = SARMAG; - if ((symtab.symsnamelen != 0 - && ((write_retry (newfd, symtab.symsoff, - symtab.symsofflen) - != (ssize_t) symtab.symsofflen) - || (write_retry (newfd, symtab.symsname, - symtab.symsnamelen) - != (ssize_t) symtab.symsnamelen))) - /* Even if the original file had content before the - symbol table, we write it in the correct order. */ - || (index_off > SARMAG - && copy_content (arelf, newfd, SARMAG, index_off - SARMAG)) - || copy_content (arelf, newfd, rest_off, st.st_size - rest_off) - /* Set the mode of the new file to the same values the - original file has. */ - || fchmod (newfd, st.st_mode & ALLPERMS) != 0 - /* Never complain about fchown failing. */ - || (({asm ("" :: "r" (fchown (newfd, st.st_uid, st.st_gid))); }), - close (newfd) != 0) - || (newfd = -1, rename (tmpfname, fname) != 0)) + if (symtab.symsnamelen != 0 + && ((write_retry (newfd, symtab.symsoff, + symtab.symsofflen) + != (ssize_t) symtab.symsofflen) + || (write_retry (newfd, symtab.symsname, + symtab.symsnamelen) + != (ssize_t) symtab.symsnamelen))) + goto nonew_unlink; + + /* Even if the original file had content before the + symbol table, we write it in the correct order. */ + if ((index_off > SARMAG + && copy_content (arelf, newfd, SARMAG, index_off - SARMAG)) + || copy_content (arelf, newfd, rest_off, st.st_size - rest_off)) + goto nonew_unlink; + + /* Never complain about fchown failing. */ + if (fchown (newfd, st.st_uid, st.st_gid) != 0) { ; } + /* Set the mode of the new file to the same values the + original file has. */ + if (fchmod (newfd, st.st_mode & ALLPERMS) != 0 + || close (newfd) != 0) + goto nonew_unlink; + newfd = -1; + if (rename (tmpfname, fname) != 0) goto nonew_unlink; } } -- cgit v1.2.1 From a7c5e3004bb5ddc3759c5993334003a1bfb7e704 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 23:53:03 +0200 Subject: debuginfod: Handle not being able to fopen interval_path. Although we check for and/or create the interval_path right before, there is still a possibility that the fopen call fails. Handle that as if the file is unreadable. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index bc3bce32..66511a3f 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * debuginfod-client.c (debuginfod_clean_cache): Handle failing + fopen (interval_path). + 2020-03-29 Mark Wielaard * debuginfod-client.c (debuginfod_add_http_header): Check header diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index a7dfbfb1..0cfc6dfc 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -244,9 +244,14 @@ debuginfod_clean_cache(debuginfod_client *c, /* Check timestamp of interval file to see whether cleaning is necessary. */ time_t clean_interval; interval_file = fopen(interval_path, "r"); - if (fscanf(interval_file, "%ld", &clean_interval) != 1) + if (interval_file) + { + if (fscanf(interval_file, "%ld", &clean_interval) != 1) + clean_interval = cache_clean_default_interval_s; + fclose(interval_file); + } + else clean_interval = cache_clean_default_interval_s; - fclose(interval_file); if (time(NULL) - st.st_mtime < clean_interval) /* Interval has not passed, skip cleaning. */ -- cgit v1.2.1 From 6b677bf8e3b0b92fb0ddb2c6a408b0c7759acf1d Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 16 Jun 2020 23:56:45 +0200 Subject: debuginfod: Make sure suffix can place zero terminator when copying filename We need to make sure that we can always place a zero terminator at the end of suffix when we are copying the filename. So add one more char to the suffix array. And make sure that we can always add an extra escape character when we need to escape the current character. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 66511a3f..9ff2e111 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * debuginfod-client.c (debuginfod_query_server): Increase suffix + array and prepare having to escape 1 character with 2. + 2020-06-16 Mark Wielaard * debuginfod-client.c (debuginfod_clean_cache): Handle failing diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index 0cfc6dfc..e9c2ca83 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -474,7 +474,7 @@ debuginfod_query_server (debuginfod_client *c, char *target_cache_dir = NULL; char *target_cache_path = NULL; char *target_cache_tmppath = NULL; - char suffix[PATH_MAX]; + char suffix[PATH_MAX + 1]; /* +1 for zero terminator. */ char build_id_bytes[MAX_BUILD_ID_BYTES * 2 + 1]; int rc; @@ -511,7 +511,7 @@ debuginfod_query_server (debuginfod_client *c, /* copy the filename to suffix, s,/,#,g */ unsigned q = 0; - for (unsigned fi=0; q < PATH_MAX-1; fi++) + for (unsigned fi=0; q < PATH_MAX-2; fi++) /* -2, escape is 2 chars. */ switch (filename[fi]) { case '\0': -- cgit v1.2.1 From 90808ed559792a70b79c39183b88df09234866cf Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 17 Jun 2020 00:03:37 +0200 Subject: debuginfod: Fix build_id hexadecimal length check. When is debuginfod_query_server is given an hexadecimal string as build-id build_id_len will be zero. We were checking the size of the build_id_bytes destination string instead of the string length of build_id input string. Make sure the input string is not too big or strcpy might overwrite then end of the build_id_bytes array. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 9ff2e111..d6bbfac8 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * debuginfod-client.c (debuginfod_query_server): Replace sizeof + build_id_bytes check with strlen build_id check. + 2020-06-16 Mark Wielaard * debuginfod-client.c (debuginfod_query_server): Increase suffix diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index e9c2ca83..7b53cb31 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -496,7 +496,7 @@ debuginfod_query_server (debuginfod_client *c, /* Copy lowercase hex representation of build_id into buf. */ if ((build_id_len >= MAX_BUILD_ID_BYTES) || (build_id_len == 0 && - sizeof(build_id_bytes) > MAX_BUILD_ID_BYTES*2 + 1)) + strlen ((const char *) build_id) > MAX_BUILD_ID_BYTES*2)) return -EINVAL; if (build_id_len == 0) /* expect clean hexadecimal */ strcpy (build_id_bytes, (const char *) build_id); -- cgit v1.2.1 From d45cc8a04a2dab73e847808761c1b0eb861a7c24 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 17 Jun 2020 00:08:23 +0200 Subject: debuginfod: Make sure handle_data can be allocated and is always freed. When allocating handle_data we should check for out of memory failures. Also when the allocation has succeeded make sure we always clean up by going to out1 on any future errors. So move the curl_multi_init call earlier, because that goes to out0 on failure. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 22 ++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index d6bbfac8..2bbd5db5 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Mark Wielaard + + * debuginfod-client.c (debuginfod_query_server): Check malloc. + Move curl_multi_init call before handle_data malloc call. + 2020-06-16 Mark Wielaard * debuginfod-client.c (debuginfod_query_server): Replace sizeof diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index 7b53cb31..c2aa4e10 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -665,10 +665,24 @@ debuginfod_query_server (debuginfod_client *c, && (i == 0 || server_urls[i - 1] == url_delim_char)) num_urls++; + CURLM *curlm = curl_multi_init(); + if (curlm == NULL) + { + rc = -ENETUNREACH; + goto out0; + } + /* Tracks which handle should write to fd. Set to the first handle that is ready to write the target file to the cache. */ CURL *target_handle = NULL; struct handle_data *data = malloc(sizeof(struct handle_data) * num_urls); + if (data == NULL) + { + rc = -ENOMEM; + goto out0; + } + + /* thereafter, goto out1 on error. */ /* Initalize handle_data with default values. */ for (int i = 0; i < num_urls; i++) @@ -677,14 +691,6 @@ debuginfod_query_server (debuginfod_client *c, data[i].fd = -1; } - CURLM *curlm = curl_multi_init(); - if (curlm == NULL) - { - rc = -ENETUNREACH; - goto out0; - } - /* thereafter, goto out1 on error. */ - char *strtok_saveptr; char *server_url = strtok_r(server_urls, url_delim, &strtok_saveptr); -- cgit v1.2.1 From eff30a6dabe52ac77ee5c6a0d31853fc8e3aeadb Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 28 Jun 2020 15:27:25 +0200 Subject: libdwfl: read_address should use increasing address in intuit_kernel_bounds In kernels from 4.14 up to 4.19 in /proc/kallsyms there are special __entry_SYSCALL_64_trampoline symbols. The problem is that they come after the last kernel address, but before the module addresses. And they are (much) smaller than the start address we found. This confuses intuit_kernel_bounds and makes it fail. Make sure to check read_address returns an increasing address when searching for the end. https://sourceware.org/bugzilla/show_bug.cgi?id=26177 Reported-by: Vitaly Chikunov Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 5 +++++ libdwfl/linux-kernel-modules.c | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 72cd5003..c11df151 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,8 @@ +2020-06-28 Mark Wielaard + + * linux-kernel-modules.c (intuit_kernel_bounds): Check read_address + returns an increasing address when searching for end. + 2020-06-16 Mark Wielaard * cfi.c (execute_cfi): Add missing FALLTHROUGH. diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 84a05f28..548cb56f 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -538,10 +538,14 @@ intuit_kernel_bounds (Dwarf_Addr *start, Dwarf_Addr *end, Dwarf_Addr *notes) if (result == 0) { + Dwarf_Addr addr; *end = *start; - while (read_address (&state, end)) - if (*notes == 0 && !strcmp (state.p, "__start_notes\n")) - *notes = *end; + while (read_address (&state, &addr) && addr >= *end) + { + *end = addr; + if (*notes == 0 && !strcmp (state.p, "__start_notes\n")) + *notes = *end; + } Dwarf_Addr round_kernel = sysconf (_SC_PAGESIZE); *start &= -(Dwarf_Addr) round_kernel; -- cgit v1.2.1 From acb453851c9e6c46531b70fda7396885c0e7e1db Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 2 Jul 2020 14:52:48 +0000 Subject: PR26195: adapt debuginfod to API change in libmicrohttpd-0.9.71 To make our code build with -Werror as well as against older libmicrohttpd, we must conditionalize the data type (int vs. enum) returned by callbacks and some mhd functions. Signed-off-by: Frank Ch. Eigler --- debuginfod/debuginfod.cxx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 76f1fa52..56210302 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -92,6 +92,14 @@ using namespace std; #include #include + +#if MHD_VERSION >= 0x00097002 +// libmicrohttpd 0.9.71 broke API +#define MHD_RESULT enum MHD_Result +#else +#define MHD_RESULT int +#endif + #include #include #include @@ -519,12 +527,12 @@ struct reportable_exception void report(ostream& o) const; // defined under obatched() class below - int mhd_send_response(MHD_Connection* c) const { + MHD_RESULT mhd_send_response(MHD_Connection* c) const { MHD_Response* r = MHD_create_response_from_buffer (message.size(), (void*) message.c_str(), MHD_RESPMEM_MUST_COPY); MHD_add_response_header (r, "Content-Type", "text/plain"); - int rc = MHD_queue_response (c, code, r); + MHD_RESULT rc = MHD_queue_response (c, code, r); MHD_destroy_response (r); return rc; } @@ -1723,7 +1731,7 @@ handle_metrics (off_t* size) /* libmicrohttpd callback */ -static int +static MHD_RESULT handler_cb (void * /*cls*/, struct MHD_Connection *connection, const char *url, @@ -1736,7 +1744,11 @@ handler_cb (void * /*cls*/, struct MHD_Response *r = NULL; string url_copy = url; +#if MHD_VERSION >= 0x00097002 + enum MHD_Result rc; +#else int rc = MHD_NO; // mhd +#endif int http_code = 500; off_t http_size = -1; struct timeval tv_start, tv_end; -- cgit v1.2.1 From f7f0cdc59a13780938ae3f578955737a75e60ea9 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 19 Jun 2020 19:41:08 +0200 Subject: debuginfod: Add --disable-libdebuginfod and --enable-libdebuginfod=dummy. Make it possible to build just the debuginfod client or to create a dummy libdebuginfod that doesn't link against libcurl. The dummy library can be used for bootstrapping. For testing purposes you can also build debuginfod against the dummy libdebuginfod but then the debuginfod server will not be able to do delegation. Signed-off-by: Mark Wielaard --- ChangeLog | 6 ++++++ Makefile.am | 6 +----- configure.ac | 34 ++++++++++++++++++++++++++++------ debuginfod/ChangeLog | 17 +++++++++++++++++ debuginfod/Makefile.am | 32 ++++++++++++++++++++++++++++++-- debuginfod/debuginfod-client.c | 28 ++++++++++++++++++++++++++-- doc/ChangeLog | 4 ++++ doc/Makefile.am | 4 +++- tests/ChangeLog | 5 +++++ tests/Makefile.am | 3 +++ 10 files changed, 123 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8e79ec5c..99f50492 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2020-06-19 Mark Wielaard + + * Makefile.am (SUBDIRS): Always add debuginfod. + * configure.ac (debuginfod): Split off... + (libdebuginfod): ... this. Also add DUMME_DEBUGINFOD. + 2020-06-15 Sergei Trofimovich * configure.ac: Use READELF in build-id check. diff --git a/Makefile.am b/Makefile.am index bd8926b5..f68f0966 100644 --- a/Makefile.am +++ b/Makefile.am @@ -27,11 +27,7 @@ AM_MAKEFLAGS = --no-print-directory pkginclude_HEADERS = version.h SUBDIRS = config m4 lib libelf libcpu backends libebl libdwelf libdwfl libdw \ - libasm src po doc tests - -if DEBUGINFOD -SUBDIRS += debuginfod -endif + libasm debuginfod src po doc tests EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ COPYING COPYING-GPLV2 COPYING-LGPLV3 diff --git a/configure.ac b/configure.ac index 8d3bcb7b..6f04d269 100644 --- a/configure.ac +++ b/configure.ac @@ -676,19 +676,40 @@ if test "$HAVE_BUNZIP2" = "no"; then AC_MSG_WARN([No bunzip2, needed to run make check]) fi -# Look for libmicrohttpd, libcurl, libarchive, sqlite for debuginfo server -# minimum versions as per rhel7. Single --enable-* option arranges to build -# both client and server. -AC_ARG_ENABLE([debuginfod],AC_HELP_STRING([--enable-debuginfod], [Build debuginfod server and client])) +# Look for libcurl for libdebuginfod minimum version as per rhel7. +AC_ARG_ENABLE([libdebuginfod],AC_HELP_STRING([--enable-libdebuginfod], [Build debuginfod client library (can be =dummy)])) +AS_IF([test "x$enable_libdebuginfod" != "xno"], [ + if test "x$enable_libdebuginfod" != "xdummy"; then + AC_MSG_NOTICE([checking libdebuginfod dependencies, --disable-libdebuginfod or --enable-libdebuginfo=dummy to skip]) + enable_libdebuginfod=yes # presume success + PKG_PROG_PKG_CONFIG + PKG_CHECK_MODULES([libcurl],[libcurl >= 7.29.0],[],[enable_libdebuginfod=no]) + if test "x$enable_libdebuginfod" = "xno"; then + AC_MSG_ERROR([dependencies not found, use --disable-libdebuginfod to disable or --enable-libdebuginfod=dummy to build a (bootstrap) dummy library.]) + fi + else + AC_MSG_NOTICE([building (bootstrap) dummy libdebuginfo library]) + fi +]) + +AS_IF([test "x$enable_libdebuginfod" = "xdummy"],AC_DEFINE([DUMMY_LIBDEBUGINFOD],[1],[Build dummy libdebuginfod])) +AM_CONDITIONAL([LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xyes" || test "x$enable_libdebuginfod" = "xdummy"]) +AM_CONDITIONAL([DUMMY_LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xdummy"]) + +# Look for libmicrohttpd, libarchive, sqlite for debuginfo server +# minimum versions as per rhel7. +AC_ARG_ENABLE([debuginfod],AC_HELP_STRING([--enable-debuginfod], [Build debuginfod server])) AC_PROG_CXX AS_IF([test "x$enable_debuginfod" != "xno"], [ AC_MSG_NOTICE([checking debuginfod C++11 support, --disable-debuginfod to skip]) AX_CXX_COMPILE_STDCXX(11, noext, mandatory) AC_MSG_NOTICE([checking debuginfod dependencies, --disable-debuginfod to skip]) + if test "x$enable_libdebuginfod" = "xno"; then + AC_MSG_ERROR([need libdebuginfod (or dummy), use --disable-debuginfod to disable.]) + fi enable_debuginfod=yes # presume success PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33],[],[enable_debuginfod=no]) - PKG_CHECK_MODULES([libcurl],[libcurl >= 7.29.0],[],[enable_debuginfod=no]) PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17],[],[enable_debuginfod=no]) PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2],[],[enable_debuginfod=no]) if test "x$enable_debuginfod" = "xno"; then @@ -729,7 +750,8 @@ AC_MSG_NOTICE([ Deterministic archives by default : ${default_ar_deterministic} Native language support : ${USE_NLS} Extra Valgrind annotations : ${use_vg_annotations} - Debuginfod client/server support : ${enable_debuginfod} + libdebuginfod client support : ${enable_libdebuginfod} + Debuginfod server support : ${enable_debuginfod} EXTRA TEST FEATURES (used with make check) have bunzip2 installed (required) : ${HAVE_BUNZIP2} diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 2bbd5db5..372173e7 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,20 @@ +2020-06-19 Mark Wielaard + + * Makefile.am (bin_PROGRAMS): Guard with DEBUGINFOD and + LIBDEBUGINFOD. + (debuginfod_LDADD): Remove libcurl. + (libdebuginfod): When static and DUMMY_LIBDEBUGINFO remove libcurl. + (noinst_LIBRARIES): Guard with LIBDEBUGINFOD. + (AM_CPPFLAGS): Add -Wno-unused-parameter when DUMMY_LIBDEBUGINFOD. + (pkginclude_headers): Guard with LIBDEBUGINFOD + (libdebuginfod_so_LIBS): Likewise. + (+libdebuginfod_so_LDLIBS): Likewise. + (install): Likewise. + (uninstall): Likewise. + * debuginfod-client.c: Include dummy functions when + DUMMY_LIBDEBUGINFOD. + * debuginfod.cxx: Remove curl.h include. + 2020-06-16 Mark Wielaard * debuginfod-client.c (debuginfod_query_server): Check malloc. diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am index 51965f65..2e8a343c 100644 --- a/debuginfod/Makefile.am +++ b/debuginfod/Makefile.am @@ -45,8 +45,12 @@ if BUILD_STATIC libasm = ../libasm/libasm.a libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread libelf = ../libelf/libelf.a -lz +if DUMMY_LIBDEBUGINFOD libdebuginfod = ./libdebuginfod.a $(libcurl_LIBS) else +libdebuginfod = ./libdebuginfod.a +endif +else libasm = ../libasm/libasm.so libdw = ../libdw/libdw.so libelf = ../libelf/libelf.so @@ -57,24 +61,45 @@ libeu = ../lib/libeu.a AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:. -bin_PROGRAMS = debuginfod debuginfod-find +bin_PROGRAMS = +if DEBUGINFOD +bin_PROGRAMS += debuginfod +endif + +if LIBDEBUGINFOD +bin_PROGRAMS += debuginfod-find +endif + debuginfod_SOURCES = debuginfod.cxx -debuginfod_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) $(libmicrohttpd_LIBS) $(libcurl_LIBS) $(sqlite3_LIBS) $(libarchive_LIBS) -lpthread -ldl +debuginfod_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) $(libmicrohttpd_LIBS) $(sqlite3_LIBS) $(libarchive_LIBS) -lpthread -ldl debuginfod_find_SOURCES = debuginfod-find.c debuginfod_find_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) +if LIBDEBUGINFOD noinst_LIBRARIES = libdebuginfod.a noinst_LIBRARIES += libdebuginfod_pic.a +endif libdebuginfod_a_SOURCES = debuginfod-client.c libdebuginfod_pic_a_SOURCES = debuginfod-client.c am_libdebuginfod_pic_a_OBJECTS = $(libdebuginfod_a_SOURCES:.c=.os) +if DUMMY_LIBDEBUGINFOD +AM_CPPFLAGS += -Wno-unused-parameter +endif + +if LIBDEBUGINFOD pkginclude_HEADERS = debuginfod.h +endif +if LIBDEBUGINFOD libdebuginfod_so_LIBS = libdebuginfod_pic.a +if DUMMY_LIBDEBUGINFOD +libdebuginfod_so_LDLIBS = +else libdebuginfod_so_LDLIBS = $(libcurl_LIBS) +endif libdebuginfod.so$(EXEEXT): $(srcdir)/libdebuginfod.map $(libdebuginfod_so_LIBS) $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \ -Wl,--soname,$@.$(VERSION) \ @@ -83,7 +108,9 @@ libdebuginfod.so$(EXEEXT): $(srcdir)/libdebuginfod.map $(libdebuginfod_so_LIBS) $(libdebuginfod_so_LDLIBS) @$(textrel_check) $(AM_V_at)ln -fs $@ $@.$(VERSION) +endif +if LIBDEBUGINFOD install: install-am libdebuginfod.so $(mkinstalldirs) $(DESTDIR)$(libdir) $(INSTALL_PROGRAM) libdebuginfod.so $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so @@ -95,6 +122,7 @@ uninstall: uninstall-am rm -f $(DESTDIR)$(libdir)/libdebuginfod.so.$(VERSION) rm -f $(DESTDIR)$(libdir)/libdebuginfod.so rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils +endif EXTRA_DIST = libdebuginfod.map MOSTLYCLEANFILES = $(am_libdebuginfod_pic_a_OBJECTS) libdebuginfod.so.$(VERSION) diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index c2aa4e10..c2e43f74 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -41,13 +41,35 @@ #include "config.h" #include "debuginfod.h" #include "system.h" +#include +#include + +/* We might be building a bootstrap dummy library, which is really simple. */ +#ifdef DUMMY_LIBDEBUGINFOD + +debuginfod_client *debuginfod_begin (void) { errno = ENOSYS; return NULL; } +int debuginfod_find_debuginfo (debuginfod_client *c, const unsigned char *b, + int s, char **p) { return -ENOSYS; } +int debuginfod_find_executable (debuginfod_client *c, const unsigned char *b, + int s, char **p) { return -ENOSYS; } +int debuginfod_find_source (debuginfod_client *c, const unsigned char *b, + int s, const char *f, char **p) { return -ENOSYS; } +void debuginfod_set_progressfn(debuginfod_client *c, + debuginfod_progressfn_t fn) { } +void debuginfod_set_user_data (debuginfod_client *c, void *d) { } +void* debuginfod_get_user_data (debuginfod_client *c) { return NULL; } +const char* debuginfod_get_url (debuginfod_client *c) { return NULL; } +int debuginfod_add_http_header (debuginfod_client *c, + const char *h) { return -ENOSYS; } +void debuginfod_end (debuginfod_client *c) { } + +#else /* DUMMY_LIBDEBUGINFOD */ + #include #include #include -#include #include #include -#include #include #include #include @@ -1090,3 +1112,5 @@ __attribute__((destructor)) attribute_hidden void libdebuginfod_dtor(void) /* ... so don't do this: */ /* curl_global_cleanup(); */ } + +#endif /* DUMMY_LIBDEBUGINFOD */ diff --git a/doc/ChangeLog b/doc/ChangeLog index f598b7f2..e0485004 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2020-06-19 Mark Wielaard + + * Makefile.am: Guard all client manpages with LIBDEBUGINFOD. + 2020-03-29 Mark Wielaard * debuginfod_find_debuginfo.3 (HTTP HEADER): Document the expected diff --git a/doc/Makefile.am b/doc/Makefile.am index f0c7e55d..ef66fb88 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -24,6 +24,9 @@ notrans_dist_man1_MANS= if DEBUGINFOD notrans_dist_man8_MANS += debuginfod.8 +endif + +if LIBDEBUGINFOD notrans_dist_man3_MANS += debuginfod_add_http_header.3 notrans_dist_man3_MANS += debuginfod_begin.3 notrans_dist_man3_MANS += debuginfod_end.3 @@ -36,4 +39,3 @@ notrans_dist_man3_MANS += debuginfod_set_progressfn.3 notrans_dist_man3_MANS += debuginfod_set_user_data.3 notrans_dist_man1_MANS += debuginfod-find.1 endif - diff --git a/tests/ChangeLog b/tests/ChangeLog index 05220bd7..b27037ee 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2020-06-19 Mark Wielaard + + * Makefile.am (TESTS): Don't add run-debuginfod-find.sh when + DUMMY_LIBDEBUGINFOD. + 2020-06-16 Mark Wielaard * coverage.sh: Use /usr/bin/env bash. diff --git a/tests/Makefile.am b/tests/Makefile.am index 53dd70a7..5ac805c5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -210,8 +210,11 @@ endif if DEBUGINFOD check_PROGRAMS += debuginfod_build_id_find +# With the dummy delegation doesn't work +if !DUMMY_LIBDEBUGINFOD TESTS += run-debuginfod-find.sh endif +endif EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-show-die-info.sh run-get-files.sh run-get-lines.sh \ -- cgit v1.2.1 From 8de6f9af46f12fe3b2a0871523f6df13c4b39e34 Mon Sep 17 00:00:00 2001 From: Alice Zhang Date: Fri, 3 Jul 2020 13:37:34 -0400 Subject: debuginfod: DEBUGINFOD_URLS should accept scheme-free urls Check scheme instead of effective url so that user may abbreviate DEBUGINFOD_URL. Add one test for scheme free http url. Notice that libcurl does not provide an almighty scheme free url support, /path/to/something without FILE:// can not be recognized in most circumstances, therefore for the neatness of our code structure, DEBUGINFOD_ URL of scheme "FILE" must be input as URI. Signed-off-by: Alice Zhang --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 29 +++++++++++++++++++++++++++-- tests/ChangeLog | 4 ++++ tests/run-debuginfod-find.sh | 6 ++++++ 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 372173e7..db8a76a7 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-07-03 Alice Zhang + + * debuginfod-client.c (debuginfod_query_server): Use strncasecmp + to compare effective_url. Try CURLINFO_SCHEME as fallback. + 2020-06-19 Mark Wielaard * Makefile.am (bin_PROGRAMS): Guard with DEBUGINFOD and diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index c2e43f74..18e7b85f 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -899,19 +899,44 @@ debuginfod_query_server (debuginfod_client *c, &resp_code); if(ok1 == CURLE_OK && ok2 == CURLE_OK && effective_url) { - if (strncmp (effective_url, "http", 4) == 0) + if (strncasecmp (effective_url, "HTTP", 4) == 0) if (resp_code == 200) { verified_handle = msg->easy_handle; break; } - if (strncmp (effective_url, "file", 4) == 0) + if (strncasecmp (effective_url, "FILE", 4) == 0) if (resp_code == 0) { verified_handle = msg->easy_handle; break; } } + /* - libcurl since 7.52.0 version start to support + CURLINFO_SCHEME; + - before 7.61.0, effective_url would give us a + url with upper case SCHEME added in the front; + - effective_url between 7.61 and 7.69 can be lack + of scheme if the original url doesn't include one; + - since version 7.69 effective_url will be provide + a scheme in lower case. */ + #if LIBCURL_VERSION_NUM >= 0x073d00 /* 7.61.0 */ + #if LIBCURL_VERSION_NUM <= 0x074500 /* 7.69.0 */ + char *scheme = NULL; + CURLcode ok3 = curl_easy_getinfo (target_handle, + CURLINFO_SCHEME, + &scheme); + if(ok3 == CURLE_OK && scheme) + { + if (strncmp (scheme, "HTTP", 4) == 0) + if (resp_code == 200) + { + verified_handle = msg->easy_handle; + break; + } + } + #endif + #endif } } } diff --git a/tests/ChangeLog b/tests/ChangeLog index b27037ee..7cb4123a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-07-03 Alice Zhang + + * run-debuginfod-find.sh: Add scheme free url testcase. + 2020-06-19 Mark Wielaard * Makefile.am (TESTS): Don't add run-debuginfod-find.sh when diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index f0c77c51..730bb0e1 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -413,6 +413,12 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && fal export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2 testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID +# test again with scheme free url +export DEBUGINFOD_URLS=127.0.0.1:$PORT1 +rm -rf $DEBUGINFOD_CACHE_PATH +testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true +export DEBUGINFOD_URLS=127.0.0.1:$PORT2 +testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID # test parallel queries in client export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache3 -- cgit v1.2.1 From f9915d3f1947e6bcf9102329500626bd8e74bdd3 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 5 Jul 2020 00:13:35 +0200 Subject: libasm: Make libasm.h include work without relying on any other include. The public headers should be usable when includes as is. libasm.h wasn't because it was using gelf.h data structures without include gelf.h. Include it now in libasm.h. Add a new testcase run-test-includes.sh to test all public headers can be included "standalone". https://sourceware.org/bugzilla/show_bug.cgi?id=26176 Signed-off-by: Mark Wielaard --- libasm/ChangeLog | 4 ++++ libasm/libasm.h | 1 + tests/ChangeLog | 6 ++++++ tests/Makefile.am | 5 +++-- tests/run-test-includes.sh | 26 ++++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100755 tests/run-test-includes.sh diff --git a/libasm/ChangeLog b/libasm/ChangeLog index 2c092abe..8ed7fc20 100644 --- a/libasm/ChangeLog +++ b/libasm/ChangeLog @@ -1,3 +1,7 @@ +2020-07-05 Mark Wielaard + + * libasm.h: Include gelf.h. + 2020-04-25 Mark Wielaard * asm_end.c (text_end): Call fflush instead of fclose. diff --git a/libasm/libasm.h b/libasm/libasm.h index a45c9fa3..b67b77dc 100644 --- a/libasm/libasm.h +++ b/libasm/libasm.h @@ -31,6 +31,7 @@ #include #include +#include typedef struct ebl Ebl; diff --git a/tests/ChangeLog b/tests/ChangeLog index 7cb4123a..b5d332a0 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-07-05 Mark Wielaard + + * run-test-includes.sh: New test. + * Makefile.am (TESTS): Add run-test-includes.sh. + (EXTRA_DIST): Likewise. + 2020-07-03 Alice Zhang * run-debuginfod-find.sh: Add scheme free url testcase. diff --git a/tests/Makefile.am b/tests/Makefile.am index 5ac805c5..d30b8218 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -184,7 +184,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-elfclassify.sh run-elfclassify-self.sh \ run-disasm-riscv64.sh \ run-pt_gnu_prop-tests.sh \ - run-getphdrnum.sh + run-getphdrnum.sh run-test-includes.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -505,7 +505,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ debuginfod-tars/pacman-sources/hello.c \ run-pt_gnu_prop-tests.sh \ testfile_pt_gnu_prop.bz2 testfile_pt_gnu_prop32.bz2 \ - run-getphdrnum.sh testfile-phdrs.elf.bz2 + run-getphdrnum.sh testfile-phdrs.elf.bz2 \ + run-test-includes.sh if USE_VALGRIND diff --git a/tests/run-test-includes.sh b/tests/run-test-includes.sh new file mode 100755 index 00000000..b0ccdd9b --- /dev/null +++ b/tests/run-test-includes.sh @@ -0,0 +1,26 @@ +# All public include headers should be usable "standalone". + +. $srcdir/test-subr.sh + +echo '#include "libelf.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf -xc - +echo '#include "gelf.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf -xc - + +echo '#include "dwarf.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf \ + -I ${abs_srcdir}/../libdw -xc - +echo '#include "libdw.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf \ + -I ${abs_srcdir}/../libdw -xc - + +echo '#include "libdwfl.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf \ + -I ${abs_srcdir}/../libdw -I ${abs_srcdir}/../libdwfl -xc - +echo '#include "libdwelf.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf \ + -I ${abs_srcdir}/../libdw -I ${abs_srcdir}/../libdwelf -xc - + +echo '#include "libasm.h"' \ + | gcc -c -o /dev/null -I ${abs_srcdir}/../libelf \ + -I ${abs_srcdir}/../libasm -xc - -- cgit v1.2.1 From 49c200b7c7731d1ca12b465c20afa4c1475e671c Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 5 Jul 2020 00:33:38 +0200 Subject: libdwfl, src: Replace some asserts with proper check or error messages. library code really shouldn't assert and for utilities a proper error message is better than crashing with an assert. https://sourceware.org/bugzilla/show_bug.cgi?id=26176 Signed-off-by: Mark Wielaard --- libdwfl/ChangeLog | 14 ++++++++++++++ libdwfl/argp-std.c | 3 ++- libdwfl/dwfl_build_id_find_elf.c | 7 +++++-- libdwfl/frame_unwind.c | 3 ++- libdwfl/linux-core-attach.c | 7 ++++--- libdwfl/linux-pid-attach.c | 6 +++++- src/ChangeLog | 7 +++++++ src/stack.c | 7 ++++++- src/unstrip.c | 9 +++++---- 9 files changed, 50 insertions(+), 13 deletions(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 5a3d566f..e59efd77 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,17 @@ +2020-07-05 Mark Wielaard + + * argp-std.c (parse_opt): Don't assert, but call fail when + dwfl_report_end fails. + * dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Don't + assert, but goto bad_id when snprintf fails. + * frame_unwind.c (__libdwfl_frame_unwind): Don't assert, but + return when dwfl_frame_pc fails. + * linux-core-attach.c (core_set_initial_registers): Don't assert, + but return false when gelf_getnote fails or the core note is not + as expected. + * linux-pid-attach.c (dwfl_linux_proc_attach): Don't assert, but + goto fail when snprintf fails. + 2020-06-16 Mark Wielaard * frame_unwind.c (handle_cfi): Flag an error if diff --git a/libdwfl/argp-std.c b/libdwfl/argp-std.c index 8ee91587..2aa1b5e0 100644 --- a/libdwfl/argp-std.c +++ b/libdwfl/argp-std.c @@ -342,7 +342,8 @@ parse_opt (int key, char *arg, struct argp_state *state) argp_parse. */ int result = INTUSE(dwfl_report_end) (dwfl, NULL, NULL); - assert (result == 0); + if (result != 0) + return fail (dwfl, -1, arg, state); /* Update the input all along, so a parent parser can see it. As we free OPT the update below will be no longer active. */ diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c index 4e56143f..f685c979 100644 --- a/libdwfl/dwfl_build_id_find_elf.c +++ b/libdwfl/dwfl_build_id_find_elf.c @@ -48,6 +48,7 @@ __libdwfl_open_by_build_id (Dwfl_Module *mod, bool debug, char **file_name, #define MAX_BUILD_ID_BYTES 64 if (id_len < MIN_BUILD_ID_BYTES || id_len > MAX_BUILD_ID_BYTES) { + bad_id: __libdwfl_seterrno (DWFL_E_WRONG_ID_ELF); return -1; } @@ -59,12 +60,14 @@ __libdwfl_open_by_build_id (Dwfl_Module *mod, bool debug, char **file_name, strcpy (id_name, "/.build-id/"); int n = snprintf (&id_name[sizeof "/.build-id/" - 1], 4, "%02" PRIx8 "/", (uint8_t) id[0]); - assert (n == 3); + if (n != 3) + goto bad_id;; for (size_t i = 1; i < id_len; ++i) { n = snprintf (&id_name[sizeof "/.build-id/" - 1 + 3 + (i - 1) * 2], 3, "%02" PRIx8, (uint8_t) id[i]); - assert (n == 2); + if (n != 2) + goto bad_id; } if (debug) strcpy (&id_name[sizeof "/.build-id/" - 1 + 3 + (id_len - 1) * 2], diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c index bdceeb3e..9ac33833 100644 --- a/libdwfl/frame_unwind.c +++ b/libdwfl/frame_unwind.c @@ -723,7 +723,8 @@ __libdwfl_frame_unwind (Dwfl_Frame *state) which would deadlock us. */ Dwarf_Addr pc; bool ok = INTUSE(dwfl_frame_pc) (state, &pc, NULL); - assert (ok); + if (!ok) + return; /* Check whether this is the initial frame or a signal frame. Then we need to unwind from the original, unadjusted PC. */ if (! state->initial_frame && ! state->signal_frame) diff --git a/libdwfl/linux-core-attach.c b/libdwfl/linux-core-attach.c index c0f1b0d0..f68062f0 100644 --- a/libdwfl/linux-core-attach.c +++ b/libdwfl/linux-core-attach.c @@ -181,7 +181,8 @@ core_set_initial_registers (Dwfl_Thread *thread, void *thread_arg_voidp) size_t getnote_err = gelf_getnote (note_data, offset, &nhdr, &name_offset, &desc_offset); /* __libdwfl_attach_state_for_core already verified the note is there. */ - assert (getnote_err != 0); + if (getnote_err == 0) + return false; /* Do not check NAME for now, help broken Linux kernels. */ const char *name = (nhdr.n_namesz == 0 ? "" : note_data->d_buf + name_offset); @@ -195,8 +196,8 @@ core_set_initial_registers (Dwfl_Thread *thread, void *thread_arg_voidp) ®s_offset, &nregloc, ®locs, &nitems, &items); /* __libdwfl_attach_state_for_core already verified the note is there. */ - assert (core_note_err != 0); - assert (nhdr.n_type == NT_PRSTATUS); + if (core_note_err == 0 || nhdr.n_type != NT_PRSTATUS) + return false; const Ebl_Core_Item *item; for (item = items; item < items + nitems; item++) if (strcmp (item->name, "pid") == 0) diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c index f19e9b49..3a6af997 100644 --- a/libdwfl/linux-pid-attach.c +++ b/libdwfl/linux-pid-attach.c @@ -422,7 +422,11 @@ dwfl_linux_proc_attach (Dwfl *dwfl, pid_t pid, bool assume_ptrace_stopped) char name[64]; int i = snprintf (name, sizeof (name), "/proc/%ld/task", (long) pid); - assert (i > 0 && i < (ssize_t) sizeof (name) - 1); + if (i <= 0 || i >= (ssize_t) sizeof (name) - 1) + { + errno = -ENOMEM; + goto fail; + } DIR *dir = opendir (name); if (dir == NULL) { diff --git a/src/ChangeLog b/src/ChangeLog index 0129b8bf..f65246f1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2020-07-05 Mark Wielaard + + * stack.c (module_callback): Don't assert if dwfl_module_info fails. + * unstrip.c (adjust_relocs): Produce a proper error when HAS + section has inconsistent size or entsize. + (match_module): Don't assert if dwfl_module_info fails. + 2020-06-16 Mark Wielaard * ar.c (do_oper_extract): Split large if statement. Call fchown diff --git a/src/stack.c b/src/stack.c index 4daabce7..2ec7c972 100644 --- a/src/stack.c +++ b/src/stack.c @@ -143,7 +143,12 @@ module_callback (Dwfl_Module *mod, void **userdata __attribute__((unused)), const char *debugfile; const char *modname = dwfl_module_info (mod, NULL, NULL, &end, NULL, NULL, &mainfile, &debugfile); - assert (strcmp (modname, name) == 0); + if (modname == NULL || strcmp (modname, name) != 0) + { + end = start + 1; + mainfile = NULL; + debugfile = NULL; + } int width = get_addr_width (mod); printf ("0x%0*" PRIx64 "-0x%0*" PRIx64 " %s\n", diff --git a/src/unstrip.c b/src/unstrip.c index 9b8c09a1..a855038a 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -500,7 +500,8 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, 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); + if (data->d_size != shdr->sh_size) + error (EXIT_FAILURE, 0, "HASH section has inconsistent size"); #define CONVERT_HASH(Hash_Word) \ { \ @@ -509,7 +510,8 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, const size_t nchain = old_hash[1]; \ const Hash_Word *const old_bucket = &old_hash[2]; \ const Hash_Word *const old_chain = &old_bucket[nbucket]; \ - assert (onent == 2 + nbucket + nchain); \ + if (onent != 2 + nbucket + nchain) \ + error (EXIT_FAILURE, 0, "HASH section has inconsistent entsize"); \ \ const size_t nent = 2 + nbucket + nsym; \ Hash_Word *const new_hash = xcalloc (nent, sizeof new_hash[0]); \ @@ -2469,8 +2471,7 @@ match_module (Dwfl_Module *mod, const char *file; const char *check = dwfl_module_info (mod, NULL, NULL, NULL, NULL, NULL, &file, NULL); - assert (check == name); - if (file == NULL) + if (check == NULL || strcmp (check, name) != 0 || file == NULL) return DWARF_CB_OK; name = file; -- cgit v1.2.1 From ad7036f15ef85e9b69015c76802509e9d96856bc Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 18 Jul 2020 01:53:29 +0200 Subject: configure.ac: Set -DBAD_FTS=1 also for CXXFLAGS. debuginfod.cxx checks whether or not BAD_FTS is defined. This only matters on old 32bit arches. Signed-off-by: Mark Wielaard --- ChangeLog | 4 ++++ configure.ac | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 99f50492..c6b526fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-07-17 Mark Wielaard + + * configure.ac: Set -DBAD_FTS=1 also for CXXFLAGS. + 2020-06-19 Mark Wielaard * Makefile.am (SUBDIRS): Always add debuginfod. diff --git a/configure.ac b/configure.ac index 6f04d269..e2f213ab 100644 --- a/configure.ac +++ b/configure.ac @@ -261,7 +261,8 @@ dnl check it before including config.h (which might define _FILE_OFFSET_BITS). AC_CACHE_CHECK([whether fts.h is bad when included (with LFS)], ac_cv_bad_fts, [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include ]])], ac_cv_bad_fts=no, ac_cv_bad_fts=yes)]) -AS_IF([test "x$ac_cv_bad_fts" = "xyes"], [CFLAGS="$CFLAGS -DBAD_FTS=1"]) +AS_IF([test "x$ac_cv_bad_fts" = "xyes"], + [CFLAGS="$CFLAGS -DBAD_FTS=1" CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"]) # See if we can add -D_FORTIFY_SOURCE=2. Don't do it if it is already # (differently) defined or if it generates warnings/errors because we -- cgit v1.2.1 From 4a3f7f0e4dc1ad2906d05a1014d74c4728817965 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 19 Jul 2020 19:36:38 +0200 Subject: elfclassify: Handle fwrite to stdout failing. In theory an fwrite can fail, if so, signal it by calling issue (). Signed-off-by: Mark Wielaard --- src/ChangeLog | 4 ++++ src/elfclassify.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index f65246f1..2452cd40 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2020-07-19 Mark Wielaard + + * elfclassify.c (process_current_path): Handle fwrite failing. + 2020-07-05 Mark Wielaard * stack.c (module_callback): Don't assert if dwfl_module_info fails. diff --git a/src/elfclassify.c b/src/elfclassify.c index 535cc49f..624bb861 100644 --- a/src/elfclassify.c +++ b/src/elfclassify.c @@ -827,7 +827,8 @@ process_current_path (int *status) break; case do_print0: if (checks_passed == flag_print_matching) - fwrite (current_path, strlen (current_path) + 1, 1, stdout); + if (fwrite (current_path, strlen (current_path) + 1, 1, stdout) < 1) + issue (errno, N_("writing to standard output")); break; case no_print: if (!checks_passed) -- cgit v1.2.1 From 15495182302edbe0142101ec3a09e478901ab994 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 19 Jul 2020 21:51:16 +0200 Subject: Only typedef Ebl once. Since commit 287a18452 libasm.h defines an opague Ebl handle. This is fine, except for (internal) code that also includes libebl.h. Since C11 having multiple typedefs for the same thing is fine, but we do build using GNU/C99. This also allows multiple same typedefs, except for (very) old GCCs. This only affects internal code, since libebl.h isn't a public header. For internal code, only add the typedef in libebl.h when libasm.h hasn't been included. Make sure all code that includes both headers includes libasm.h first. Signed-off-by: Mark Wielaard --- libasm/ChangeLog | 4 ++++ libasm/libasmP.h | 2 +- libebl/ChangeLog | 4 ++++ libebl/libebl.h | 4 +++- tests/ChangeLog | 12 ++++++++++++ tests/asm-tst1.c | 2 +- tests/asm-tst2.c | 2 +- tests/asm-tst3.c | 2 +- tests/asm-tst4.c | 2 +- tests/asm-tst5.c | 2 +- tests/asm-tst6.c | 2 +- tests/asm-tst7.c | 2 +- tests/asm-tst8.c | 2 +- tests/asm-tst9.c | 2 +- 14 files changed, 33 insertions(+), 11 deletions(-) diff --git a/libasm/ChangeLog b/libasm/ChangeLog index 8ed7fc20..83a65492 100644 --- a/libasm/ChangeLog +++ b/libasm/ChangeLog @@ -1,3 +1,7 @@ +2020-07-19 Mark Wielaard + + * libasmP.h: Include libebl.h after libasm.h. + 2020-07-05 Mark Wielaard * libasm.h: Include gelf.h. diff --git a/libasm/libasmP.h b/libasm/libasmP.h index a4703fc3..53d8f3a0 100644 --- a/libasm/libasmP.h +++ b/libasm/libasmP.h @@ -31,8 +31,8 @@ #include -#include "libebl.h" #include +#include "libebl.h" #include "libdwelf.h" diff --git a/libebl/ChangeLog b/libebl/ChangeLog index fa6dd037..e54aa2c9 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,7 @@ +2020-07-19 Mark Wielaard + + * libebl.h: Only typedef Ebl if _LIBASM_H is undefined. + 2020-06-10 Mark Wielaard * eblopenbackend.c (i386_init, sh_init, x86_64_init, ia64_init, diff --git a/libebl/libebl.h b/libebl/libebl.h index 06a14c45..23c0e950 100644 --- a/libebl/libebl.h +++ b/libebl/libebl.h @@ -45,8 +45,10 @@ #include "elf-knowledge.h" -/* Opaque type for the handle. */ +/* Opaque type for the handle. libasm.h defined the same thing. */ +#ifndef _LIBASM_H typedef struct ebl Ebl; +#endif #ifdef __cplusplus diff --git a/tests/ChangeLog b/tests/ChangeLog index b5d332a0..047100b0 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2020-07-19 Mark Wielaard + + * asm-tst1.c: Include libebl.h after libasm.h. + * asm-tst2.c: Likewise. + * asm-tst3.c: Likewise. + * asm-tst4.c: Likewise. + * asm-tst5.c: Likewise. + * asm-tst6.c: Likewise. + * asm-tst7.c: Likewise. + * asm-tst8.c: Likewise. + * asm-tst9.c: Likewise. + 2020-07-05 Mark Wielaard * run-test-includes.sh: New test. diff --git a/tests/asm-tst1.c b/tests/asm-tst1.c index cdf2a921..d03a4361 100644 --- a/tests/asm-tst1.c +++ b/tests/asm-tst1.c @@ -20,8 +20,8 @@ #endif #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst2.c b/tests/asm-tst2.c index 9e88b70c..e65a9d2f 100644 --- a/tests/asm-tst2.c +++ b/tests/asm-tst2.c @@ -20,8 +20,8 @@ #endif #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst3.c b/tests/asm-tst3.c index 39c1d90c..e45fa16a 100644 --- a/tests/asm-tst3.c +++ b/tests/asm-tst3.c @@ -20,8 +20,8 @@ #endif #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst4.c b/tests/asm-tst4.c index 5114938b..1a05bfcc 100644 --- a/tests/asm-tst4.c +++ b/tests/asm-tst4.c @@ -20,8 +20,8 @@ #endif #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst5.c b/tests/asm-tst5.c index dcb852f8..256873f0 100644 --- a/tests/asm-tst5.c +++ b/tests/asm-tst5.c @@ -20,8 +20,8 @@ #endif #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst6.c b/tests/asm-tst6.c index 829cd90c..4a665ed0 100644 --- a/tests/asm-tst6.c +++ b/tests/asm-tst6.c @@ -19,8 +19,8 @@ # include #endif -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst7.c b/tests/asm-tst7.c index 90179769..87c21485 100644 --- a/tests/asm-tst7.c +++ b/tests/asm-tst7.c @@ -21,8 +21,8 @@ #include #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst8.c b/tests/asm-tst8.c index a65509fe..7dbac10f 100644 --- a/tests/asm-tst8.c +++ b/tests/asm-tst8.c @@ -21,8 +21,8 @@ #include #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include diff --git a/tests/asm-tst9.c b/tests/asm-tst9.c index 681e872d..6bec3f6e 100644 --- a/tests/asm-tst9.c +++ b/tests/asm-tst9.c @@ -21,8 +21,8 @@ #include #include -#include ELFUTILS_HEADER(ebl) #include ELFUTILS_HEADER(asm) +#include ELFUTILS_HEADER(ebl) #include #include #include -- cgit v1.2.1 From 55c5c9a568ed707bcea1388bf3a525212d8cf4b8 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 19 Aug 2020 23:41:24 +0200 Subject: libelf: Fixup SHF_COMPRESSED sh_addralign in elf_update if necessary. In elf_getdata.c we have the following to compensate for possibly bad sh_addralign values of compressed sections: /* 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; align = __libelf_type_align (elf->class, ELF_T_CHDR); } Which makes sure the d_data alignment is correct for the Chdr struct at the start of the compressed section. But this means that if a user just reads such a compressed section without changing it, and then tries to write it out again using elf_update they get an error message about d_align and sh_addralign being out of sync. We already correct obviously incorrect sh_entsize fields. Do the same for the sh_addralign field of a SHF_COMPRESSED section. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 5 +++++ libelf/elf32_updatenull.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 8f6d2d2d..77044c1c 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,8 @@ +2020-08-19 Mark Wielaard + + * elf32_updatenull.c (updatenull_wrlock): Fixup the sh_addralign + of an SHF_COMPRESSED section if necessary. + 2020-06-04 Mark Wielaard * elf.h: Update from glibc. diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c index 5f3cdbf6..d0d4d1eb 100644 --- a/libelf/elf32_updatenull.c +++ b/libelf/elf32_updatenull.c @@ -267,6 +267,18 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) update_if_changed (shdr->sh_entsize, sh_entsize, scn->shdr_flags); + /* Likewise for the alignment of a compressed section. + For a SHF_COMPRESSED section set the correct + sh_addralign value, which must match the d_align of + the data (see __libelf_set_rawdata in elf_getdata.c). */ + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + sh_align = __libelf_type_align (ELFW(ELFCLASS,LIBELFBITS), + ELF_T_CHDR); + update_if_changed (shdr->sh_addralign, sh_align, + scn->shdr_flags); + } + if (scn->data_read == 0 && __libelf_set_rawdata_wrlock (scn) != 0) /* Something went wrong. The error value is already set. */ -- cgit v1.2.1 From 0c8cac246d18c7f9d161e68c951168750c72e26c Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 25 Aug 2020 23:31:29 +0200 Subject: libdw: Rename check_constant_offset to is_constant_offset. The check_constant_offset code in dwarf_getlocation.c code is not very intuitive, rename it to is_constant_offset and update the documentation. https://sourceware.org/bugzilla/show_bug.cgi?id=26321 Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 5 +++++ libdw/dwarf_getlocation.c | 22 +++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index c11df151..796dbfb7 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,8 @@ +2020-08-25 Mark Wielaard + + * dwarf_getlocation.c (check_constant_offset): Rename to... + (is_constant_offset): .. this. + 2020-06-28 Mark Wielaard * linux-kernel-modules.c (intuit_kernel_bounds): Check read_address diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index 6fb3ff3d..4617f9e9 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -161,11 +161,14 @@ dwarf_getlocation_implicit_value (Dwarf_Attribute *attr, const Dwarf_Op *op, return 0; } -/* DW_AT_data_member_location can be a constant as well as a loclistptr. - Only data[48] indicate a loclistptr. */ +/* If the given attribute is DW_AT_data_member_location and it has constant + form then create a fake location using DW_OP_plus_uconst and the offset + value. On success returns zero and fills in llbuf (when not NULL) and + sets listlen to 1. Returns 1 when this isn't a DW_AT_data_member_location + offset. Returns -1 and sets dwarf_errno on failure (bad DWARF data). */ static int -check_constant_offset (Dwarf_Attribute *attr, - Dwarf_Op **llbuf, size_t *listlen) +is_constant_offset (Dwarf_Attribute *attr, + Dwarf_Op **llbuf, size_t *listlen) { if (attr->code != DW_AT_data_member_location) return 1; @@ -665,9 +668,9 @@ dwarf_getlocation (Dwarf_Attribute *attr, Dwarf_Op **llbuf, size_t *listlen) if (! attr_ok (attr)) return -1; - int result = check_constant_offset (attr, llbuf, listlen); + int result = is_constant_offset (attr, llbuf, listlen); if (result != 1) - return result; + return result; /* Either success 0, or -1 to indicate error. */ /* If it has a block form, it's a single location expression. Except for DW_FORM_data16, which is a 128bit constant. */ @@ -898,7 +901,8 @@ dwarf_getlocation_addr (Dwarf_Attribute *attr, Dwarf_Addr address, } } - int result = check_constant_offset (attr, llbufs, listlens); + /* If is_constant_offset is successful, we are done with 1 result. */ + int result = is_constant_offset (attr, llbufs, listlens); if (result != 1) return result ?: 1; @@ -979,7 +983,7 @@ dwarf_getlocations (Dwarf_Attribute *attr, ptrdiff_t offset, Dwarf_Addr *basep, } } - int result = check_constant_offset (attr, expr, exprlen); + int result = is_constant_offset (attr, expr, exprlen); if (result != 1) { if (result == 0) @@ -989,7 +993,7 @@ dwarf_getlocations (Dwarf_Attribute *attr, ptrdiff_t offset, Dwarf_Addr *basep, *endp = -1; return 1; } - return result; + return result; /* Something bad, dwarf_errno has been set. */ } /* We must be looking at a true loclistptr, fetch the initial -- cgit v1.2.1 From df91c6af98ac09acce5a906afef3e3fe21b24734 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 26 Aug 2020 14:27:46 +0200 Subject: readelf: It is not an error if there are no line number statements It can happen that there are no line number statements at the end of a debug line section. So don't check that there are any more bytes after the last file entry. And print "No line number statements." libdw already got this corner case correct. Signed-off-by: Mark Wielaard --- src/ChangeLog | 5 +++++ src/readelf.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2452cd40..8eb2103d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2020-08-26 Mark Wielaard + + * readelf.c (print_debug_line_section): It is not an error if there + are no line number statements at the end of a debug line section. + 2020-07-19 Mark Wielaard * elfclassify.c (process_current_path): Handle fwrite failing. diff --git a/src/readelf.c b/src/readelf.c index 685d0b17..41933d95 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -8642,7 +8642,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, printf (", "); } printf ("\n"); - if (linep >= lineendp) + if (linep > lineendp) goto invalid_unit; } } @@ -8685,6 +8685,12 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, ++linep; } + if (linep == lineendp) + { + puts (gettext ("\nNo line number statements.")); + return; + } + puts (gettext ("\nLine number statements:")); Dwarf_Word address = 0; unsigned int op_index = 0; -- cgit v1.2.1 From 4ced3010ad1133159eb48bedda92af93e3a73d5a Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Thu, 20 Aug 2020 23:27:24 +0300 Subject: libdwfl: do not dlopen libdebuginfod.so in --disable-libdebuginfod mode debuginfod-client.c used to try to dlopen libdebuginfod.so even if libdebuginfod was completely disabled using --disable-libdebuginfod. Fix this by disabling build of debuginfod-client.c and disabling all __libdwfl_debuginfod_* invocations in --disable-libdebuginfod mode. Signed-off-by: Dmitry V. Levin Signed-off-by: Mark Wielaard --- ChangeLog | 4 ++++ configure.ac | 5 ++++- libdwfl/ChangeLog | 18 ++++++++++++++++++ libdwfl/Makefile.am | 5 ++++- libdwfl/dwfl_build_id_find_elf.c | 2 ++ libdwfl/dwfl_end.c | 2 ++ libdwfl/find-debuginfo.c | 2 ++ libdwfl/libdwflP.h | 8 +++++++- 8 files changed, 43 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c6b526fe..0f00fade 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-08-20 Dmitry V. Levin + + * configure.ac (--enable-libdebuginfod): AC_DEFINE ENABLE_LIBDEBUGINFOD. + 2020-07-17 Mark Wielaard * configure.ac: Set -DBAD_FTS=1 also for CXXFLAGS. diff --git a/configure.ac b/configure.ac index e2f213ab..f3f1597b 100644 --- a/configure.ac +++ b/configure.ac @@ -693,7 +693,10 @@ AS_IF([test "x$enable_libdebuginfod" != "xno"], [ fi ]) -AS_IF([test "x$enable_libdebuginfod" = "xdummy"],AC_DEFINE([DUMMY_LIBDEBUGINFOD],[1],[Build dummy libdebuginfod])) +AS_IF([test "x$enable_libdebuginfod" = "xyes" || test "x$enable_libdebuginfod" = "xdummy"], + [AC_DEFINE([ENABLE_LIBDEBUGINFOD], [1], [Enable libdebuginfod])]) +AS_IF([test "x$enable_libdebuginfod" = "xdummy"], + [AC_DEFINE([DUMMY_LIBDEBUGINFOD], [1], [Build dummy libdebuginfod])]) AM_CONDITIONAL([LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xyes" || test "x$enable_libdebuginfod" = "xdummy"]) AM_CONDITIONAL([DUMMY_LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xdummy"]) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index e59efd77..ca10ce88 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,21 @@ +2020-08-20 Dmitry V. Levin + + * Makefile.am (libdwfl_a_SOURCES): Conditionalize + debuginfod-client.c on LIBDEBUGINFOD. + * dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): Conditionalize + __libdwfl_debuginfod_find_executable invocation on + ENABLE_LIBDEBUGINFOD. + * dwfl_end.c (dwfl_end): Conditionalize __libdwfl_debuginfod_end + invocation on ENABLE_LIBDEBUGINFOD. + * find-debuginfo.c (dwfl_standard_find_debuginfo): Conditionalize + __libdwfl_debuginfod_find_debuginfo invocation on + ENABLE_LIBDEBUGINFOD. + * libdwflP.h: Guard debuginfod.h include with ENABLE_LIBDEBUGINFOD. + (struct Dwfl): Guard debuginfod field with ENABLE_LIBDEBUGINFOD. + (__libdwfl_debuginfod_find_executable, + __libdwfl_debuginfod_find_debuginfo, __libdwfl_debuginfod_end): + Guard declarations with ENABLE_LIBDEBUGINFOD. + 2020-07-05 Mark Wielaard * argp-std.c (parse_opt): Don't assert, but call fail when diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am index 47bd62a5..1de05492 100644 --- a/libdwfl/Makefile.am +++ b/libdwfl/Makefile.am @@ -70,7 +70,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c dwfl_version.c \ link_map.c core-file.c open.c image-header.c \ dwfl_frame.c frame_unwind.c dwfl_frame_pc.c \ linux-pid-attach.c linux-core-attach.c dwfl_frame_regs.c \ - gzip.c debuginfod-client.c + gzip.c if BZLIB libdwfl_a_SOURCES += bzip2.c @@ -78,6 +78,9 @@ endif if LZMA libdwfl_a_SOURCES += lzma.c endif +if LIBDEBUGINFOD +libdwfl_a_SOURCES += debuginfod-client.c +endif libdwfl = $(libdw) libdw = ../libdw/libdw.so diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c index f685c979..7b604d47 100644 --- a/libdwfl/dwfl_build_id_find_elf.c +++ b/libdwfl/dwfl_build_id_find_elf.c @@ -192,12 +192,14 @@ dwfl_build_id_find_elf (Dwfl_Module *mod, } else { +#ifdef ENABLE_LIBDEBUGINFOD /* If all else fails and a build-id is available, query the debuginfo-server if enabled. */ if (fd < 0 && mod->build_id_len > 0) fd = __libdwfl_debuginfod_find_executable (mod->dwfl, mod->build_id_bits, mod->build_id_len); +#endif } if (fd < 0 && errno == 0 && mod->build_id_len > 0) diff --git a/libdwfl/dwfl_end.c b/libdwfl/dwfl_end.c index 4f6c722a..b1840191 100644 --- a/libdwfl/dwfl_end.c +++ b/libdwfl/dwfl_end.c @@ -39,7 +39,9 @@ dwfl_end (Dwfl *dwfl) if (dwfl == NULL) return; +#ifdef ENABLE_LIBDEBUGINFOD __libdwfl_debuginfod_end (dwfl->debuginfod); +#endif if (dwfl->process) __libdwfl_process_free (dwfl->process); diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c index eb68d549..449df5a1 100644 --- a/libdwfl/find-debuginfo.c +++ b/libdwfl/find-debuginfo.c @@ -401,6 +401,7 @@ dwfl_standard_find_debuginfo (Dwfl_Module *mod, free (canon); } +#ifdef ENABLE_LIBDEBUGINFOD /* Still nothing? Try if we can use the debuginfod client. But note that we might be looking for the alt file. We use the same trick as dwfl_build_id_find_debuginfo. @@ -422,6 +423,7 @@ dwfl_standard_find_debuginfo (Dwfl_Module *mod, if (bits_len > 0) fd = __libdwfl_debuginfod_find_debuginfo (mod->dwfl, bits, bits_len); } +#endif return fd; } diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h index 25753de2..ad6779ad 100644 --- a/libdwfl/libdwflP.h +++ b/libdwfl/libdwflP.h @@ -40,7 +40,10 @@ #include "../libdw/libdwP.h" /* We need its INTDECLs. */ #include "../libdwelf/libdwelfP.h" + +#ifdef ENABLE_LIBDEBUGINFOD #include "../debuginfod/debuginfod.h" +#endif typedef struct Dwfl_Process Dwfl_Process; @@ -115,8 +118,9 @@ struct Dwfl_User_Core struct Dwfl { const Dwfl_Callbacks *callbacks; +#ifdef ENABLE_LIBDEBUGINFOD debuginfod_client *debuginfod; - +#endif Dwfl_Module *modulelist; /* List in order used by full traversals. */ Dwfl_Process *process; @@ -631,6 +635,7 @@ extern Dwfl_Error __libdw_open_elf (int fd, Elf **elfp) internal_function; extern bool __libdwfl_dynamic_vaddr_get (Elf *elf, GElf_Addr *vaddrp) internal_function; +#ifdef ENABLE_LIBDEBUGINFOD /* Internal interface to libdebuginfod (if installed). */ int __libdwfl_debuginfod_find_executable (Dwfl *dwfl, @@ -642,6 +647,7 @@ __libdwfl_debuginfod_find_debuginfo (Dwfl *dwfl, size_t build_id_len); void __libdwfl_debuginfod_end (debuginfod_client *c); +#endif /* These are working nicely for --core, but are not ready to be -- cgit v1.2.1 From b12914f0431c333ea727cae63779e147b3e4c56b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 3 Sep 2020 14:57:07 +0200 Subject: libdw: Remove duplicate local wildcards from map file. We only need one local: * entry to capture all private local symbols. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 8 ++++++++ libdw/libdw.map | 10 ---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 796dbfb7..13683ef0 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,11 @@ +2020-09-03 Mark Wielaard + + * libdw.map (ELFUTILS_0.126): Remove local wildcard. + (ELFUTILS_0.127): Likewise. + (ELFUTILS_0.130): Likewise. + (ELFUTILS_0.136): Likewise. + (ELFUTILS_0.138): Likewise. + 2020-08-25 Mark Wielaard * dwarf_getlocation.c (check_constant_offset): Rename to... diff --git a/libdw/libdw.map b/libdw/libdw.map index decac05c..8ab0a2a0 100644 --- a/libdw/libdw.map +++ b/libdw/libdw.map @@ -149,8 +149,6 @@ ELFUTILS_0.126 { global: dwarf_getelf; - local: - *; } ELFUTILS_0.122; ELFUTILS_0.127 { @@ -161,8 +159,6 @@ ELFUTILS_0.127 { dwfl_report_begin_add; dwfl_module_address_section; - local: - *; } ELFUTILS_0.126; ELFUTILS_0.130 { @@ -172,8 +168,6 @@ ELFUTILS_0.130 { dwfl_module_build_id; dwfl_module_report_build_id; - local: - *; } ELFUTILS_0.127; ELFUTILS_0.136 { @@ -181,8 +175,6 @@ ELFUTILS_0.136 { dwfl_addrsegment; dwfl_report_segment; - local: - *; } ELFUTILS_0.130; ELFUTILS_0.138 { @@ -190,8 +182,6 @@ ELFUTILS_0.138 { # Replaced ELFUTILS_0.130 version, which has bug-compatibility wrapper. dwfl_module_build_id; - local: - *; } ELFUTILS_0.136; ELFUTILS_0.142 { -- cgit v1.2.1 From 584768ff5e3a85c828ac1d36d8e98586768be9a1 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 5 Sep 2020 01:17:06 +0200 Subject: elflint: Handle .debug_line_str as .debug_str The new DWARF5 .debug_line_str is identical to the .debug_str section. Signed-off-by: Mark Wielaard --- src/ChangeLog | 4 ++++ src/elflint.c | 1 + 2 files changed, 5 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 8eb2103d..e37f3587 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2020-09-04 Mark Wielaard + + * elflint.c (special_sections): Add .debug_line_str. + 2020-08-26 Mark Wielaard * readelf.c (print_debug_line_section): It is not an error if there diff --git a/src/elflint.c b/src/elflint.c index 9cdcccca..ef3e3732 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -3631,6 +3631,7 @@ static const struct { ".data", 6, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE, 0 }, { ".data1", 7, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE, 0 }, { ".debug_str", 11, SHT_PROGBITS, exact_or_gnuld, SHF_MERGE | SHF_STRINGS, 0 }, + { ".debug_line_str", 16, SHT_PROGBITS, exact_or_gnuld, SHF_MERGE | SHF_STRINGS, 0 }, { ".debug", 6, SHT_PROGBITS, exact, 0, 0 }, { ".dynamic", 9, SHT_DYNAMIC, atleast, SHF_ALLOC, SHF_WRITE }, { ".dynstr", 8, SHT_STRTAB, exact, SHF_ALLOC, 0 }, -- cgit v1.2.1 From 1d8b10e02c1dc374c08deee3efaabf7814d16f92 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 28 Aug 2020 19:13:00 +0200 Subject: libelf: Sync elf.h from glibc. Gets us DT_AARCH64_BTI_PLT and DT_AARCH64_PAC_PLT. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 4 ++++ libelf/elf.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 77044c1c..a3f15883 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,7 @@ +2020-08-28 Mark Wielaard + + * elf.h: Update from glibc. + 2020-08-19 Mark Wielaard * elf32_updatenull.c (updatenull_wrlock): Fixup the sh_addralign diff --git a/libelf/elf.h b/libelf/elf.h index 197b557d..ff9f1dad 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -2875,6 +2875,8 @@ enum #define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */ /* AArch64 specific values for the Dyn d_tag field. */ +#define DT_AARCH64_BTI_PLT (DT_LOPROC + 1) +#define DT_AARCH64_PAC_PLT (DT_LOPROC + 3) #define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5) #define DT_AARCH64_NUM 6 -- cgit v1.2.1 From d0f3b596fd9bc262c6bcd2da571436165d734222 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 28 Aug 2020 23:19:26 +0200 Subject: backends: Implement aarch64_dynamic_tag_name and aarch64_dynamic_tag_check Signed-off-by: Mark Wielaard --- backends/ChangeLog | 7 +++++++ backends/aarch64_init.c | 2 ++ backends/aarch64_symbol.c | 26 ++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/backends/ChangeLog b/backends/ChangeLog index c85dfd2a..ce4c971e 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,10 @@ +2020-08-28 Mark Wielard + + * aarch64_init.c (aarch64_init): Hook dynamic_tag_name and + dynamic_tag_check. + * aarch64_symbol.c (aarch64_dynamic_tag_name): New function. + (aarch64_dynamic_tag_check): Likewise. + 2020-06-16 Mark Wielard * common-reloc.c (reloc_nametable): Make zero a 1 char array. diff --git a/backends/aarch64_init.c b/backends/aarch64_init.c index 66bfae94..bed92954 100644 --- a/backends/aarch64_init.c +++ b/backends/aarch64_init.c @@ -50,6 +50,8 @@ aarch64_init (Elf *elf __attribute__ ((unused)), HOOK (eh, reloc_simple_type); HOOK (eh, return_value_location); HOOK (eh, check_special_symbol); + HOOK (eh, dynamic_tag_name); + HOOK (eh, dynamic_tag_check); HOOK (eh, data_marker_symbol); HOOK (eh, abi_cfi); diff --git a/backends/aarch64_symbol.c b/backends/aarch64_symbol.c index e30c409d..464a5695 100644 --- a/backends/aarch64_symbol.c +++ b/backends/aarch64_symbol.c @@ -106,3 +106,29 @@ aarch64_data_marker_symbol (const GElf_Sym *sym, const char *sname) && GELF_ST_TYPE (sym->st_info) == STT_NOTYPE && (strcmp (sname, "$d") == 0 || strncmp (sname, "$d.", 3) == 0)); } + +const char * +aarch64_dynamic_tag_name (int64_t tag, char *buf __attribute__ ((unused)), + size_t len __attribute__ ((unused))) +{ + switch (tag) + { + case DT_AARCH64_BTI_PLT: + return "AARCH64_BTI_PLT"; + case DT_AARCH64_PAC_PLT: + return "AARCH64_PAC_PLT"; + case DT_AARCH64_VARIANT_PCS: + return "AARCH64_VARIANT_PCS"; + default: + break; + } + return NULL; +} + +bool +aarch64_dynamic_tag_check (int64_t tag) +{ + return (tag == DT_AARCH64_BTI_PLT + || tag == DT_AARCH64_PAC_PLT + || tag == DT_AARCH64_VARIANT_PCS); +} -- cgit v1.2.1 From f1a0e680aa0f4e9fcdf10afcea075a833a5a9e4a Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 1 Sep 2020 23:32:09 +0200 Subject: readelf: base address entry can be first In both debug_ranges and debug_loc a base address entry can be the first in the range or loc list. If so print the offset and set first to false. Otherwise don't print the entry list offset, but do set first to false. Signed-off-by: Mark Wielaard --- src/ChangeLog | 6 ++++++ src/readelf.c | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e37f3587..8a64a15e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2020-09-01 Mark Wielaard + + * readelf.c (print_debug_ranges_section): Base address entry can + be first. + (print_debug_loc_section): Likewise. + 2020-09-04 Mark Wielaard * elflint.c (special_sections): Add .debug_line_str. diff --git a/src/readelf.c b/src/readelf.c index 41933d95..dd6e28af 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -6045,10 +6045,16 @@ print_debug_ranges_section (Dwfl_Module *dwflmod, if (begin == (Dwarf_Addr) -1l) /* Base address entry. */ { - printf (gettext (" [%6tx] base address\n "), offset); + if (first) + printf (" [%6tx] ", offset); + else + printf (" "); + puts (gettext ("base address")); + printf (" "); print_dwarf_addr (dwflmod, address_size, end, end); printf ("\n"); base = end; + first = false; } else if (begin == 0 && end == 0) /* End of list entry. */ { @@ -9615,10 +9621,16 @@ print_debug_loc_section (Dwfl_Module *dwflmod, if (begin == (Dwarf_Addr) -1l) /* Base address entry. */ { - printf (gettext (" [%6tx] base address\n "), offset); + if (first) + printf (" [%6tx] ", offset); + else + printf (" "); + puts (gettext ("base address")); + printf (" "); print_dwarf_addr (dwflmod, address_size, end, end); printf ("\n"); base = end; + first = false; } else if (begin == 0 && end == 0) /* End of list entry. */ { -- cgit v1.2.1 From 18d64cd8e7ce0761568631bb40136ca7a154b6e0 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 3 Sep 2020 09:42:32 -0400 Subject: libebl: Handle aarch64 bti, pac bits in gnu property note When building with gcc -mbranch-protection= we might get a gnu property note indicating BTI (Branch Target Identification) and/or PAC (Pointer Authentication Code) is being used. Add a small testcase to show eu-readelf -n now properly lists those bits in the gnu property note. Signed-off-by: Mark Wielaard --- libebl/ChangeLog | 5 ++ libebl/eblobjnote.c | 67 +++++++++++++++++++++++++++ tests/ChangeLog | 7 +++ tests/Makefile.am | 1 + tests/run-readelf-n.sh | 31 +++++++++++++ tests/testfile-gnu-property-note-aarch64.bz2 | Bin 0 -> 1952 bytes 6 files changed, 111 insertions(+) create mode 100755 tests/testfile-gnu-property-note-aarch64.bz2 diff --git a/libebl/ChangeLog b/libebl/ChangeLog index e54aa2c9..aa43b31f 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,8 @@ +2020-09-03 Mark Wielaard + + * eblobjnote.c (ebl_object_note): For EM_AARCH64 handle BTI and PAC + in GNU_PROPERTY_AARCH64_FEATURE_1_AND. + 2020-07-19 Mark Wielaard * libebl.h: Only typedef Ebl if _LIBASM_H is undefined. diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c index f7ac915c..37cbc499 100644 --- a/libebl/eblobjnote.c +++ b/libebl/eblobjnote.c @@ -476,6 +476,73 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type, } } } + else if (prop.pr_type >= GNU_PROPERTY_LOPROC + && prop.pr_type <= GNU_PROPERTY_HIPROC + && ehdr.e_machine == EM_AARCH64) + { + printf ("AARCH64 "); + if (prop.pr_type == GNU_PROPERTY_AARCH64_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_AARCH64_FEATURE_1_BTI) + != 0) + { + printf ("BTI"); + data &= ~GNU_PROPERTY_AARCH64_FEATURE_1_BTI; + if (data != 0) + printf (" "); + } + + if ((data & GNU_PROPERTY_AARCH64_FEATURE_1_PAC) + != 0) + { + printf ("PAC"); + data &= ~GNU_PROPERTY_AARCH64_FEATURE_1_PAC; + if (data != 0) + printf (" "); + } + + if (data != 0) + printf ("UNKNOWN"); + } + else + printf ("", + 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 diff --git a/tests/ChangeLog b/tests/ChangeLog index 047100b0..61c6cb7c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2020-09-03 Mark Wielaard + + * testfile-gnu-property-note-aarch64.bz2: New file. + * run-readelf-n.sh: Handle testfile-gnu-property-note-aarch64. + * Makefile.am (EXTRA_DIST): Add + testfile-gnu-property-note-aarch64.bz2. + 2020-07-19 Mark Wielaard * asm-tst1.c: Include libebl.h after libasm.h. diff --git a/tests/Makefile.am b/tests/Makefile.am index d30b8218..939bbb6a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -319,6 +319,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ testfile_gnu_props.64le.o.bz2 \ testfile_gnu_props.32be.o.bz2 \ testfile_gnu_props.64be.o.bz2 \ + testfile-gnu-property-note-aarch64.bz2 \ run-allfcts-multi.sh \ test-offset-loop.bz2 test-offset-loop.alt.bz2 \ run-prelink-addr-test.sh \ diff --git a/tests/run-readelf-n.sh b/tests/run-readelf-n.sh index cc7d7f66..4c98fd82 100755 --- a/tests/run-readelf-n.sh +++ b/tests/run-readelf-n.sh @@ -226,3 +226,34 @@ Note section [ 4] '.note.gnu.property' of 56 bytes at offset 0x40: GNU 8 GNU_PROPERTY_TYPE_0 NO_COPY_ON_PROTECTION EOF + +# - testfile-gnu-property-note.c +# int +# main () +# { +# return 0; +# } +# +# gcc -mbranch-protection=standard -c testfile-gnu-property-note.c +# gcc -o testfile-gnu-property-note-aarch64 testfile-gnu-property-note.o +# eu-strip --remove-section=.gnu.build.attributes \ +# testfile-gnu-property-note-aarch64 + +testfiles testfile-gnu-property-note-aarch64 +testrun_compare ${abs_top_builddir}/src/readelf -n testfile-gnu-property-note-aarch64 << EOF + +Note section [ 2] '.note.gnu.property' of 32 bytes at offset 0x2c8: + Owner Data size Type + GNU 16 GNU_PROPERTY_TYPE_0 + AARCH64 FEATURE_1_AND: 00000003 BTI PAC + +Note section [ 3] '.note.gnu.build-id' of 36 bytes at offset 0x2e8: + Owner Data size Type + GNU 20 GNU_BUILD_ID + Build ID: af82d6df6f3b396487e3e27a826ca9cbbbecbe5f + +Note section [ 4] '.note.ABI-tag' of 32 bytes at offset 0x30c: + Owner Data size Type + GNU 16 GNU_ABI_TAG + OS: Linux, ABI: 3.7.0 +EOF diff --git a/tests/testfile-gnu-property-note-aarch64.bz2 b/tests/testfile-gnu-property-note-aarch64.bz2 new file mode 100755 index 00000000..2fe37b19 Binary files /dev/null and b/tests/testfile-gnu-property-note-aarch64.bz2 differ -- cgit v1.2.1 From 5ed73d79bf5670484963cb5b57b8da50c68d5c3e Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 3 Sep 2020 17:46:53 +0200 Subject: libdw,readelf: Recognize DW_CFA_AARCH64_negate_ra_state DW_CFA_AARCH64_negate_ra_state is used on aarch64 to indicate whether or not the return address is mangled or not. This has the same value as the DW_CFA_GNU_window_save. So we have to pass around the e_machine value of the process or core we are inspecting to know which one to use. Note that it isn't actually implemented yet. It needs ARMv8.3 hardware. If we don't have such hardware it is enough to simply ignore the DW_CFA_AARCH64_negate_ra_state (and not confuse it with DW_CFA_GNU_window_save) to get backtraces to work on aarch64. Add a testcase for eu-readelf --debug-dump=frames to show the value is correctly recognized. Also don't warn we cannot find any DWARF if we are just dumping frames (those will come from .eh_frame if there is no .debug_frame). Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 12 +++ libdw/cfi.c | 41 +++++++---- libdw/cfi.h | 2 + libdw/dwarf.h | 1 + libdw/dwarf_getcfi.c | 5 ++ libdw/dwarf_getcfi_elf.c | 8 +- src/ChangeLog | 7 ++ src/readelf.c | 13 ++-- tests/ChangeLog | 6 ++ tests/Makefile.am | 2 + tests/run-readelf-frames.sh | 173 ++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 247 insertions(+), 23 deletions(-) create mode 100755 tests/run-readelf-frames.sh diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 13683ef0..8b0b583a 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,15 @@ +2020-09-03 Mark Wielaard + + * dwarf.h: Add DW_CFA_AARCH64_negate_ra_state. + * cfi.h (struct Dwarf_CFI_s): Add e_machine field. + * cfi.c (execute_cfi): Recognize, but ignore + DW_CFA_AARCH64_negate_ra_state on aarch64. + * dwarf_getcfi.c (dwarf_getcfi): Set cfi e_machine. + * dwarf_getcfi_elf.c (allocate_cfi): Take ehdr as argument and set + cfi e_machine. + (getcfi_gnu_eh_frame): Pass ehdr to allocate_cfi. + (getcfi_scn_eh_frame): Likewise. + 2020-09-03 Mark Wielaard * libdw.map (ELFUTILS_0.126): Remove local wildcard. diff --git a/libdw/cfi.c b/libdw/cfi.c index 6705294f..a73fb03f 100644 --- a/libdw/cfi.c +++ b/libdw/cfi.c @@ -350,24 +350,35 @@ execute_cfi (Dwarf_CFI *cache, case DW_CFA_nop: continue; - case DW_CFA_GNU_window_save: - /* This is magic shorthand used only by SPARC. It's equivalent - to a bunch of DW_CFA_register and DW_CFA_offset operations. */ - if (unlikely (! enough_registers (31, &fs, &result))) - goto out; - for (regno = 8; regno < 16; ++regno) + case DW_CFA_GNU_window_save: /* DW_CFA_AARCH64_negate_ra_state */ + if (cache->e_machine == EM_AARCH64) { - /* Find each %oN in %iN. */ - fs->regs[regno].rule = reg_register; - fs->regs[regno].value = regno + 16; + /* Toggles the return address state, indicating whether + the return address is encrypted or not on + aarch64. XXX not handled yet. */ } - unsigned int address_size = (cache->e_ident[EI_CLASS] == ELFCLASS32 - ? 4 : 8); - for (; regno < 32; ++regno) + else { - /* Find %l0..%l7 and %i0..%i7 in a block at the CFA. */ - fs->regs[regno].rule = reg_offset; - fs->regs[regno].value = (regno - 16) * address_size; + /* This is magic shorthand used only by SPARC. It's + equivalent to a bunch of DW_CFA_register and + DW_CFA_offset operations. */ + if (unlikely (! enough_registers (31, &fs, &result))) + goto out; + for (regno = 8; regno < 16; ++regno) + { + /* Find each %oN in %iN. */ + fs->regs[regno].rule = reg_register; + fs->regs[regno].value = regno + 16; + } + unsigned int address_size; + address_size = (cache->e_ident[EI_CLASS] == ELFCLASS32 + ? 4 : 8); + for (; regno < 32; ++regno) + { + /* Find %l0..%l7 and %i0..%i7 in a block at the CFA. */ + fs->regs[regno].rule = reg_offset; + fs->regs[regno].value = (regno - 16) * address_size; + } } continue; diff --git a/libdw/cfi.h b/libdw/cfi.h index 1ebf2dc3..1b0d712f 100644 --- a/libdw/cfi.h +++ b/libdw/cfi.h @@ -108,6 +108,8 @@ struct Dwarf_CFI_s size_t search_table_entries; uint8_t search_table_encoding; + uint16_t e_machine; + /* True if the file has a byte order different from the host. */ bool other_byte_order; diff --git a/libdw/dwarf.h b/libdw/dwarf.h index 71ca2baa..98b10437 100644 --- a/libdw/dwarf.h +++ b/libdw/dwarf.h @@ -966,6 +966,7 @@ enum DW_CFA_low_user = 0x1c, DW_CFA_MIPS_advance_loc8 = 0x1d, DW_CFA_GNU_window_save = 0x2d, + DW_CFA_AARCH64_negate_ra_state = 0x2d, DW_CFA_GNU_args_size = 0x2e, DW_CFA_GNU_negative_offset_extended = 0x2f, DW_CFA_high_user = 0x3f diff --git a/libdw/dwarf_getcfi.c b/libdw/dwarf_getcfi.c index 51932cd9..afa8a460 100644 --- a/libdw/dwarf_getcfi.c +++ b/libdw/dwarf_getcfi.c @@ -57,6 +57,11 @@ dwarf_getcfi (Dwarf *dbg) cfi->datarel = 0; cfi->e_ident = (unsigned char *) elf_getident (dbg->elf, NULL); + + GElf_Ehdr ehdr; + gelf_getehdr (dbg->elf, &ehdr); + cfi->e_machine = ehdr.e_machine; + cfi->other_byte_order = dbg->other_byte_order; cfi->default_same_value = false; diff --git a/libdw/dwarf_getcfi_elf.c b/libdw/dwarf_getcfi_elf.c index adcaea03..c0e3cadd 100644 --- a/libdw/dwarf_getcfi_elf.c +++ b/libdw/dwarf_getcfi_elf.c @@ -41,7 +41,7 @@ static Dwarf_CFI * -allocate_cfi (Elf *elf, GElf_Addr vaddr) +allocate_cfi (Elf *elf, const GElf_Ehdr *ehdr, GElf_Addr vaddr) { Dwarf_CFI *cfi = calloc (1, sizeof *cfi); if (cfi == NULL) @@ -58,6 +58,8 @@ allocate_cfi (Elf *elf, GElf_Addr vaddr) return NULL; } + cfi->e_machine = ehdr->e_machine; + if ((BYTE_ORDER == LITTLE_ENDIAN && cfi->e_ident[EI_DATA] == ELFDATA2MSB) || (BYTE_ORDER == BIG_ENDIAN && cfi->e_ident[EI_DATA] == ELFDATA2LSB)) cfi->other_byte_order = true; @@ -172,7 +174,7 @@ getcfi_gnu_eh_frame (Elf *elf, const GElf_Ehdr *ehdr, const GElf_Phdr *phdr) __libdw_seterrno (DWARF_E_INVALID_ELF); /* XXX might be read error */ return NULL; } - Dwarf_CFI *cfi = allocate_cfi (elf, eh_frame_ptr); + Dwarf_CFI *cfi = allocate_cfi (elf, ehdr, eh_frame_ptr); if (cfi != NULL) { cfi->data = (Elf_Data_Scn *) data; @@ -222,7 +224,7 @@ getcfi_scn_eh_frame (Elf *elf, const GElf_Ehdr *ehdr, __libdw_seterrno (DWARF_E_INVALID_ELF); return NULL; } - Dwarf_CFI *cfi = allocate_cfi (elf, shdr->sh_addr); + Dwarf_CFI *cfi = allocate_cfi (elf, ehdr, shdr->sh_addr); if (cfi != NULL) { cfi->data = (Elf_Data_Scn *) data; diff --git a/src/ChangeLog b/src/ChangeLog index 8a64a15e..0313d2a2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2020-09-03 Mark Wielaard + + * readelf.c (print_cfa_program): Take ehdr as argument. Use it to + recognize DW_CFA_AARCH64_negate_ra_state. + (print_debug_frame_section): Pass ehdr to print_cfa_program. + (print_debug): Don't warn if we dump frames, but cannot get dbg. + 2020-09-01 Mark Wielaard * readelf.c (print_debug_ranges_section): Base address entry can diff --git a/src/readelf.c b/src/readelf.c index dd6e28af..64067a57 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -6182,7 +6182,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, int data_align, unsigned int version, unsigned int ptr_size, unsigned int encoding, - Dwfl_Module *dwflmod, Ebl *ebl, Dwarf *dbg) + Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, Dwarf *dbg) { char regnamebuf[REGNAMESZ]; const char *regname (unsigned int regno) @@ -6405,8 +6405,11 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, printf (" MIPS_advance_loc8 %" PRIu64 " to %#" PRIx64 "\n", op1, pc += op1 * code_align); break; - case DW_CFA_GNU_window_save: - puts (" GNU_window_save"); + case DW_CFA_GNU_window_save: /* DW_CFA_AARCH64_negate_ra_state */ + if (ehdr->e_machine == EM_AARCH64) + puts (" AARCH64_negate_ra_state"); + else + puts (" GNU_window_save"); break; case DW_CFA_GNU_args_size: if ((uint64_t) (endp - readp) < 1) @@ -6936,7 +6939,7 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, else print_cfa_program (readp, cieend, vma_base, code_alignment_factor, data_alignment_factor, version, ptr_size, - fde_encoding, dwflmod, ebl, dbg); + fde_encoding, dwflmod, ebl, ehdr, dbg); readp = cieend; } } @@ -11100,7 +11103,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) }; if (dbg == NULL) { - if ((print_debug_sections & ~section_exception) != 0) + if ((print_debug_sections & ~(section_exception|section_frame)) != 0) error (0, 0, gettext ("cannot get debug context descriptor: %s"), dwfl_errmsg (-1)); dbg = &dummy_dbg; diff --git a/tests/ChangeLog b/tests/ChangeLog index 61c6cb7c..5f2b1449 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-09-03 Mark Wielaard + + * run-readelf-frames.sh: New test. + * Makefile.am (TESTS): Add run-readelf-frames.sh. + (EXTRA_DIST): Likewise. + 2020-09-03 Mark Wielaard * testfile-gnu-property-note-aarch64.bz2: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 939bbb6a..4629ce64 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -125,6 +125,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ 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-frames.sh \ run-readelf-n.sh \ run-native-test.sh run-bug1-test.sh \ run-debuglink.sh run-debugaltlink.sh run-buildid.sh \ @@ -313,6 +314,7 @@ 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-frames.sh \ run-readelf-n.sh \ testfile-gnu-property-note.bz2 testfile-gnu-property-note.o.bz2 \ testfile_gnu_props.32le.o.bz2 \ diff --git a/tests/run-readelf-frames.sh b/tests/run-readelf-frames.sh new file mode 100755 index 00000000..f0429d19 --- /dev/null +++ b/tests/run-readelf-frames.sh @@ -0,0 +1,173 @@ +#! /bin/sh +# Copyright (C) 2020 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 . + +. $srcdir/test-subr.sh + +# See run-readelf-n.sh +testfiles testfile-gnu-property-note-aarch64 + +testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=frames testfile-gnu-property-note-aarch64 <<\EOF + +Call frame search table section [17] '.eh_frame_hdr': + version: 1 + eh_frame_ptr_enc: 0x1b (sdata4 pcrel) + fde_count_enc: 0x3 (udata4) + table_enc: 0x3b (sdata4 datarel) + eh_frame_ptr: 0x44 (offset: 0x758) + fde_count: 7 + Table: + 0xfffffe70 (offset: 0x580) -> 0x5c fde=[ 14] + 0xfffffea0 (offset: 0x5b0) -> 0x70 fde=[ 28] + 0xfffffee0 (offset: 0x5f0) -> 0x84 fde=[ 3c] + 0xffffff20 (offset: 0x630) -> 0xac fde=[ 64] + 0xffffff28 (offset: 0x638) -> 0xc0 fde=[ 78] + 0xffffff40 (offset: 0x650) -> 0xd8 fde=[ 90] + 0xffffffc0 (offset: 0x6d0) -> 0x110 fde=[ c8] + +Call frame information section [18] '.eh_frame' at offset 0x758: + + [ 0] CIE length=16 + CIE_id: 0 + version: 1 + augmentation: "zR" + code_alignment_factor: 4 + data_alignment_factor: -8 + return_address_register: 30 + Augmentation data: 0x1b (FDE address encoding: sdata4 pcrel) + + Program: + def_cfa r31 (sp) at offset 0 + + [ 14] FDE length=16 cie=[ 0] + CIE_pointer: 24 + initial_location: 0x0000000000400580 (offset: 0x580) + address_range: 0x30 (end offset: 0x5b0) + + Program: + nop + nop + nop + + [ 28] FDE length=16 cie=[ 0] + CIE_pointer: 44 + initial_location: 0x00000000004005b0 (offset: 0x5b0) + address_range: 0x3c (end offset: 0x5ec) + + Program: + nop + nop + nop + + [ 3c] FDE length=36 cie=[ 0] + CIE_pointer: 64 + initial_location: 0x00000000004005f0 (offset: 0x5f0) + address_range: 0x38 (end offset: 0x628) + + Program: + advance_loc 1 to 0x5f4 + AARCH64_negate_ra_state + advance_loc 1 to 0x5f8 + def_cfa_offset 32 + offset r29 (x29) at cfa-32 + offset r30 (x30) at cfa-24 + advance_loc 2 to 0x600 + offset r19 (x19) at cfa-16 + advance_loc 8 to 0x620 + restore r30 (x30) + restore r29 (x29) + restore r19 (x19) + def_cfa_offset 0 + advance_loc 1 to 0x624 + AARCH64_negate_ra_state + nop + nop + nop + + [ 64] FDE length=16 cie=[ 0] + CIE_pointer: 104 + initial_location: 0x0000000000400630 (offset: 0x630) + address_range: 0x8 (end offset: 0x638) + + Program: + nop + nop + nop + + [ 78] FDE length=20 cie=[ 0] + CIE_pointer: 124 + initial_location: 0x0000000000400638 (offset: 0x638) + address_range: 0xc (end offset: 0x644) + + Program: + nop + nop + nop + nop + nop + nop + nop + + [ 90] FDE length=52 cie=[ 0] + CIE_pointer: 148 + initial_location: 0x0000000000400650 (offset: 0x650) + address_range: 0x80 (end offset: 0x6d0) + + Program: + advance_loc 1 to 0x654 + AARCH64_negate_ra_state + advance_loc 1 to 0x658 + def_cfa_offset 64 + offset r29 (x29) at cfa-64 + offset r30 (x30) at cfa-56 + advance_loc 2 to 0x660 + offset r19 (x19) at cfa-48 + offset r20 (x20) at cfa-40 + advance_loc 3 to 0x66c + offset r21 (x21) at cfa-32 + offset r22 (x22) at cfa-24 + advance_loc 5 to 0x680 + offset r23 (x23) at cfa-16 + offset r24 (x24) at cfa-8 + advance_loc 18 to 0x6c8 + restore r30 (x30) + restore r29 (x29) + restore r23 (x23) + restore r24 (x24) + restore r21 (x21) + restore r22 (x22) + restore r19 (x19) + restore r20 (x20) + def_cfa_offset 0 + advance_loc 1 to 0x6cc + AARCH64_negate_ra_state + nop + nop + + [ c8] FDE length=16 cie=[ 0] + CIE_pointer: 204 + initial_location: 0x00000000004006d0 (offset: 0x6d0) + address_range: 0x8 (end offset: 0x6d8) + + Program: + nop + nop + nop + + [ dc] Zero terminator +EOF + +exit 0 -- cgit v1.2.1 From 41a17386a6057d982e32eff832a645242a628221 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 8 Sep 2020 12:27:54 +0200 Subject: Prepare for 0.181 Set version to 0.181. Update NEWS and elfutils.spec.in. Regenerate po/*.po files. Signed-off-by: Mark Wielaard --- ChangeLog | 5 + NEWS | 17 + config/ChangeLog | 4 + config/elfutils.spec.in | 13 + configure.ac | 2 +- po/ChangeLog | 4 + po/de.po | 836 +++++++++++++++++++++++------------------------ po/es.po | 845 +++++++++++++++++++++++------------------------ po/ja.po | 845 +++++++++++++++++++++++------------------------ po/pl.po | 845 +++++++++++++++++++++++------------------------ po/uk.po | 848 ++++++++++++++++++++++++------------------------ 11 files changed, 2181 insertions(+), 2083 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f00fade..094a798a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-09-08 Mark Wielaard + + * configure.ac: Set version to 0.181. + * NEWS: Add 0.181 section. + 2020-08-20 Dmitry V. Levin * configure.ac (--enable-libdebuginfod): AC_DEFINE ENABLE_LIBDEBUGINFOD. diff --git a/NEWS b/NEWS index 3d097c68..1bdb4410 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,20 @@ +Version 0.181 + +libelf: elf_update now compensates (fixes up) a bad sh_addralign for + SHF_COMPRESSED sections. + +libdebuginfod: configure now takes --enable-libdebuginfod=dummy or + --disable-libdebuginfod for bootstrapping. + DEBUGINFOD_URLS now accepts "scheme-free" urls + (guessing at what the user meant, either http:// or file://) + +readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and gnu + property notes. + +libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows unwinding + on arm64 for code that is compiled for PAC (Pointer + Authentication Code) as long as it isn't enabled. + Version 0.180 elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given. diff --git a/config/ChangeLog b/config/ChangeLog index 459f7528..1cb3d204 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2020-09-08 Mark Wielaard + + * elfutils.spec.in: Update for 0.181. + 2020-06-16 Mark Wielaard * upload-release.sh: Use /usr/bin/env bash. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 7388829c..95f63f5a 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -327,6 +327,19 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Tue Sep 8 2020 Mark Wielaard 0.181-1 +- libelf: elf_update now compensates (fixes up) a bad sh_addralign + for SHF_COMPRESSED sections. +- libdebuginfod: configure now takes --enable-libdebuginfod=dummy or + --disable-libdebuginfod for bootstrapping. + DEBUGINFOD_URLS now accepts "scheme-free" urls + (guessing at what the user meant, either http:// or file://) +- readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and + gnu property notes. +- libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows + unwinding on arm64 for code that is compiled for PAC + (Pointer Authentication Code) as long as it isn't enabled. + * Thu Jun 11 2020 Mark Wielaard 0.180-1 - elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given. - libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix. diff --git a/configure.ac b/configure.ac index f3f1597b..bf833872 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 . -AC_INIT([elfutils],[0.180],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) +AC_INIT([elfutils],[0.181],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) dnl Workaround for older autoconf < 2.64 m4_ifndef([AC_PACKAGE_URL], diff --git a/po/ChangeLog b/po/ChangeLog index 620931ee..1506f343 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2020-09-08 Mark Wielaard + + * *.po: Update for 0.181. + 2020-06-11 Mark Wielaard * *.po: Update for 0.180. diff --git a/po/de.po b/po/de.po index d58a7342..4f6e00b4 100644 --- a/po/de.po +++ b/po/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-06-11 15:50+0200\n" +"POT-Creation-Date: 2020-09-08 12:51+0200\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch \n" "Language-Team: German\n" @@ -55,17 +55,17 @@ msgstr "" "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:3449 -#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599 +#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr verfügbar" -#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51 +#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:54 #: libelf/elf_error.c:60 msgid "no error" msgstr "kein Fehler" -#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53 +#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:56 #: libelf/elf_error.c:91 msgid "out of memory" msgstr "nicht genügend Speicher" @@ -102,7 +102,7 @@ msgstr "Fehler bei Datenausgabe" msgid "no backend support available" msgstr "keine Backend-Unterstützung verfügbar" -#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52 +#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:55 #: libelf/elf_error.c:63 msgid "unknown error" msgstr "unbekannter Fehler" @@ -218,7 +218,7 @@ msgstr "Ungültige DWARF Version" msgid "invalid directory index" msgstr "ungültiger Verzeichnisindex" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:72 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 msgid "address out of range" msgstr "Außerhalb des Adressbereiches" @@ -249,7 +249,7 @@ msgstr "Ungültiger Zeilenindex" msgid "invalid address range index" msgstr "Ungültiger Adressbereichs Index" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:73 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 msgid "no matching address range" msgstr "Kein passender Adressbereich" @@ -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:2540 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 msgid "Input selection options:" msgstr "Eingabeauswahloptionen:" @@ -328,7 +328,7 @@ msgstr "Finde Adressen im laufenden Kernel" msgid "Kernel with all modules" msgstr "Kernel mit allen Modulen" -#: libdwfl/argp-std.c:63 src/stack.c:645 +#: libdwfl/argp-std.c:63 src/stack.c:650 msgid "Search path for separate debuginfo files" msgstr "Dateisuchpfad für separate Debug-Informationen" @@ -363,165 +363,165 @@ msgstr "nicht genügend Speicher" msgid "No modules recognized in core file" msgstr "Keine Module in der Kerndatei gefunden" -#: libdwfl/libdwflP.h:54 +#: libdwfl/libdwflP.h:57 msgid "See errno" msgstr "" -#: libdwfl/libdwflP.h:55 +#: libdwfl/libdwflP.h:58 msgid "See elf_errno" msgstr "" -#: libdwfl/libdwflP.h:56 +#: libdwfl/libdwflP.h:59 msgid "See dwarf_errno" msgstr "" -#: libdwfl/libdwflP.h:57 +#: libdwfl/libdwflP.h:60 msgid "See ebl_errno (XXX missing)" msgstr "" -#: libdwfl/libdwflP.h:58 +#: libdwfl/libdwflP.h:61 msgid "gzip decompression failed" msgstr "" -#: libdwfl/libdwflP.h:59 +#: libdwfl/libdwflP.h:62 msgid "bzip2 decompression failed" msgstr "" -#: libdwfl/libdwflP.h:60 +#: libdwfl/libdwflP.h:63 msgid "LZMA decompression failed" msgstr "" -#: libdwfl/libdwflP.h:61 +#: libdwfl/libdwflP.h:64 msgid "no support library found for machine" msgstr "" -#: libdwfl/libdwflP.h:62 +#: libdwfl/libdwflP.h:65 msgid "Callbacks missing for ET_REL file" msgstr "" -#: libdwfl/libdwflP.h:63 +#: libdwfl/libdwflP.h:66 msgid "Unsupported relocation type" msgstr "" -#: libdwfl/libdwflP.h:64 +#: libdwfl/libdwflP.h:67 msgid "r_offset is bogus" msgstr "" -#: libdwfl/libdwflP.h:65 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "Offset ausserhalb des Bereichs" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:69 #, fuzzy msgid "relocation refers to undefined symbol" msgstr "Zeige Grösse der definierten Symbole" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:70 msgid "Callback returned failure" msgstr "" -#: libdwfl/libdwflP.h:68 +#: libdwfl/libdwflP.h:71 #, fuzzy msgid "No DWARF information found" msgstr "keine DWARF Information" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:72 msgid "No symbol table found" msgstr "" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:73 #, fuzzy msgid "No ELF program headers" msgstr "Programm-Köpfe anzeigen" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:74 msgid "address range overlaps an existing module" msgstr "" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:77 msgid "image truncated" msgstr "" -#: libdwfl/libdwflP.h:75 +#: libdwfl/libdwflP.h:78 #, fuzzy msgid "ELF file opened" msgstr "keine ELF Datei" -#: libdwfl/libdwflP.h:76 +#: libdwfl/libdwflP.h:79 #, fuzzy msgid "not a valid ELF file" msgstr "Ungültige ELF Datei" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:80 #, fuzzy msgid "cannot handle DWARF type description" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:81 msgid "ELF file does not match build ID" msgstr "" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:82 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:83 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:84 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:85 #, fuzzy msgid "Invalid register" msgstr "ungültiger Parameter" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:86 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:87 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:88 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:89 #, fuzzy msgid "Invalid DWARF" msgstr "DWARF ungültig" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:90 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:91 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:92 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:93 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:94 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:95 #, fuzzy msgid "Invalid argument" msgstr "ungültiger Parameter" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "Ungültige ELF Datei" @@ -593,7 +593,7 @@ msgstr " Build ID: " msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:571 +#: libebl/eblobjnote.c:638 #, 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:6166 +#: libelf/elf_error.c:87 src/readelf.c:6172 #, 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:9914 src/readelf.c:10514 -#: src/readelf.c:10615 src/readelf.c:10797 +#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 +#: src/readelf.c:10636 src/readelf.c:10818 #, 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:923 src/ar.c:1127 +#: src/ar.c:472 src/ar.c:927 src/ar.c:1134 #, c-format msgid "cannot create hash table" msgstr "Konnte Hash-Tabelle nicht erstellen" -#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 +#: src/ar.c:479 src/ar.c:934 src/ar.c:1143 #, c-format msgid "cannot insert into hash table" msgstr "Konnte nicht in Hash-Tabelle einfügen" @@ -1093,67 +1093,67 @@ msgstr "Konnte Bearbeitungszeit von %s nicht ändern" msgid "cannot rename temporary file to %.*s" msgstr "Konnte temporäre Datei nicht in %.*s umbenennen" -#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "neue Datei konnte nicht angelegt werden" -#: src/ar.c:1218 +#: src/ar.c:1225 #, c-format msgid "position member %s not found" msgstr "" -#: src/ar.c:1228 +#: src/ar.c:1235 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: Kein Eintrag %s in dem Archiv!\n" -#: src/ar.c:1257 src/objdump.c:241 +#: src/ar.c:1264 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "Konnte %s nicht öffnen" -#: src/ar.c:1262 +#: src/ar.c:1269 #, c-format msgid "cannot stat %s" msgstr "" -#: src/ar.c:1268 +#: src/ar.c:1275 #, c-format msgid "%s is no regular file" msgstr "%s ist keine reguläre Datei" -#: src/ar.c:1281 +#: src/ar.c:1288 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "" -#: src/ar.c:1301 +#: src/ar.c:1308 #, c-format msgid "cannot read %s: %s" msgstr "Konnte %s: %s nicht lesen" -#: src/ar.c:1476 +#: src/ar.c:1483 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1482 +#: src/ar.c:1489 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1488 +#: src/ar.c:1495 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/ar.c:1494 +#: src/ar.c:1501 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/ar.c:1500 +#: src/ar.c:1507 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "Konnte %s nicht öffnen" @@ -1375,7 +1375,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2189 src/unstrip.c:2218 +#: src/unstrip.c:2191 src/unstrip.c:2220 #, c-format msgid "cannot open '%s'" msgstr "'%s' kann nicht geöffnet werden" @@ -1673,7 +1673,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 #: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099 -#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440 +#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4441 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "" @@ -2735,501 +2735,501 @@ msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3699 +#: src/elflint.c:3700 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3703 +#: src/elflint.c:3704 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3705 +#: src/elflint.c:3706 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3707 +#: src/elflint.c:3708 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3709 +#: src/elflint.c:3710 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3711 +#: src/elflint.c:3712 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3713 +#: src/elflint.c:3714 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3715 +#: src/elflint.c:3716 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3718 +#: src/elflint.c:3719 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3722 +#: src/elflint.c:3723 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3726 +#: src/elflint.c:3727 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3744 +#: src/elflint.c:3745 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3753 +#: src/elflint.c:3754 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3780 +#: src/elflint.c:3781 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3798 +#: src/elflint.c:3799 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3816 +#: src/elflint.c:3817 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3834 +#: src/elflint.c:3835 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3840 src/elflint.c:3872 +#: src/elflint.c:3841 src/elflint.c:3873 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3845 src/elflint.c:3877 +#: src/elflint.c:3846 src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3853 +#: src/elflint.c:3854 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3896 +#: src/elflint.c:3897 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3901 +#: src/elflint.c:3902 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3911 +#: src/elflint.c:3912 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3931 +#: src/elflint.c:3932 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" msgstr "" -#: src/elflint.c:3938 +#: src/elflint.c:3939 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "" -#: src/elflint.c:3946 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3956 +#: src/elflint.c:3957 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:3961 +#: src/elflint.c:3962 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:3967 +#: src/elflint.c:3968 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "" -#: src/elflint.c:3973 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3978 +#: src/elflint.c:3979 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:3985 +#: src/elflint.c:3986 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:3990 +#: src/elflint.c:3991 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:4009 +#: src/elflint.c:4010 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:4018 +#: src/elflint.c:4019 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:4025 +#: src/elflint.c:4026 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:4056 +#: src/elflint.c:4057 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4092 +#: src/elflint.c:4093 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4103 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4114 +#: src/elflint.c:4115 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4124 +#: src/elflint.c:4125 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4134 +#: src/elflint.c:4135 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4140 +#: src/elflint.c:4141 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4199 +#: src/elflint.c:4200 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4222 +#: src/elflint.c:4223 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4233 +#: src/elflint.c:4234 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4239 +#: src/elflint.c:4240 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4250 +#: src/elflint.c:4251 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4263 +#: src/elflint.c:4264 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4277 +#: src/elflint.c:4278 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4326 +#: src/elflint.c:4327 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" -#: src/elflint.c:4330 +#: src/elflint.c:4331 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4379 +#: src/elflint.c:4380 #, c-format msgid "" "phdr[%d]: unknown object file note type % with owner name '%s' at " "offset %zu\n" msgstr "" -#: src/elflint.c:4384 +#: src/elflint.c:4385 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % with owner name " "'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4403 +#: src/elflint.c:4404 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4423 +#: src/elflint.c:4424 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4426 +#: src/elflint.c:4427 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4447 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4454 +#: src/elflint.c:4455 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4457 +#: src/elflint.c:4458 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4475 +#: src/elflint.c:4476 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4490 +#: src/elflint.c:4491 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4500 +#: src/elflint.c:4501 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" -#: src/elflint.c:4511 +#: src/elflint.c:4512 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4519 +#: src/elflint.c:4520 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4526 +#: src/elflint.c:4527 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4540 +#: src/elflint.c:4541 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4543 +#: src/elflint.c:4544 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4553 +#: src/elflint.c:4554 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4574 +#: src/elflint.c:4575 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4585 +#: src/elflint.c:4586 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4592 +#: src/elflint.c:4593 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4601 src/elflint.c:4624 +#: src/elflint.c:4602 src/elflint.c:4625 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4630 +#: src/elflint.c:4631 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4657 +#: src/elflint.c:4658 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4660 +#: src/elflint.c:4661 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4673 +#: src/elflint.c:4674 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4681 +#: src/elflint.c:4682 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4684 +#: src/elflint.c:4685 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4688 +#: src/elflint.c:4689 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4691 +#: src/elflint.c:4692 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4696 +#: src/elflint.c:4697 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4699 +#: src/elflint.c:4700 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4710 +#: src/elflint.c:4711 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4717 +#: src/elflint.c:4718 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4720 +#: src/elflint.c:4721 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4733 +#: src/elflint.c:4734 #, 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:4767 +#: src/elflint.c:4768 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4779 +#: src/elflint.c:4780 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "neue Datei konnte nicht angelegt werden" -#: src/elflint.c:4800 +#: src/elflint.c:4801 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3490,8 +3490,8 @@ msgstr "Kann Suchbaum nicht erstellen" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420 -#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 +#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -3808,11 +3808,11 @@ msgstr "" msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604 -#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212 -#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483 -#: src/unstrip.c:1658 src/unstrip.c:1809 src/unstrip.c:1952 src/unstrip.c:2051 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 +#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 +#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 +#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 #, c-format msgid "cannot get section header: %s" msgstr "" @@ -3822,8 +3822,8 @@ msgstr "" msgid "cannot get section name" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:670 src/readelf.c:6576 src/readelf.c:10502 src/readelf.c:10604 -#: src/readelf.c:10782 +#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 +#: src/readelf.c:10803 #, c-format msgid "cannot get %s content: %s" msgstr "" @@ -4145,7 +4145,7 @@ msgid "" " Segment Sections..." msgstr "" -#: src/readelf.c:1460 src/unstrip.c:2110 src/unstrip.c:2152 src/unstrip.c:2159 +#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 #, c-format msgid "cannot get program header: %s" msgstr "" @@ -4180,8 +4180,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522 -#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 +#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 msgid "Couldn't uncompress section" msgstr "" @@ -4629,9 +4629,9 @@ msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr "" #: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6586 src/readelf.c:8323 src/readelf.c:9009 src/readelf.c:9445 -#: src/readelf.c:9690 src/readelf.c:9856 src/readelf.c:10243 -#: src/readelf.c:10303 +#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 +#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 +#: src/readelf.c:10324 #, c-format msgid "" "\n" @@ -4643,37 +4643,37 @@ msgstr "" msgid "cannot get .debug_addr section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9054 +#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 #, fuzzy, c-format msgid " Length: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9067 +#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9076 +#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9086 +#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9071 src/readelf.c:10435 +#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 #, fuzzy, c-format msgid "Unknown version" msgstr "unbekannte Version" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9081 +#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 #, fuzzy, c-format msgid "unsupported address size" msgstr "Kein Adress-Wert" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9091 +#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 #, c-format msgid "unsupported segment size" msgstr "" @@ -4705,15 +4705,15 @@ msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" msgstr "" -#: src/readelf.c:5446 src/readelf.c:8350 +#: src/readelf.c:5446 src/readelf.c:8359 #, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6610 src/readelf.c:8361 -#: src/readelf.c:9035 +#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 +#: src/readelf.c:9050 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" @@ -4762,39 +4762,39 @@ msgstr "" msgid "cannot get .debug_rnglists content: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:5632 src/readelf.c:9041 +#: src/readelf.c:5632 src/readelf.c:9056 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " %s: %\n" -#: src/readelf.c:5687 src/readelf.c:9096 +#: src/readelf.c:5687 src/readelf.c:9111 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5703 src/readelf.c:9112 +#: src/readelf.c:5703 src/readelf.c:9127 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9114 +#: src/readelf.c:5705 src/readelf.c:9129 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9120 +#: src/readelf.c:5711 src/readelf.c:9135 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9131 +#: src/readelf.c:5722 src/readelf.c:9146 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9135 +#: src/readelf.c:5726 src/readelf.c:9150 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " %s: %\n" @@ -4804,7 +4804,7 @@ msgstr " %s: %\n" msgid "invalid range list data" msgstr "Ungültige Daten" -#: src/readelf.c:5963 src/readelf.c:9423 +#: src/readelf.c:5963 src/readelf.c:9438 #, c-format msgid "" " %zu padding bytes\n" @@ -4816,119 +4816,117 @@ msgstr "" msgid "cannot get .debug_ranges content: %s" msgstr "" -#: src/readelf.c:6016 src/readelf.c:9478 +#: src/readelf.c:6016 src/readelf.c:9493 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9480 +#: src/readelf.c:6018 src/readelf.c:9495 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9506 src/readelf.c:9532 +#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 #, c-format msgid " [%6tx] \n" msgstr "" -#: src/readelf.c:6048 src/readelf.c:9612 -#, c-format -msgid "" -" [%6tx] base address\n" -" " -msgstr "" +#: src/readelf.c:6052 src/readelf.c:9631 +#, fuzzy +msgid "base address" +msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:6056 src/readelf.c:9620 +#: src/readelf.c:6062 src/readelf.c:9641 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:6311 +#: src/readelf.c:6317 msgid " \n" msgstr "" -#: src/readelf.c:6564 +#: src/readelf.c:6573 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:6582 +#: src/readelf.c:6591 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#:\n" msgstr "" -#: src/readelf.c:6632 +#: src/readelf.c:6641 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:6733 src/readelf.c:6887 +#: src/readelf.c:6742 src/readelf.c:6896 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:6748 +#: src/readelf.c:6757 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:6754 +#: src/readelf.c:6763 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:6864 +#: src/readelf.c:6873 #, c-format msgid " (offset: %#)" msgstr "" -#: src/readelf.c:6871 +#: src/readelf.c:6880 #, c-format msgid " (end offset: %#)" msgstr "" -#: src/readelf.c:6908 +#: src/readelf.c:6917 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "" -#: src/readelf.c:6993 +#: src/readelf.c:7002 #, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "" -#: src/readelf.c:7003 +#: src/readelf.c:7012 #, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "" -#: src/readelf.c:7025 +#: src/readelf.c:7034 #, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "" -#: src/readelf.c:7355 +#: src/readelf.c:7364 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "Ungültige Datei" -#: src/readelf.c:7359 +#: src/readelf.c:7368 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr "unbekannte Form %" -#: src/readelf.c:7363 +#: src/readelf.c:7372 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:7676 +#: src/readelf.c:7685 #, c-format msgid "" "\n" @@ -4936,12 +4934,12 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:7726 +#: src/readelf.c:7735 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:7745 +#: src/readelf.c:7754 #, c-format msgid "" " Type unit at offset %:\n" @@ -4950,7 +4948,7 @@ msgid "" " Type signature: %#, Type offset: %# [%]\n" msgstr "" -#: src/readelf.c:7757 +#: src/readelf.c:7766 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -4958,37 +4956,37 @@ msgid "" "%, Offset size: %\n" msgstr "" -#: src/readelf.c:7767 src/readelf.c:7930 +#: src/readelf.c:7776 src/readelf.c:7939 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7794 +#: src/readelf.c:7803 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7823 +#: src/readelf.c:7832 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:7832 +#: src/readelf.c:7841 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:7870 +#: src/readelf.c:7879 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:7878 +#: src/readelf.c:7887 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:7922 +#: src/readelf.c:7931 #, c-format msgid "" " Split compilation unit at offset %:\n" @@ -4996,7 +4994,7 @@ msgid "" "%, Offset size: %\n" msgstr "" -#: src/readelf.c:7974 +#: src/readelf.c:7983 #, c-format msgid "" "\n" @@ -5004,18 +5002,18 @@ msgid "" "\n" msgstr "" -#: src/readelf.c:8306 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "unknown form: %s" msgstr "unbekannte Form %" -#: src/readelf.c:8337 +#: src/readelf.c:8346 #, c-format msgid "cannot get line data section data: %s" msgstr "" #. Print what we got so far. -#: src/readelf.c:8439 +#: src/readelf.c:8448 #, c-format msgid "" "\n" @@ -5034,171 +5032,177 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:8461 +#: src/readelf.c:8470 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:8469 +#: src/readelf.c:8478 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "Kein Adress-Wert" -#: src/readelf.c:8477 +#: src/readelf.c:8486 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "" -#: src/readelf.c:8487 +#: src/readelf.c:8496 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:8502 +#: src/readelf.c:8511 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:8513 +#: src/readelf.c:8522 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:8519 src/readelf.c:8596 +#: src/readelf.c:8528 src/readelf.c:8605 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8590 +#: src/readelf.c:8599 msgid "" "\n" "File name table:" msgstr "" -#: src/readelf.c:8651 +#: src/readelf.c:8660 msgid " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:8688 +#: src/readelf.c:8699 +msgid "" +"\n" +"No line number statements." +msgstr "" + +#: src/readelf.c:8703 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:8711 +#: src/readelf.c:8726 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8745 +#: src/readelf.c:8760 #, c-format msgid " special opcode %u: address+%u = " msgstr "" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" -#: src/readelf.c:8752 +#: src/readelf.c:8767 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8770 +#: src/readelf.c:8785 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:8775 +#: src/readelf.c:8790 msgid " end of sequence" msgstr "" -#: src/readelf.c:8793 +#: src/readelf.c:8808 #, fuzzy, c-format msgid " set address to " msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:8821 +#: src/readelf.c:8836 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" -#: src/readelf.c:8835 +#: src/readelf.c:8850 #, c-format msgid " set discriminator to %u\n" msgstr "" #. Unknown, ignore it. -#: src/readelf.c:8840 +#: src/readelf.c:8855 #, fuzzy msgid " unknown opcode" msgstr "unbekannter Typ" #. Takes no argument. -#: src/readelf.c:8852 +#: src/readelf.c:8867 msgid " copy" msgstr "" -#: src/readelf.c:8863 +#: src/readelf.c:8878 #, c-format msgid " advance address by %u to " msgstr "" -#: src/readelf.c:8867 src/readelf.c:8928 +#: src/readelf.c:8882 src/readelf.c:8943 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8879 +#: src/readelf.c:8894 #, c-format msgid " advance line by constant %d to %\n" msgstr "" -#: src/readelf.c:8889 +#: src/readelf.c:8904 #, c-format msgid " set file to %\n" msgstr "" -#: src/readelf.c:8900 +#: src/readelf.c:8915 #, c-format msgid " set column to %\n" msgstr "" -#: src/readelf.c:8907 +#: src/readelf.c:8922 #, c-format msgid " set '%s' to %\n" msgstr "" #. Takes no argument. -#: src/readelf.c:8913 +#: src/readelf.c:8928 msgid " set basic block flag" msgstr "" -#: src/readelf.c:8924 +#: src/readelf.c:8939 #, c-format msgid " advance address by constant %u to " msgstr "" -#: src/readelf.c:8944 +#: src/readelf.c:8959 #, c-format msgid " advance address by fixed value %u to \n" msgstr "" #. Takes no argument. -#: src/readelf.c:8954 +#: src/readelf.c:8969 msgid " set prologue end flag" msgstr "" #. Takes no argument. -#: src/readelf.c:8959 +#: src/readelf.c:8974 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:8969 +#: src/readelf.c:8984 #, c-format msgid " set isa to %u\n" msgstr "" @@ -5206,103 +5210,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:8978 +#: src/readelf.c:8993 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:9018 +#: src/readelf.c:9033 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/readelf.c:9187 +#: src/readelf.c:9202 #, fuzzy, c-format msgid "invalid loclists data" msgstr "Ungültige Daten" -#: src/readelf.c:9440 +#: src/readelf.c:9455 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "" -#: src/readelf.c:9647 src/readelf.c:10691 +#: src/readelf.c:9668 src/readelf.c:10712 msgid " \n" msgstr "" -#: src/readelf.c:9702 src/readelf.c:9865 +#: src/readelf.c:9723 src/readelf.c:9886 #, c-format msgid "cannot get macro information section data: %s" msgstr "" -#: src/readelf.c:9782 +#: src/readelf.c:9803 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:9805 +#: src/readelf.c:9826 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "" -#: src/readelf.c:9906 +#: src/readelf.c:9927 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " %s: %\n" -#: src/readelf.c:9918 +#: src/readelf.c:9939 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9924 src/readelf.c:10811 +#: src/readelf.c:9945 src/readelf.c:10832 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9931 +#: src/readelf.c:9952 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " %s: %\n" -#: src/readelf.c:9960 +#: src/readelf.c:9981 #, c-format msgid " Offset length: %\n" msgstr "" -#: src/readelf.c:9968 +#: src/readelf.c:9989 #, c-format msgid " .debug_line offset: 0x%\n" msgstr "" -#: src/readelf.c:9993 +#: src/readelf.c:10014 #, c-format msgid " extension opcode table, % items:\n" msgstr "" -#: src/readelf.c:10000 +#: src/readelf.c:10021 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10012 +#: src/readelf.c:10033 #, c-format msgid " % arguments:" msgstr "" -#: src/readelf.c:10027 +#: src/readelf.c:10048 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10228 +#: src/readelf.c:10249 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" -#: src/readelf.c:10272 +#: src/readelf.c:10293 #, c-format msgid "" "\n" @@ -5310,72 +5314,72 @@ msgid "" " %*s String\n" msgstr "" -#: src/readelf.c:10287 +#: src/readelf.c:10308 #, c-format msgid " *** error, missing string terminator\n" msgstr "" -#: src/readelf.c:10316 +#: src/readelf.c:10337 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:10415 +#: src/readelf.c:10436 #, fuzzy, c-format msgid " Length: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10417 +#: src/readelf.c:10438 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10431 +#: src/readelf.c:10452 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10440 +#: src/readelf.c:10461 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10494 +#: src/readelf.c:10515 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:10596 +#: src/readelf.c:10617 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:10619 +#: src/readelf.c:10640 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:10631 +#: src/readelf.c:10652 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:10646 +#: src/readelf.c:10667 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:10659 +#: src/readelf.c:10680 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:10673 +#: src/readelf.c:10694 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5384,142 +5388,142 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:10746 +#: src/readelf.c:10767 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:10773 +#: src/readelf.c:10794 #, c-format msgid "" "\n" "GDB section [%2zu] '%s' at offset %# contains % bytes :\n" msgstr "" -#: src/readelf.c:10802 +#: src/readelf.c:10823 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10820 +#: src/readelf.c:10841 #, c-format msgid " CU offset: %#\n" msgstr "" -#: src/readelf.c:10827 +#: src/readelf.c:10848 #, c-format msgid " TU offset: %#\n" msgstr "" -#: src/readelf.c:10834 +#: src/readelf.c:10855 #, c-format msgid " address offset: %#\n" msgstr "" -#: src/readelf.c:10841 +#: src/readelf.c:10862 #, c-format msgid " symbol offset: %#\n" msgstr "" -#: src/readelf.c:10848 +#: src/readelf.c:10869 #, c-format msgid " constant offset: %#\n" msgstr "" -#: src/readelf.c:10862 +#: src/readelf.c:10883 #, c-format msgid "" "\n" " CU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10887 +#: src/readelf.c:10908 #, c-format msgid "" "\n" " TU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10916 +#: src/readelf.c:10937 #, c-format msgid "" "\n" " Address list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10948 +#: src/readelf.c:10969 #, c-format msgid "" "\n" " Symbol table at offset %# contains %zu slots:\n" msgstr "" -#: src/readelf.c:11086 +#: src/readelf.c:11107 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187 -#: src/readelf.c:12245 +#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 +#: src/readelf.c:12266 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:11817 +#: src/readelf.c:11838 #, c-format msgid "" "\n" "%*s... ..." msgstr "" -#: src/readelf.c:12324 +#: src/readelf.c:12345 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:12353 +#: src/readelf.c:12374 #, c-format msgid " %-13.*s %9 %s\n" msgstr "" -#: src/readelf.c:12405 +#: src/readelf.c:12426 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "Konnte Inhalt von %s: %s nicht lesen" -#: src/readelf.c:12439 +#: src/readelf.c:12460 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12462 +#: src/readelf.c:12483 #, c-format msgid "" "\n" "Note segment of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12509 +#: src/readelf.c:12530 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12536 src/readelf.c:12587 +#: src/readelf.c:12557 src/readelf.c:12608 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12541 +#: src/readelf.c:12562 #, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12546 +#: src/readelf.c:12567 #, c-format msgid "" "\n" @@ -5527,21 +5531,21 @@ msgid "" "%#0:\n" msgstr "" -#: src/readelf.c:12560 +#: src/readelf.c:12581 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12592 +#: src/readelf.c:12613 #, c-format msgid "" "\n" "String section [%zu] '%s' contains % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12597 +#: src/readelf.c:12618 #, c-format msgid "" "\n" @@ -5549,45 +5553,45 @@ msgid "" "offset %#0:\n" msgstr "" -#: src/readelf.c:12646 +#: src/readelf.c:12667 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:12676 +#: src/readelf.c:12697 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:12733 +#: src/readelf.c:12754 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:12736 +#: src/readelf.c:12757 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:12740 +#: src/readelf.c:12761 #, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" -#: src/readelf.c:12758 +#: src/readelf.c:12779 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:12763 +#: src/readelf.c:12784 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -5664,107 +5668,107 @@ msgstr "konnte Abschnittsdaten nicht holen: %s" msgid "(TOTALS)\n" msgstr "" -#: src/stack.c:482 +#: src/stack.c:487 #, c-format msgid "-p PID should be a positive process id." msgstr "" -#: src/stack.c:488 +#: src/stack.c:493 #, fuzzy, c-format msgid "Cannot open core file '%s'" msgstr "Konnte Archiv '%s' nicht öffnen" -#: src/stack.c:548 +#: src/stack.c:553 #, c-format msgid "-n MAXFRAMES should be 0 or higher." msgstr "" -#: src/stack.c:560 +#: src/stack.c:565 #, c-format msgid "-e EXEC needs a core given by --core." msgstr "" -#: src/stack.c:564 +#: src/stack.c:569 #, c-format msgid "-1 needs a thread id given by -p." msgstr "" -#: src/stack.c:568 +#: src/stack.c:573 #, c-format msgid "One of -p PID or --core COREFILE should be given." msgstr "" -#: src/stack.c:640 +#: src/stack.c:645 #, fuzzy msgid "Show stack of process PID" msgstr "Kann Suchbaum nicht erstellen" -#: src/stack.c:642 +#: src/stack.c:647 msgid "Show stack found in COREFILE" msgstr "" -#: src/stack.c:643 +#: src/stack.c:648 msgid "(optional) EXECUTABLE that produced COREFILE" msgstr "" -#: src/stack.c:647 +#: src/stack.c:652 #, fuzzy msgid "Output selection options:" msgstr "Eingabeauswahloptionen:" -#: src/stack.c:649 +#: src/stack.c:654 msgid "Additionally show frame activation" msgstr "" -#: src/stack.c:651 +#: src/stack.c:656 msgid "Additionally try to lookup DWARF debuginfo name for frame address" msgstr "" -#: src/stack.c:654 +#: src/stack.c:659 msgid "" "Additionally show inlined function frames using DWARF debuginfo if available " "(implies -d)" msgstr "" -#: src/stack.c:656 +#: src/stack.c:661 msgid "Additionally show module file information" msgstr "" -#: src/stack.c:658 +#: src/stack.c:663 msgid "Additionally show source file information" msgstr "" -#: src/stack.c:660 +#: src/stack.c:665 msgid "" "Show all additional information (activation, debugname, inlines, module and " "source)" msgstr "" -#: src/stack.c:662 +#: src/stack.c:667 msgid "Do not resolve address to function symbol name" msgstr "" -#: src/stack.c:664 +#: src/stack.c:669 msgid "Show raw function symbol names, do not try to demangle names" msgstr "" -#: src/stack.c:666 +#: src/stack.c:671 msgid "Show module build-id, load address and pc offset" msgstr "" -#: src/stack.c:668 +#: src/stack.c:673 msgid "Show the backtrace of only one thread" msgstr "" -#: src/stack.c:670 +#: src/stack.c:675 msgid "Show at most MAXFRAMES per thread (default 256, use 0 for unlimited)" msgstr "" -#: src/stack.c:672 +#: src/stack.c:677 msgid "Show module memory map with build-id, elf and debug files detected" msgstr "" -#: src/stack.c:680 +#: src/stack.c:685 msgid "" "Print a stack for each thread in a process or core file.\n" "\n" @@ -5776,7 +5780,7 @@ msgid "" "arguments it will exit with return code 64." msgstr "" -#: src/stack.c:755 +#: src/stack.c:760 #, c-format msgid "Couldn't show any frames." msgstr "" @@ -6175,7 +6179,7 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:248 src/unstrip.c:2081 +#: src/unstrip.c:248 src/unstrip.c:2083 #, c-format msgid "cannot get ELF header: %s" msgstr "" @@ -6195,12 +6199,12 @@ msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:269 src/unstrip.c:2099 src/unstrip.c:2142 +#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:274 src/unstrip.c:2103 +#: src/unstrip.c:274 src/unstrip.c:2105 #, c-format msgid "cannot create program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" @@ -6215,12 +6219,12 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:293 src/unstrip.c:1703 +#: src/unstrip.c:293 src/unstrip.c:1705 #, c-format msgid "cannot get section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:295 src/unstrip.c:1705 +#: src/unstrip.c:295 src/unstrip.c:1707 #, c-format msgid "cannot copy section data: %s" msgstr "konnte Abschnittsdaten nicht kopieren: %s" @@ -6230,14 +6234,14 @@ msgstr "konnte Abschnittsdaten nicht kopieren: %s" msgid "cannot create directory '%s'" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: src/unstrip.c:391 src/unstrip.c:651 src/unstrip.c:685 src/unstrip.c:853 -#: src/unstrip.c:1745 +#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 +#: src/unstrip.c:1747 #, c-format msgid "cannot get symbol table entry: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/unstrip.c:407 src/unstrip.c:654 src/unstrip.c:675 src/unstrip.c:688 -#: src/unstrip.c:1766 src/unstrip.c:1961 src/unstrip.c:1985 +#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 +#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 #, c-format msgid "cannot update symbol table: %s" msgstr "konnte Symboltabelle nicht aktualisieren: %s" @@ -6252,238 +6256,238 @@ msgstr "" msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:574 +#: src/unstrip.c:576 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:587 +#: src/unstrip.c:589 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:842 +#: src/unstrip.c:844 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:844 +#: src/unstrip.c:846 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:861 +#: src/unstrip.c:863 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "ungültiger Offset %zu für Symbol %s" -#: src/unstrip.c:1019 src/unstrip.c:1423 +#: src/unstrip.c:1021 src/unstrip.c:1425 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1034 +#: src/unstrip.c:1036 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "ungültige .debug_line Sektion" -#: src/unstrip.c:1040 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "couldn't get shdr for group section: %s" msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" -#: src/unstrip.c:1045 +#: src/unstrip.c:1047 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "ungültige .debug_line Sektion" -#: src/unstrip.c:1051 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:1056 +#: src/unstrip.c:1058 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:1098 src/unstrip.c:1117 src/unstrip.c:1155 +#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1135 +#: src/unstrip.c:1137 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1146 +#: src/unstrip.c:1148 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1202 src/unstrip.c:1549 +#: src/unstrip.c:1204 src/unstrip.c:1551 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1327 src/unstrip.c:1343 src/unstrip.c:1629 src/unstrip.c:1920 +#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1352 +#: src/unstrip.c:1354 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1381 src/unstrip.c:1385 +#: src/unstrip.c:1383 src/unstrip.c:1387 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1389 src/unstrip.c:1393 src/unstrip.c:1644 +#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1396 +#: src/unstrip.c:1398 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1400 +#: src/unstrip.c:1402 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1471 src/unstrip.c:1564 +#: src/unstrip.c:1473 src/unstrip.c:1566 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1623 +#: src/unstrip.c:1625 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1753 +#: src/unstrip.c:1755 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:1785 +#: src/unstrip.c:1787 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:2060 +#: src/unstrip.c:2062 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:2089 +#: src/unstrip.c:2091 #, c-format msgid "cannot update ELF header: %s" msgstr "" -#: src/unstrip.c:2113 +#: src/unstrip.c:2115 #, c-format msgid "cannot update program header: %s" msgstr "konnte Programm-Kopf nicht aktualisieren: %s" -#: src/unstrip.c:2118 src/unstrip.c:2200 +#: src/unstrip.c:2120 src/unstrip.c:2202 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2169 +#: src/unstrip.c:2171 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2172 +#: src/unstrip.c:2174 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2191 src/unstrip.c:2242 src/unstrip.c:2254 src/unstrip.c:2340 +#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2233 +#: src/unstrip.c:2235 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2235 +#: src/unstrip.c:2237 msgid ", use --force" msgstr "" -#: src/unstrip.c:2258 +#: src/unstrip.c:2260 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2261 +#: src/unstrip.c:2263 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2264 +#: src/unstrip.c:2266 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2267 +#: src/unstrip.c:2269 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2297 +#: src/unstrip.c:2299 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2301 +#: src/unstrip.c:2303 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2316 +#: src/unstrip.c:2318 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2320 +#: src/unstrip.c:2322 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2333 +#: src/unstrip.c:2335 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2364 +#: src/unstrip.c:2366 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2497 +#: src/unstrip.c:2498 #, c-format msgid "no matching modules found" msgstr "kein passendes Modul gefunden" -#: src/unstrip.c:2506 +#: src/unstrip.c:2507 #, c-format msgid "matched more than one module" msgstr "mehr als ein passendes Modul" -#: src/unstrip.c:2550 +#: src/unstrip.c:2551 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2551 +#: src/unstrip.c:2552 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" diff --git a/po/es.po b/po/es.po index c3558bd7..c3b5e2c8 100644 --- a/po/es.po +++ b/po/es.po @@ -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: 2020-06-11 15:50+0200\n" +"POT-Creation-Date: 2020-09-08 12:51+0200\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz \n" @@ -58,17 +58,17 @@ msgstr "" "DETERMINADO.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599 +#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 #, c-format msgid "memory exhausted" msgstr "memoria agotada" -#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51 +#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:54 #: libelf/elf_error.c:60 msgid "no error" msgstr "ningún error" -#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53 +#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:56 #: libelf/elf_error.c:91 msgid "out of memory" msgstr "memoria agotada" @@ -105,7 +105,7 @@ msgstr "error durante salida de datos" msgid "no backend support available" msgstr "No hay soporte de segundo plano" -#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52 +#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:55 #: libelf/elf_error.c:63 msgid "unknown error" msgstr "error desconocido" @@ -221,7 +221,7 @@ msgstr "versión DWARF inválida" msgid "invalid directory index" msgstr "Índice de directorio inválido" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:72 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 msgid "address out of range" msgstr "dirección fuera de rango" @@ -252,7 +252,7 @@ msgstr "Índice de línea inválido" msgid "invalid address range index" msgstr "Índice de dirección de rango inválido" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:73 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 msgid "no matching address range" msgstr "dirección de rango no coincidente" @@ -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:2540 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 msgid "Input selection options:" msgstr "Opciones de selección de entrada:" @@ -332,7 +332,7 @@ msgstr "Busca direcciones en el kernel que está ejecutándose" msgid "Kernel with all modules" msgstr "Kernel con todos los módulos" -#: libdwfl/argp-std.c:63 src/stack.c:645 +#: libdwfl/argp-std.c:63 src/stack.c:650 msgid "Search path for separate debuginfo files" msgstr "Ruta de búsqueda para archivos debugingfo independientes" @@ -367,159 +367,159 @@ msgstr "memoria agotada" msgid "No modules recognized in core file" msgstr "No hay módulos reconocidos en el archivo core" -#: libdwfl/libdwflP.h:54 +#: libdwfl/libdwflP.h:57 msgid "See errno" msgstr "Ve errno" -#: libdwfl/libdwflP.h:55 +#: libdwfl/libdwflP.h:58 msgid "See elf_errno" msgstr "Ver elf_errno" -#: libdwfl/libdwflP.h:56 +#: libdwfl/libdwflP.h:59 msgid "See dwarf_errno" msgstr "Ver dwarf_errno" -#: libdwfl/libdwflP.h:57 +#: libdwfl/libdwflP.h:60 msgid "See ebl_errno (XXX missing)" msgstr "Ver ebl_errno (no se encuentra XXX)" -#: libdwfl/libdwflP.h:58 +#: libdwfl/libdwflP.h:61 msgid "gzip decompression failed" msgstr "falló la descompresión gzip" -#: libdwfl/libdwflP.h:59 +#: libdwfl/libdwflP.h:62 msgid "bzip2 decompression failed" msgstr "falló la descompresión bzip2" -#: libdwfl/libdwflP.h:60 +#: libdwfl/libdwflP.h:63 msgid "LZMA decompression failed" msgstr "falló la descompresión LZMA" -#: libdwfl/libdwflP.h:61 +#: libdwfl/libdwflP.h:64 msgid "no support library found for machine" msgstr "no se ha encontrado una biblioteca de soporte para la máquina" -#: libdwfl/libdwflP.h:62 +#: libdwfl/libdwflP.h:65 msgid "Callbacks missing for ET_REL file" msgstr "No se encuentran rellamadas para el archivo ET_REL" -#: libdwfl/libdwflP.h:63 +#: libdwfl/libdwflP.h:66 msgid "Unsupported relocation type" msgstr "Tipo de reubicación no soportada" -#: libdwfl/libdwflP.h:64 +#: libdwfl/libdwflP.h:67 msgid "r_offset is bogus" msgstr "r_offset se encuentra inutilizable" -#: libdwfl/libdwflP.h:65 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "desplazamiento fuera de rango" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:69 msgid "relocation refers to undefined symbol" msgstr "la reubicación hace referencia a un símbolo no definido" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:70 msgid "Callback returned failure" msgstr "La rellamada devolvió un fallo" -#: libdwfl/libdwflP.h:68 +#: libdwfl/libdwflP.h:71 msgid "No DWARF information found" msgstr "No se ha encontrado una información DWARF" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:72 msgid "No symbol table found" msgstr "No se ha encontrado una tabla simbólica" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:73 msgid "No ELF program headers" msgstr "No existen encabezados de programa ELF" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:74 msgid "address range overlaps an existing module" msgstr "el rango de dirección se superpone con un módulo existente" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:77 msgid "image truncated" msgstr "imagen truncada" -#: libdwfl/libdwflP.h:75 +#: libdwfl/libdwflP.h:78 msgid "ELF file opened" msgstr "Archivo ELF abierto" -#: libdwfl/libdwflP.h:76 +#: libdwfl/libdwflP.h:79 msgid "not a valid ELF file" msgstr "no es un archivo ELF válido" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:80 msgid "cannot handle DWARF type description" msgstr "no es posible manipular tipo de descripción DWARF" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:81 msgid "ELF file does not match build ID" msgstr "El archivo ELF no coincide con el ID construido" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:82 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:83 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:84 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:85 #, fuzzy msgid "Invalid register" msgstr "Parámetro inválido" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:86 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:87 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:88 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:89 #, fuzzy msgid "Invalid DWARF" msgstr "DWARF inválido" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:90 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:91 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:92 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:93 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:94 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:95 #, fuzzy msgid "Invalid argument" msgstr "Parámetro inválido" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "no es un archivo ELF válido" @@ -591,7 +591,7 @@ msgstr " Build ID: " msgid " Linker version: %.*s\n" msgstr " Versión del Enlazador: %.*s\n" -#: libebl/eblobjnote.c:571 +#: libebl/eblobjnote.c:638 #, 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:6166 +#: libelf/elf_error.c:87 src/readelf.c:6172 #, 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:9914 src/readelf.c:10514 -#: src/readelf.c:10615 src/readelf.c:10797 +#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 +#: src/readelf.c:10636 src/readelf.c:10818 #, 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:923 src/ar.c:1127 +#: src/ar.c:472 src/ar.c:927 src/ar.c:1134 #, c-format msgid "cannot create hash table" msgstr "Falló al crear la tabla de dispersión" -#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 +#: src/ar.c:479 src/ar.c:934 src/ar.c:1143 #, c-format msgid "cannot insert into hash table" msgstr "no sepuede insertar en tabla de dispersión" @@ -1096,67 +1096,67 @@ msgstr "No puede cambiar tiempo de modificación de %s" msgid "cannot rename temporary file to %.*s" msgstr "no sepuede renombrar fichero temporal para %.*s" -#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "no sepuede crear fichero nuevo" -#: src/ar.c:1218 +#: src/ar.c:1225 #, c-format msgid "position member %s not found" msgstr "no se encuentra miembro de posición %s " -#: src/ar.c:1228 +#: src/ar.c:1235 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: ¡no hay entrada %s en archive!\n" -#: src/ar.c:1257 src/objdump.c:241 +#: src/ar.c:1264 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "no sepuede abrir %s" -#: src/ar.c:1262 +#: src/ar.c:1269 #, c-format msgid "cannot stat %s" msgstr "no sepuede efectuar stat %s" -#: src/ar.c:1268 +#: src/ar.c:1275 #, c-format msgid "%s is no regular file" msgstr " %s no es un fichero ordinario " -#: src/ar.c:1281 +#: src/ar.c:1288 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "no sepuede obtener descriptor ELF para %s: %s\n" -#: src/ar.c:1301 +#: src/ar.c:1308 #, c-format msgid "cannot read %s: %s" msgstr "no sepuede leer %s: %s" -#: src/ar.c:1476 +#: src/ar.c:1483 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1482 +#: src/ar.c:1489 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1488 +#: src/ar.c:1495 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "no pueden copiar datos de sección: %s" -#: src/ar.c:1494 +#: src/ar.c:1501 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/ar.c:1500 +#: src/ar.c:1507 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "no sepuede abrir %s" @@ -1382,7 +1382,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2189 src/unstrip.c:2218 +#: src/unstrip.c:2191 src/unstrip.c:2220 #, c-format msgid "cannot open '%s'" msgstr "Imposible abrir '%s'" @@ -1692,7 +1692,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 #: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099 -#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440 +#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4441 #, 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" @@ -2947,47 +2947,47 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: extra bytes después de la última " "sección de atributo\n" -#: src/elflint.c:3699 +#: src/elflint.c:3700 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "no puede obtener encabezamiento de sección de sección zeroth\n" -#: src/elflint.c:3703 +#: src/elflint.c:3704 #, c-format msgid "zeroth section has nonzero name\n" msgstr "Sección zeroth tiene nombre nonzero\n" -#: src/elflint.c:3705 +#: src/elflint.c:3706 #, c-format msgid "zeroth section has nonzero type\n" msgstr "Sección zeroth tiene tipo nonzero\n" -#: src/elflint.c:3707 +#: src/elflint.c:3708 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "Sección zeroth tiene banderas nonzero\n" -#: src/elflint.c:3709 +#: src/elflint.c:3710 #, c-format msgid "zeroth section has nonzero address\n" msgstr "Sección zeroth tiene dirección nonzero\n" -#: src/elflint.c:3711 +#: src/elflint.c:3712 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "Sección zeroth tiene compensación nonzero\n" -#: src/elflint.c:3713 +#: src/elflint.c:3714 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "Sección zeroth tiene valor de alineación nonzero\n" -#: src/elflint.c:3715 +#: src/elflint.c:3716 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "Sección zeroth tiene valor de tamaño de entrada nonzero\n" -#: src/elflint.c:3718 +#: src/elflint.c:3719 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2996,7 +2996,7 @@ msgstr "" "Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento " "ELF tiene valor shnum nonzero\n" -#: src/elflint.c:3722 +#: src/elflint.c:3723 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3005,7 +3005,7 @@ msgstr "" "Sección zeroth tiene valor de enlace nonzero mientras que el encabezamiento " "ELF no señala sobreflujo en shstrndx\n" -#: src/elflint.c:3726 +#: src/elflint.c:3727 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -3014,27 +3014,27 @@ msgstr "" "la sección zeroth tiene un valor de enlace distinto a cero mientras que el " "encabezamiento ELF no señala desbordamiento en phnum\n" -#: src/elflint.c:3744 +#: src/elflint.c:3745 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "No se puede obtener encabezamiento para sección [%2zu] '%s': %s\n" -#: src/elflint.c:3753 +#: src/elflint.c:3754 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "Sección [%2zu]: nombre inválido\n" -#: src/elflint.c:3780 +#: src/elflint.c:3781 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "Sección [%2d] '%s' tiene tipo errado: %s esperado, es %s\n" -#: src/elflint.c:3798 +#: src/elflint.c:3799 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "Sección [%2zu] '%s' tiene banderas erradas: %s esperado, es %s\n" -#: src/elflint.c:3816 +#: src/elflint.c:3817 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -3042,12 +3042,12 @@ msgstr "" "Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, " "es %s\n" -#: src/elflint.c:3834 +#: src/elflint.c:3835 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "Sección [%2zu] '%s' presente en archivo objeto\n" -#: src/elflint.c:3840 src/elflint.c:3872 +#: src/elflint.c:3841 src/elflint.c:3873 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -3055,7 +3055,7 @@ msgstr "" "Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un " "segmento cargable\n" -#: src/elflint.c:3845 src/elflint.c:3877 +#: src/elflint.c:3846 src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3064,7 +3064,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay " "segmentos cargables\n" -#: src/elflint.c:3853 +#: src/elflint.c:3854 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3072,22 +3072,22 @@ msgstr "" "Sección [%2zu] '%s' es tabla de índice de sección de extensión en archivo no-" "objeto\n" -#: src/elflint.c:3896 +#: src/elflint.c:3897 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "Sección [%2zu] '%s': tamaño no es múltiplo de tamaño de entrada\n" -#: src/elflint.c:3901 +#: src/elflint.c:3902 #, c-format msgid "cannot get section header\n" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/elflint.c:3911 +#: src/elflint.c:3912 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n" -#: src/elflint.c:3931 +#: src/elflint.c:3932 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -3095,76 +3095,76 @@ msgstr "" "Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas " "%#\n" -#: src/elflint.c:3938 +#: src/elflint.c:3939 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#\n" -#: src/elflint.c:3946 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elflint.c:3956 +#: src/elflint.c:3957 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elflint.c:3961 +#: src/elflint.c:3962 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n" -#: src/elflint.c:3967 +#: src/elflint.c:3968 #, fuzzy, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n" -#: src/elflint.c:3973 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de enlace\n" -#: src/elflint.c:3978 +#: src/elflint.c:3979 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de información\n" -#: src/elflint.c:3985 +#: src/elflint.c:3986 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" "Sección [%2zu] '%s': bandera de cadenas establecida sin bandera de fusión\n" -#: src/elflint.c:3990 +#: src/elflint.c:3991 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "Sección [%2zu] '%s': bandera de fusión establecida pero tamaño de entrada es " "cero\n" -#: src/elflint.c:4009 +#: src/elflint.c:4010 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" "Sección [%2zu] '%s' tiene un tipo %d inesperado para una sección ejecutable\n" -#: src/elflint.c:4018 +#: src/elflint.c:4019 #, fuzzy, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n" -#: src/elflint.c:4025 +#: src/elflint.c:4026 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "Sección [%2zu] '%s' es tanto de ejecución como de escritura\n" -#: src/elflint.c:4056 +#: src/elflint.c:4057 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3173,7 +3173,7 @@ msgstr "" "Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de " "encabezamiento de programa %d\n" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3182,7 +3182,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4092 +#: src/elflint.c:4093 #, fuzzy, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3191,7 +3191,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4103 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3200,18 +3200,18 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero no es leída desde el fichero " "en segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4114 +#: src/elflint.c:4115 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "Sección [%2zu] '%s' es ejecutable en segmento no ejecutable %d\n" -#: src/elflint.c:4124 +#: src/elflint.c:4125 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "Sección [%2zu] '%s' es de escritura en segmento que no es de escritura %d\n" -#: src/elflint.c:4134 +#: src/elflint.c:4135 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3219,7 +3219,7 @@ msgstr "" "Sección [%2zu] '%s': asignación de bandera establecida pero sección no en " "ningún segmento cargado\n" -#: src/elflint.c:4140 +#: src/elflint.c:4141 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3228,7 +3228,7 @@ msgstr "" "Sección [%2zu] '%s': encabezamiento ELF dice esta es la tabla de cadena de " "encabezamiento de sección, pero el tipo no es SHT_TYPE\n" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3236,32 +3236,32 @@ msgstr "" "sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos " "dinámicos\n" -#: src/elflint.c:4199 +#: src/elflint.c:4200 #, c-format msgid "more than one version symbol table present\n" msgstr "Más de una tabla de símbolos presente\n" -#: src/elflint.c:4222 +#: src/elflint.c:4223 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" "Entrada de encabezamiento de programa INTERP pero no la sección .interp\n" -#: src/elflint.c:4233 +#: src/elflint.c:4234 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" "segmento cargable [%u] es ejecutable pero no contiene secciones ejecutables\n" -#: src/elflint.c:4239 +#: src/elflint.c:4240 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "segmento cargable [%u] es de escritura pero contiene secciones protegidas " "contra escritura\n" -#: src/elflint.c:4250 +#: src/elflint.c:4251 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3270,26 +3270,26 @@ msgstr "" "Sección no .gnu.versym presente, pero la sección .gnu.versym_d o la sección ." "gnu.versym_r existen\n" -#: src/elflint.c:4263 +#: src/elflint.c:4264 #, c-format msgid "duplicate version index %d\n" msgstr "Duplicar índice de versión %d\n" -#: src/elflint.c:4277 +#: src/elflint.c:4278 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "Sección .gnu.versym presente sin las secciones .gnu.versym_d o .gnu." "versym_r\n" -#: src/elflint.c:4326 +#: src/elflint.c:4327 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: tipo de nota de fichero core desconocido % en compensación " "%\n" -#: src/elflint.c:4330 +#: src/elflint.c:4331 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3297,7 +3297,7 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero core desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4379 +#: src/elflint.c:4380 #, fuzzy, c-format msgid "" "phdr[%d]: unknown object file note type % with owner name '%s' at " @@ -3306,7 +3306,7 @@ msgstr "" "phdr[%d]: tipo de nota de fichero objeto desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4384 +#: src/elflint.c:4385 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown object file note type % with owner name " @@ -3315,40 +3315,40 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero objeto desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4403 +#: src/elflint.c:4404 #, 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:4423 +#: src/elflint.c:4424 #, 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:4426 +#: src/elflint.c:4427 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: extra % bytes después de la última nota\n" -#: src/elflint.c:4447 +#: src/elflint.c:4448 #, 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:4454 +#: src/elflint.c:4455 #, 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:4457 +#: src/elflint.c:4458 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "Sección[%2d] '%s': extra % bytes después de la última nota\n" -#: src/elflint.c:4475 +#: src/elflint.c:4476 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3356,145 +3356,145 @@ msgstr "" "Sólo ejecutables, objetos compartidos y ficheros core pueden tener " "encabezamientos de programas\n" -#: src/elflint.c:4490 +#: src/elflint.c:4491 #, 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:4500 +#: src/elflint.c:4501 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "entrada de encabezamiento de programa %d: tipo %# de entrada de " "encabezamiento de programa desconocido\n" -#: src/elflint.c:4511 +#: src/elflint.c:4512 #, 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:4519 +#: src/elflint.c:4520 #, 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:4526 +#: src/elflint.c:4527 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "ejecutable estático no puede tener secciones dinámicas\n" -#: src/elflint.c:4540 +#: src/elflint.c:4541 #, 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:4543 +#: src/elflint.c:4544 #, 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:4553 +#: src/elflint.c:4554 #, 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:4574 +#: src/elflint.c:4575 #, 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:4585 +#: src/elflint.c:4586 #, 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:4592 +#: src/elflint.c:4593 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4601 src/elflint.c:4624 +#: src/elflint.c:4602 src/elflint.c:4625 #, 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:4630 +#: src/elflint.c:4631 #, 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:4657 +#: src/elflint.c:4658 #, 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:4660 +#: src/elflint.c:4661 #, 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:4673 +#: src/elflint.c:4674 #, 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:4681 +#: src/elflint.c:4682 #, 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:4684 +#: src/elflint.c:4685 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:4688 +#: src/elflint.c:4689 #, 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:4691 +#: src/elflint.c:4692 #, 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:4696 +#: src/elflint.c:4697 #, 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:4699 +#: src/elflint.c:4700 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:4710 +#: src/elflint.c:4711 #, 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:4717 +#: src/elflint.c:4718 #, 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:4720 +#: src/elflint.c:4721 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3503,7 +3503,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:4733 +#: src/elflint.c:4734 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3512,17 +3512,17 @@ msgstr "" "ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de " "encabezamiento de programa PT_GNU_EH_FRAME" -#: src/elflint.c:4767 +#: src/elflint.c:4768 #, c-format msgid "cannot read ELF header: %s\n" msgstr "No se puede leer encabezamiento ELF: %s\n" -#: src/elflint.c:4779 +#: src/elflint.c:4780 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "no sepuede crear fichero nuevo" -#: src/elflint.c:4800 +#: src/elflint.c:4801 #, c-format msgid "text relocation flag set but not needed\n" msgstr "Bandera de reubicación de texto establecida pero no necesaria\n" @@ -3792,8 +3792,8 @@ msgstr "No se puede crear el árbol de búsqueda" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420 -#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 +#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4121,11 +4121,11 @@ msgstr "no se pudieron determinar el número de secciones: %s" msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604 -#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212 -#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483 -#: src/unstrip.c:1658 src/unstrip.c:1809 src/unstrip.c:1952 src/unstrip.c:2051 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 +#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 +#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 +#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 #, c-format msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" @@ -4135,8 +4135,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:670 src/readelf.c:6576 src/readelf.c:10502 src/readelf.c:10604 -#: src/readelf.c:10782 +#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 +#: src/readelf.c:10803 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" @@ -4479,7 +4479,7 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1460 src/unstrip.c:2110 src/unstrip.c:2152 src/unstrip.c:2159 +#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" @@ -4522,8 +4522,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522 -#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 +#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 msgid "Couldn't uncompress section" msgstr "" @@ -5053,9 +5053,9 @@ msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] compensación: %, hijos: %s, etiqueta: %s\n" #: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6586 src/readelf.c:8323 src/readelf.c:9009 src/readelf.c:9445 -#: src/readelf.c:9690 src/readelf.c:9856 src/readelf.c:10243 -#: src/readelf.c:10303 +#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 +#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 +#: src/readelf.c:10324 #, c-format msgid "" "\n" @@ -5069,37 +5069,37 @@ msgstr "" msgid "cannot get .debug_addr section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9054 +#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9067 +#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9076 +#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9086 +#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9071 src/readelf.c:10435 +#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 #, fuzzy, c-format msgid "Unknown version" msgstr "versión desconocida" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9081 +#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 #, fuzzy, c-format msgid "unsupported address size" msgstr "no hay valor de dirección" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9091 +#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 #, c-format msgid "unsupported segment size" msgstr "" @@ -5137,7 +5137,7 @@ msgstr "" " Inicio [%*zu]: %0#*, longitud: %5, compensación CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8350 +#: src/readelf.c:5446 src/readelf.c:8359 #, fuzzy, c-format msgid "" "\n" @@ -5146,8 +5146,8 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6610 src/readelf.c:8361 -#: src/readelf.c:9035 +#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 +#: src/readelf.c:9050 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" @@ -5196,39 +5196,39 @@ msgstr "" msgid "cannot get .debug_rnglists content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:5632 src/readelf.c:9041 +#: src/readelf.c:5632 src/readelf.c:9056 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5687 src/readelf.c:9096 +#: src/readelf.c:5687 src/readelf.c:9111 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:5703 src/readelf.c:9112 +#: src/readelf.c:5703 src/readelf.c:9127 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9114 +#: src/readelf.c:5705 src/readelf.c:9129 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9120 +#: src/readelf.c:5711 src/readelf.c:9135 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9131 +#: src/readelf.c:5722 src/readelf.c:9146 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9135 +#: src/readelf.c:5726 src/readelf.c:9150 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " Propietario Tamaño\n" @@ -5238,7 +5238,7 @@ msgstr " Propietario Tamaño\n" msgid "invalid range list data" msgstr "datos inválidos" -#: src/readelf.c:5963 src/readelf.c:9423 +#: src/readelf.c:5963 src/readelf.c:9438 #, c-format msgid "" " %zu padding bytes\n" @@ -5250,48 +5250,46 @@ msgstr "" msgid "cannot get .debug_ranges content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9478 +#: src/readelf.c:6016 src/readelf.c:9493 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9480 +#: src/readelf.c:6018 src/readelf.c:9495 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9506 src/readelf.c:9532 +#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:6048 src/readelf.c:9612 -#, fuzzy, c-format -msgid "" -" [%6tx] base address\n" -" " -msgstr " [%6tx] (dirección base) %s\n" +#: src/readelf.c:6052 src/readelf.c:9631 +#, fuzzy +msgid "base address" +msgstr "Establecer dirección a %s\n" -#: src/readelf.c:6056 src/readelf.c:9620 +#: src/readelf.c:6062 src/readelf.c:9641 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] lista vacía\n" -#: src/readelf.c:6311 +#: src/readelf.c:6317 #, fuzzy msgid " \n" msgstr " \n" -#: src/readelf.c:6564 +#: src/readelf.c:6573 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:6582 +#: src/readelf.c:6591 #, c-format msgid "" "\n" @@ -5301,7 +5299,7 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación " "%#:\n" -#: src/readelf.c:6632 +#: src/readelf.c:6641 #, c-format msgid "" "\n" @@ -5310,65 +5308,65 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:6733 src/readelf.c:6887 +#: src/readelf.c:6742 src/readelf.c:6896 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:6748 +#: src/readelf.c:6757 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:6754 +#: src/readelf.c:6763 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:6864 +#: src/readelf.c:6873 #, c-format msgid " (offset: %#)" msgstr " (compensación: %#)" -#: src/readelf.c:6871 +#: src/readelf.c:6880 #, c-format msgid " (end offset: %#)" msgstr " (fin de compensación: %#)" -#: src/readelf.c:6908 +#: src/readelf.c:6917 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "Puntero %-26sLSDA: %#\n" -#: src/readelf.c:6993 +#: src/readelf.c:7002 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:7003 +#: src/readelf.c:7012 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:7025 +#: src/readelf.c:7034 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:7355 +#: src/readelf.c:7364 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "Archivo inválido" -#: src/readelf.c:7359 +#: src/readelf.c:7368 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " establecer archivo a %\n" -#: src/readelf.c:7363 +#: src/readelf.c:7372 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:7676 +#: src/readelf.c:7685 #, c-format msgid "" "\n" @@ -5379,12 +5377,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " [Offset]\n" -#: src/readelf.c:7726 +#: src/readelf.c:7735 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7745 +#: src/readelf.c:7754 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5397,7 +5395,7 @@ msgstr "" "Tamaño de dirección: %, Tamaño de compensación: %\n" " Tipo de firma: %#, Tipo de compensación: %#\n" -#: src/readelf.c:7757 +#: src/readelf.c:7766 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5408,39 +5406,39 @@ msgstr "" " Versión: %, Compensación de sección de abreviatura: %, " "Tamaño de dirección: %, Tamaño de compensación: %\n" -#: src/readelf.c:7767 src/readelf.c:7930 +#: src/readelf.c:7776 src/readelf.c:7939 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7794 +#: src/readelf.c:7803 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7823 +#: src/readelf.c:7832 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:7832 +#: src/readelf.c:7841 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "no se ha podido obtener etiqueta de DIE en compensación% en sección " "'%s': %s" -#: src/readelf.c:7870 +#: src/readelf.c:7879 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:7878 +#: src/readelf.c:7887 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7922 +#: src/readelf.c:7931 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5451,7 +5449,7 @@ msgstr "" " Versión: %, Compensación de sección de abreviatura: %, " "Tamaño de dirección: %, Tamaño de compensación: %\n" -#: src/readelf.c:7974 +#: src/readelf.c:7983 #, fuzzy, c-format msgid "" "\n" @@ -5461,18 +5459,18 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#:\n" -#: src/readelf.c:8306 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "unknown form: %s" msgstr "Forma % desconocida" -#: src/readelf.c:8337 +#: src/readelf.c:8346 #, 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:8439 +#: src/readelf.c:8448 #, fuzzy, c-format msgid "" "\n" @@ -5503,34 +5501,34 @@ msgstr "" "\n" "Códigos operativos:\n" -#: src/readelf.c:8461 +#: src/readelf.c:8470 #, 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:8469 +#: src/readelf.c:8478 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "no hay valor de dirección" -#: src/readelf.c:8477 +#: src/readelf.c:8486 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:8487 +#: src/readelf.c:8496 #, 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:8502 +#: src/readelf.c:8511 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] argumento %hhu \n" msgstr[1] " [%*] argumento %hhu\n" -#: src/readelf.c:8513 +#: src/readelf.c:8522 msgid "" "\n" "Directory table:" @@ -5538,12 +5536,12 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:8519 src/readelf.c:8596 +#: src/readelf.c:8528 src/readelf.c:8605 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8590 +#: src/readelf.c:8599 #, fuzzy msgid "" "\n" @@ -5552,7 +5550,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:8651 +#: src/readelf.c:8660 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5560,7 +5558,16 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:8688 +#: src/readelf.c:8699 +#, fuzzy +msgid "" +"\n" +"No line number statements." +msgstr "" +"\n" +" Declaraciones de número de Línea:" + +#: src/readelf.c:8703 msgid "" "\n" "Line number statements:" @@ -5568,121 +5575,121 @@ msgstr "" "\n" " Declaraciones de número de Línea:" -#: src/readelf.c:8711 +#: src/readelf.c:8726 #, 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:8745 +#: src/readelf.c:8760 #, 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:8749 +#: src/readelf.c:8764 #, 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:8752 +#: src/readelf.c:8767 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8770 +#: src/readelf.c:8785 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:8775 +#: src/readelf.c:8790 #, fuzzy msgid " end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:8793 +#: src/readelf.c:8808 #, fuzzy, c-format msgid " set address to " msgstr "Establecer dirección a %s\n" -#: src/readelf.c:8821 +#: src/readelf.c:8836 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "definir nuevo archivo: dir=%u, mtime=%, longitud=%, nombre=" "%s\n" -#: src/readelf.c:8835 +#: src/readelf.c:8850 #, c-format msgid " set discriminator to %u\n" msgstr " establecer discriminador a %u\n" #. Unknown, ignore it. -#: src/readelf.c:8840 +#: src/readelf.c:8855 #, fuzzy msgid " unknown opcode" msgstr "código operativo desconocido " #. Takes no argument. -#: src/readelf.c:8852 +#: src/readelf.c:8867 msgid " copy" msgstr "Copiar" -#: src/readelf.c:8863 +#: src/readelf.c:8878 #, fuzzy, c-format msgid " advance address by %u to " msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:8867 src/readelf.c:8928 +#: src/readelf.c:8882 src/readelf.c:8943 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8879 +#: src/readelf.c:8894 #, c-format msgid " advance line by constant %d to %\n" msgstr " línea de avance por la constante %d a %\n" -#: src/readelf.c:8889 +#: src/readelf.c:8904 #, c-format msgid " set file to %\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:8900 +#: src/readelf.c:8915 #, c-format msgid " set column to %\n" msgstr " Establecer columna a %\n" -#: src/readelf.c:8907 +#: src/readelf.c:8922 #, c-format msgid " set '%s' to %\n" msgstr "Establecer '%s' a %\n" #. Takes no argument. -#: src/readelf.c:8913 +#: src/readelf.c:8928 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:8924 +#: src/readelf.c:8939 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:8944 +#: src/readelf.c:8959 #, 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:8954 +#: src/readelf.c:8969 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" #. Takes no argument. -#: src/readelf.c:8959 +#: src/readelf.c:8974 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:8969 +#: src/readelf.c:8984 #, c-format msgid " set isa to %u\n" msgstr " establecer isa para %u\n" @@ -5690,105 +5697,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:8978 +#: src/readelf.c:8993 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " opcódigo con parámetro % desconocido:" msgstr[1] " opcódigo con parámetros % desconocido:" -#: src/readelf.c:9018 +#: src/readelf.c:9033 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9187 +#: src/readelf.c:9202 #, fuzzy, c-format msgid "invalid loclists data" msgstr "datos inválidos" -#: src/readelf.c:9440 +#: src/readelf.c:9455 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9647 src/readelf.c:10691 +#: src/readelf.c:9668 src/readelf.c:10712 msgid " \n" msgstr " \n" -#: src/readelf.c:9702 src/readelf.c:9865 +#: src/readelf.c:9723 src/readelf.c:9886 #, 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:9782 +#: src/readelf.c:9803 #, 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:9805 +#: src/readelf.c:9826 #, 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:9906 +#: src/readelf.c:9927 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:9918 +#: src/readelf.c:9939 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9924 src/readelf.c:10811 +#: src/readelf.c:9945 src/readelf.c:10832 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9931 +#: src/readelf.c:9952 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " Dirección de punto de entrada: %#\n" -#: src/readelf.c:9960 +#: src/readelf.c:9981 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (compensación: %#)" -#: src/readelf.c:9968 +#: src/readelf.c:9989 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:9993 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " opcódigo con parámetro % desconocido:" -#: src/readelf.c:10000 +#: src/readelf.c:10021 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10012 +#: src/readelf.c:10033 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] argumento %hhu \n" -#: src/readelf.c:10027 +#: src/readelf.c:10048 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10228 +#: src/readelf.c:10249 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " Compensación [%5d] DIE: %6, Compensación CU DIE: %6, " "nombre: %s\n" -#: src/readelf.c:10272 +#: src/readelf.c:10293 #, c-format msgid "" "\n" @@ -5799,37 +5806,37 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " %*s String\n" -#: src/readelf.c:10287 +#: src/readelf.c:10308 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:10316 +#: src/readelf.c:10337 #, 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:10415 +#: src/readelf.c:10436 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10417 +#: src/readelf.c:10438 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10431 +#: src/readelf.c:10452 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10440 +#: src/readelf.c:10461 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10494 +#: src/readelf.c:10515 #, c-format msgid "" "\n" @@ -5838,7 +5845,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10596 +#: src/readelf.c:10617 #, c-format msgid "" "\n" @@ -5847,22 +5854,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10619 +#: src/readelf.c:10640 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:10631 +#: src/readelf.c:10652 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:10646 +#: src/readelf.c:10667 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:10659 +#: src/readelf.c:10680 msgid "" "\n" " Call site table:" @@ -5870,7 +5877,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:10673 +#: src/readelf.c:10694 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5883,12 +5890,12 @@ msgstr "" " Landing pad: %#\n" " Action: %u\n" -#: src/readelf.c:10746 +#: src/readelf.c:10767 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:10773 +#: src/readelf.c:10794 #, fuzzy, c-format msgid "" "\n" @@ -5897,37 +5904,37 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10802 +#: src/readelf.c:10823 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10820 +#: src/readelf.c:10841 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10827 +#: src/readelf.c:10848 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10834 +#: src/readelf.c:10855 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:10841 +#: src/readelf.c:10862 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10848 +#: src/readelf.c:10869 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:10862 +#: src/readelf.c:10883 #, fuzzy, c-format msgid "" "\n" @@ -5936,7 +5943,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10887 +#: src/readelf.c:10908 #, fuzzy, c-format msgid "" "\n" @@ -5945,7 +5952,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10916 +#: src/readelf.c:10937 #, fuzzy, c-format msgid "" "\n" @@ -5954,7 +5961,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10948 +#: src/readelf.c:10969 #, fuzzy, c-format msgid "" "\n" @@ -5963,18 +5970,18 @@ msgstr "" "\n" "Tabla de símbolos inválida en compensación %#0\n" -#: src/readelf.c:11086 +#: src/readelf.c:11107 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187 -#: src/readelf.c:12245 +#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 +#: src/readelf.c:12266 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:11817 +#: src/readelf.c:11838 #, c-format msgid "" "\n" @@ -5983,21 +5990,21 @@ msgstr "" "\n" "%*s... ..." -#: src/readelf.c:12324 +#: src/readelf.c:12345 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:12353 +#: src/readelf.c:12374 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12405 +#: src/readelf.c:12426 #, 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:12439 +#: src/readelf.c:12460 #, c-format msgid "" "\n" @@ -6006,7 +6013,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de % bytes en compensación %#0:\n" -#: src/readelf.c:12462 +#: src/readelf.c:12483 #, c-format msgid "" "\n" @@ -6015,7 +6022,7 @@ msgstr "" "\n" "Segmento de nota de % bytes en compensación %#0:\n" -#: src/readelf.c:12509 +#: src/readelf.c:12530 #, fuzzy, c-format msgid "" "\n" @@ -6024,12 +6031,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12536 src/readelf.c:12587 +#: src/readelf.c:12557 src/readelf.c:12608 #, 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:12541 +#: src/readelf.c:12562 #, fuzzy, c-format msgid "" "\n" @@ -6039,7 +6046,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', % bytes en compensación " "%#0:\n" -#: src/readelf.c:12546 +#: src/readelf.c:12567 #, fuzzy, c-format msgid "" "\n" @@ -6050,7 +6057,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', % bytes en compensación " "%#0:\n" -#: src/readelf.c:12560 +#: src/readelf.c:12581 #, fuzzy, c-format msgid "" "\n" @@ -6059,7 +6066,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12592 +#: src/readelf.c:12613 #, fuzzy, c-format msgid "" "\n" @@ -6069,7 +6076,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene % bytes en compensación " "%#0:\n" -#: src/readelf.c:12597 +#: src/readelf.c:12618 #, fuzzy, c-format msgid "" "\n" @@ -6080,7 +6087,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene % bytes en compensación " "%#0:\n" -#: src/readelf.c:12646 +#: src/readelf.c:12667 #, c-format msgid "" "\n" @@ -6089,7 +6096,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:12676 +#: src/readelf.c:12697 #, c-format msgid "" "\n" @@ -6098,12 +6105,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:12733 +#: src/readelf.c:12754 #, 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:12736 +#: src/readelf.c:12757 #, c-format msgid "" "\n" @@ -6112,7 +6119,7 @@ msgstr "" "\n" "Archivo '%s' no tiene índice de símbolo\n" -#: src/readelf.c:12740 +#: src/readelf.c:12761 #, fuzzy, c-format msgid "" "\n" @@ -6121,12 +6128,12 @@ msgstr "" "\n" "Índice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:12758 +#: src/readelf.c:12779 #, 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:12763 +#: src/readelf.c:12784 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6207,108 +6214,108 @@ msgstr "no se puede obtener encabezamiento de sección\n" msgid "(TOTALS)\n" msgstr "(TOTALES)\n" -#: src/stack.c:482 +#: src/stack.c:487 #, c-format msgid "-p PID should be a positive process id." msgstr "" -#: src/stack.c:488 +#: src/stack.c:493 #, fuzzy, c-format msgid "Cannot open core file '%s'" msgstr "Imposible abrir el archivo '%s'" -#: src/stack.c:548 +#: src/stack.c:553 #, c-format msgid "-n MAXFRAMES should be 0 or higher." msgstr "" -#: src/stack.c:560 +#: src/stack.c:565 #, c-format msgid "-e EXEC needs a core given by --core." msgstr "" -#: src/stack.c:564 +#: src/stack.c:569 #, c-format msgid "-1 needs a thread id given by -p." msgstr "" -#: src/stack.c:568 +#: src/stack.c:573 #, c-format msgid "One of -p PID or --core COREFILE should be given." msgstr "" -#: src/stack.c:640 +#: src/stack.c:645 #, fuzzy msgid "Show stack of process PID" msgstr "No se puede crear el árbol de búsqueda" -#: src/stack.c:642 +#: src/stack.c:647 msgid "Show stack found in COREFILE" msgstr "" -#: src/stack.c:643 +#: src/stack.c:648 msgid "(optional) EXECUTABLE that produced COREFILE" msgstr "" -#: src/stack.c:647 +#: src/stack.c:652 msgid "Output selection options:" msgstr "Opciones de selección de salida:" -#: src/stack.c:649 +#: src/stack.c:654 #, fuzzy msgid "Additionally show frame activation" msgstr "Selección de salida adicional:" -#: src/stack.c:651 +#: src/stack.c:656 msgid "Additionally try to lookup DWARF debuginfo name for frame address" msgstr "" -#: src/stack.c:654 +#: src/stack.c:659 msgid "" "Additionally show inlined function frames using DWARF debuginfo if available " "(implies -d)" msgstr "" -#: src/stack.c:656 +#: src/stack.c:661 msgid "Additionally show module file information" msgstr "" -#: src/stack.c:658 +#: src/stack.c:663 #, fuzzy msgid "Additionally show source file information" msgstr "Selección de salida adicional:" -#: src/stack.c:660 +#: src/stack.c:665 msgid "" "Show all additional information (activation, debugname, inlines, module and " "source)" msgstr "" -#: src/stack.c:662 +#: src/stack.c:667 msgid "Do not resolve address to function symbol name" msgstr "" -#: src/stack.c:664 +#: src/stack.c:669 msgid "Show raw function symbol names, do not try to demangle names" msgstr "" -#: src/stack.c:666 +#: src/stack.c:671 msgid "Show module build-id, load address and pc offset" msgstr "" -#: src/stack.c:668 +#: src/stack.c:673 msgid "Show the backtrace of only one thread" msgstr "" -#: src/stack.c:670 +#: src/stack.c:675 msgid "Show at most MAXFRAMES per thread (default 256, use 0 for unlimited)" msgstr "" -#: src/stack.c:672 +#: src/stack.c:677 msgid "Show module memory map with build-id, elf and debug files detected" msgstr "" -#: src/stack.c:680 +#: src/stack.c:685 msgid "" "Print a stack for each thread in a process or core file.\n" "\n" @@ -6320,7 +6327,7 @@ msgid "" "arguments it will exit with return code 64." msgstr "" -#: src/stack.c:755 +#: src/stack.c:760 #, c-format msgid "Couldn't show any frames." msgstr "" @@ -6723,7 +6730,7 @@ 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:248 src/unstrip.c:2081 +#: src/unstrip.c:248 src/unstrip.c:2083 #, c-format msgid "cannot get ELF header: %s" msgstr "no se puede leer encabezamiento ELF: %s" @@ -6743,12 +6750,12 @@ msgstr "no se puede actualizar reubicación: %s" msgid "cannot copy ELF header: %s" msgstr "no se puede copiar encabezamiento ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2099 src/unstrip.c:2142 +#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 #, 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:274 src/unstrip.c:2103 +#: src/unstrip.c:274 src/unstrip.c:2105 #, c-format msgid "cannot create program headers: %s" msgstr "No pueden crear encabezamientos de programa: %s" @@ -6763,12 +6770,12 @@ msgstr "no puede copiar encabezamiento de programa: %s" msgid "cannot copy section header: %s" msgstr "no se puede copiar encabezamiento de sección: %s" -#: src/unstrip.c:293 src/unstrip.c:1703 +#: src/unstrip.c:293 src/unstrip.c:1705 #, c-format msgid "cannot get section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:295 src/unstrip.c:1705 +#: src/unstrip.c:295 src/unstrip.c:1707 #, c-format msgid "cannot copy section data: %s" msgstr "no pueden copiar datos de sección: %s" @@ -6778,14 +6785,14 @@ msgstr "no pueden copiar datos de sección: %s" msgid "cannot create directory '%s'" msgstr "no se puede crear el directorio '%s'" -#: src/unstrip.c:391 src/unstrip.c:651 src/unstrip.c:685 src/unstrip.c:853 -#: src/unstrip.c:1745 +#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 +#: src/unstrip.c:1747 #, c-format msgid "cannot get symbol table entry: %s" msgstr "no se puede obtener entrada de tabla de símbolos: %s" -#: src/unstrip.c:407 src/unstrip.c:654 src/unstrip.c:675 src/unstrip.c:688 -#: src/unstrip.c:1766 src/unstrip.c:1961 src/unstrip.c:1985 +#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 +#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 #, c-format msgid "cannot update symbol table: %s" msgstr "no se puede actualizar tabla de símbolos: %s" @@ -6800,165 +6807,165 @@ msgstr "no se puede actualizar encabezamiento de sección: %s" msgid "cannot update relocation: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:574 +#: src/unstrip.c:576 #, c-format msgid "cannot get symbol version: %s" msgstr "no se puede obtener versión de símbolo: %s" -#: src/unstrip.c:587 +#: src/unstrip.c:589 #, 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:842 +#: src/unstrip.c:844 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:844 +#: src/unstrip.c:846 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:861 +#: src/unstrip.c:863 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "compensación de cadena inválida en símbolo [%Zu]" -#: src/unstrip.c:1019 src/unstrip.c:1423 +#: src/unstrip.c:1021 src/unstrip.c:1425 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "no se puede leer nombre [%Zu]: %s" -#: src/unstrip.c:1034 +#: src/unstrip.c:1036 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr ".debug_line section inválida" -#: src/unstrip.c:1040 +#: src/unstrip.c:1042 #, 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:1045 +#: src/unstrip.c:1047 #, 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:1051 +#: src/unstrip.c:1053 #, 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:1056 +#: src/unstrip.c:1058 #, 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:1098 src/unstrip.c:1117 src/unstrip.c:1155 +#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: src/unstrip.c:1135 +#: src/unstrip.c:1137 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1146 +#: src/unstrip.c:1148 #, c-format msgid "invalid contents in '%s' section" msgstr "contenido inválido en sección '%s'" -#: src/unstrip.c:1202 src/unstrip.c:1549 +#: src/unstrip.c:1204 src/unstrip.c:1551 #, 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:1327 src/unstrip.c:1343 src/unstrip.c:1629 src/unstrip.c:1920 +#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 #, 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:1352 +#: src/unstrip.c:1354 #, 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:1381 src/unstrip.c:1385 +#: src/unstrip.c:1383 src/unstrip.c:1387 #, 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:1389 src/unstrip.c:1393 src/unstrip.c:1644 +#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 #, c-format msgid "cannot get section count: %s" msgstr "No se puede obtener cuenta de sección: %s" -#: src/unstrip.c:1396 +#: src/unstrip.c:1398 #, 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:1400 +#: src/unstrip.c:1402 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1471 src/unstrip.c:1564 +#: src/unstrip.c:1473 src/unstrip.c:1566 #, 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:1623 +#: src/unstrip.c:1625 #, c-format msgid "cannot add new section: %s" msgstr "No se puede añadir nueva sección: %s" -#: src/unstrip.c:1753 +#: src/unstrip.c:1755 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:1785 +#: src/unstrip.c:1787 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:2060 +#: src/unstrip.c:2062 #, c-format msgid "cannot read section data: %s" msgstr "no se puede leer la sección de datos: %s" -#: src/unstrip.c:2089 +#: src/unstrip.c:2091 #, c-format msgid "cannot update ELF header: %s" msgstr "No se puede actualizar encabezamiento ELF: %s" -#: src/unstrip.c:2113 +#: src/unstrip.c:2115 #, c-format msgid "cannot update program header: %s" msgstr "no se puede actualizar encabezamiento de programa: %s" -#: src/unstrip.c:2118 src/unstrip.c:2200 +#: src/unstrip.c:2120 src/unstrip.c:2202 #, c-format msgid "cannot write output file: %s" msgstr "no se puede escribir al archivo de salida: %s" -#: src/unstrip.c:2169 +#: src/unstrip.c:2171 #, 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:2172 +#: src/unstrip.c:2174 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6966,77 +6973,77 @@ msgstr "" "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere " "prelink -u" -#: src/unstrip.c:2191 src/unstrip.c:2242 src/unstrip.c:2254 src/unstrip.c:2340 +#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "no se puede crear un descriptor ELF: %s" -#: src/unstrip.c:2233 +#: src/unstrip.c:2235 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2235 +#: src/unstrip.c:2237 msgid ", use --force" msgstr "" -#: src/unstrip.c:2258 +#: src/unstrip.c:2260 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2261 +#: src/unstrip.c:2263 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2264 +#: src/unstrip.c:2266 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2267 +#: src/unstrip.c:2269 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2297 +#: src/unstrip.c:2299 #, 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:2301 +#: src/unstrip.c:2303 #, 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:2316 +#: src/unstrip.c:2318 #, 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:2320 +#: src/unstrip.c:2322 #, 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:2333 +#: src/unstrip.c:2335 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "No se obtuvo el archivo '%s' de módulo '%s' " -#: src/unstrip.c:2364 +#: src/unstrip.c:2366 #, 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:2497 +#: src/unstrip.c:2498 #, c-format msgid "no matching modules found" msgstr "No se encontraron módulos coincidentes" -#: src/unstrip.c:2506 +#: src/unstrip.c:2507 #, c-format msgid "matched more than one module" msgstr "coincidió con más de un módulo" -#: src/unstrip.c:2550 +#: src/unstrip.c:2551 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7044,7 +7051,7 @@ msgstr "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" -#: src/unstrip.c:2551 +#: src/unstrip.c:2552 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" @@ -7110,6 +7117,12 @@ msgstr "También mostrar nombres de función" msgid "Show instances of inlined functions" msgstr "" +#, fuzzy +#~ msgid "" +#~ " [%6tx] base address\n" +#~ " " +#~ msgstr " [%6tx] (dirección base) %s\n" + #, fuzzy #~ msgid "%s: error getting zero section: %s" #~ msgstr "%s: error al leer el fichero: %s" diff --git a/po/ja.po b/po/ja.po index 85c5683d..d1f05ca8 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-06-11 15:50+0200\n" +"POT-Creation-Date: 2020-09-08 12:51+0200\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi \n" "Language-Team: Japanese \n" @@ -51,17 +51,17 @@ msgstr "" "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:3449 -#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599 +#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 #, c-format msgid "memory exhausted" msgstr "メモリー消費済み" -#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51 +#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:54 #: libelf/elf_error.c:60 msgid "no error" msgstr "エラー無し" -#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53 +#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:56 #: libelf/elf_error.c:91 msgid "out of memory" msgstr "メモリー不足" @@ -98,7 +98,7 @@ msgstr "データの出力中にエラー" msgid "no backend support available" msgstr "バックエンドサポートが利用できません" -#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52 +#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:55 #: libelf/elf_error.c:63 msgid "unknown error" msgstr "不明なエラー" @@ -214,7 +214,7 @@ msgstr "不当な DWARF バージョン" msgid "invalid directory index" msgstr "不当なディレクトリー索引" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:72 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 msgid "address out of range" msgstr "アドレスが範囲外です" @@ -245,7 +245,7 @@ msgstr "不当な行索引" msgid "invalid address range index" msgstr "不当なアドレス範囲索引" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:73 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 msgid "no matching address range" 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:2540 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 msgid "Input selection options:" msgstr "選択オプションを入力してください:" @@ -325,7 +325,7 @@ msgstr "実行中のカーネルのアドレスを探す" msgid "Kernel with all modules" msgstr "全てのモジュール付きのカーネル" -#: libdwfl/argp-std.c:63 src/stack.c:645 +#: libdwfl/argp-std.c:63 src/stack.c:650 msgid "Search path for separate debuginfo files" msgstr "分離した debuginfo ファイルべきパスを探す" @@ -360,165 +360,165 @@ msgstr "メモリー不足" msgid "No modules recognized in core file" msgstr "コアファイルの中にモジュールを認識できません" -#: libdwfl/libdwflP.h:54 +#: libdwfl/libdwflP.h:57 msgid "See errno" msgstr "" -#: libdwfl/libdwflP.h:55 +#: libdwfl/libdwflP.h:58 msgid "See elf_errno" msgstr "" -#: libdwfl/libdwflP.h:56 +#: libdwfl/libdwflP.h:59 msgid "See dwarf_errno" msgstr "" -#: libdwfl/libdwflP.h:57 +#: libdwfl/libdwflP.h:60 msgid "See ebl_errno (XXX missing)" msgstr "" -#: libdwfl/libdwflP.h:58 +#: libdwfl/libdwflP.h:61 msgid "gzip decompression failed" msgstr "" -#: libdwfl/libdwflP.h:59 +#: libdwfl/libdwflP.h:62 msgid "bzip2 decompression failed" msgstr "" -#: libdwfl/libdwflP.h:60 +#: libdwfl/libdwflP.h:63 msgid "LZMA decompression failed" msgstr "" -#: libdwfl/libdwflP.h:61 +#: libdwfl/libdwflP.h:64 msgid "no support library found for machine" msgstr "" -#: libdwfl/libdwflP.h:62 +#: libdwfl/libdwflP.h:65 msgid "Callbacks missing for ET_REL file" msgstr "" -#: libdwfl/libdwflP.h:63 +#: libdwfl/libdwflP.h:66 msgid "Unsupported relocation type" msgstr "" -#: libdwfl/libdwflP.h:64 +#: libdwfl/libdwflP.h:67 msgid "r_offset is bogus" msgstr "" -#: libdwfl/libdwflP.h:65 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "オフセットが範囲を越えている" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:69 #, fuzzy msgid "relocation refers to undefined symbol" msgstr "定義されたシンボルの印刷サイズ" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:70 msgid "Callback returned failure" msgstr "" -#: libdwfl/libdwflP.h:68 +#: libdwfl/libdwflP.h:71 #, fuzzy msgid "No DWARF information found" msgstr "DWARF 情報がありません" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:72 msgid "No symbol table found" msgstr "" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:73 #, fuzzy msgid "No ELF program headers" msgstr "プログラムヘッダーを得られません: %s" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:74 msgid "address range overlaps an existing module" msgstr "" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:77 msgid "image truncated" msgstr "" -#: libdwfl/libdwflP.h:75 +#: libdwfl/libdwflP.h:78 #, fuzzy msgid "ELF file opened" msgstr "ファイルのオープンを追跡します。" -#: libdwfl/libdwflP.h:76 +#: libdwfl/libdwflP.h:79 #, fuzzy msgid "not a valid ELF file" msgstr "不当な ELF ファイル" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:80 #, fuzzy msgid "cannot handle DWARF type description" msgstr "Elf 記述子を生成できません: %s" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:81 msgid "ELF file does not match build ID" msgstr "" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:82 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "ラインデータセクションデータを得られません: %s" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:83 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:84 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:85 #, fuzzy msgid "Invalid register" msgstr "不当なパラメーター" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:86 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:87 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:88 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:89 #, fuzzy msgid "Invalid DWARF" msgstr "不当な DWARF" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:90 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:91 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:92 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:93 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:94 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:95 #, fuzzy msgid "Invalid argument" msgstr "不当なパラメーター" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "不当な ELF ファイル" @@ -590,7 +590,7 @@ msgstr " ビルト ID: " msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:571 +#: libebl/eblobjnote.c:638 #, 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:6166 +#: libelf/elf_error.c:87 src/readelf.c:6172 #, 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:9914 src/readelf.c:10514 -#: src/readelf.c:10615 src/readelf.c:10797 +#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 +#: src/readelf.c:10636 src/readelf.c:10818 #, 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:923 src/ar.c:1127 +#: src/ar.c:472 src/ar.c:927 src/ar.c:1134 #, c-format msgid "cannot create hash table" msgstr "ハッシュテーブルを生成できません" -#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 +#: src/ar.c:479 src/ar.c:934 src/ar.c:1143 #, c-format msgid "cannot insert into hash table" msgstr "ハッシュに挿入できません" @@ -1091,67 +1091,67 @@ msgstr "%s の更新時間を変更できません" msgid "cannot rename temporary file to %.*s" msgstr "一時ファイルを %.*s に名前変更できません" -#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "新しいファイルを生成できません" -#: src/ar.c:1218 +#: src/ar.c:1225 #, c-format msgid "position member %s not found" msgstr "位置メンバー %s が見つかりません" -#: src/ar.c:1228 +#: src/ar.c:1235 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: 項目 %s がアーカイブにありません!\n" -#: src/ar.c:1257 src/objdump.c:241 +#: src/ar.c:1264 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "%s を開けません" -#: src/ar.c:1262 +#: src/ar.c:1269 #, c-format msgid "cannot stat %s" msgstr "%s を stat できません" -#: src/ar.c:1268 +#: src/ar.c:1275 #, c-format msgid "%s is no regular file" msgstr "%s は一般ファイルではありません" -#: src/ar.c:1281 +#: src/ar.c:1288 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "%s の ELF 記述子を得られません: %s\n" -#: src/ar.c:1301 +#: src/ar.c:1308 #, c-format msgid "cannot read %s: %s" msgstr "%s を読みません: %s" -#: src/ar.c:1476 +#: src/ar.c:1483 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "セクションデータを割り当てられません: %s" -#: src/ar.c:1482 +#: src/ar.c:1489 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "セクションデータを割り当てられません: %s" -#: src/ar.c:1488 +#: src/ar.c:1495 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "セクションデータを割り当てられません: %s" -#: src/ar.c:1494 +#: src/ar.c:1501 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "セクションを得られません: %s" -#: src/ar.c:1500 +#: src/ar.c:1507 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "%s を開けません" @@ -1374,7 +1374,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2189 src/unstrip.c:2218 +#: src/unstrip.c:2191 src/unstrip.c:2220 #, c-format msgid "cannot open '%s'" msgstr "'%s' を開けません" @@ -1679,7 +1679,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 #: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099 -#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440 +#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4441 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" @@ -2816,501 +2816,501 @@ msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3699 +#: src/elflint.c:3700 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3703 +#: src/elflint.c:3704 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3705 +#: src/elflint.c:3706 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3707 +#: src/elflint.c:3708 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3709 +#: src/elflint.c:3710 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3711 +#: src/elflint.c:3712 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3713 +#: src/elflint.c:3714 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3715 +#: src/elflint.c:3716 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3718 +#: src/elflint.c:3719 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3722 +#: src/elflint.c:3723 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3726 +#: src/elflint.c:3727 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3744 +#: src/elflint.c:3745 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3753 +#: src/elflint.c:3754 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3780 +#: src/elflint.c:3781 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3798 +#: src/elflint.c:3799 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3816 +#: src/elflint.c:3817 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3834 +#: src/elflint.c:3835 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3840 src/elflint.c:3872 +#: src/elflint.c:3841 src/elflint.c:3873 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3845 src/elflint.c:3877 +#: src/elflint.c:3846 src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3853 +#: src/elflint.c:3854 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3896 +#: src/elflint.c:3897 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3901 +#: src/elflint.c:3902 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3911 +#: src/elflint.c:3912 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3931 +#: src/elflint.c:3932 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" msgstr "" -#: src/elflint.c:3938 +#: src/elflint.c:3939 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "" -#: src/elflint.c:3946 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3956 +#: src/elflint.c:3957 #, fuzzy, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:3961 +#: src/elflint.c:3962 #, fuzzy, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:3967 +#: src/elflint.c:3968 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "" -#: src/elflint.c:3973 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3978 +#: src/elflint.c:3979 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:3985 +#: src/elflint.c:3986 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:3990 +#: src/elflint.c:3991 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:4009 +#: src/elflint.c:4010 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:4018 +#: src/elflint.c:4019 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:4025 +#: src/elflint.c:4026 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:4056 +#: src/elflint.c:4057 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4092 +#: src/elflint.c:4093 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4103 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4114 +#: src/elflint.c:4115 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4124 +#: src/elflint.c:4125 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4134 +#: src/elflint.c:4135 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4140 +#: src/elflint.c:4141 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4199 +#: src/elflint.c:4200 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4222 +#: src/elflint.c:4223 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4233 +#: src/elflint.c:4234 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4239 +#: src/elflint.c:4240 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4250 +#: src/elflint.c:4251 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4263 +#: src/elflint.c:4264 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4277 +#: src/elflint.c:4278 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4326 +#: src/elflint.c:4327 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" -#: src/elflint.c:4330 +#: src/elflint.c:4331 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4379 +#: src/elflint.c:4380 #, c-format msgid "" "phdr[%d]: unknown object file note type % with owner name '%s' at " "offset %zu\n" msgstr "" -#: src/elflint.c:4384 +#: src/elflint.c:4385 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % with owner name " "'%s' at offset %zu\n" msgstr "" -#: src/elflint.c:4403 +#: src/elflint.c:4404 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4423 +#: src/elflint.c:4424 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4426 +#: src/elflint.c:4427 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4447 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4454 +#: src/elflint.c:4455 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4457 +#: src/elflint.c:4458 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4475 +#: src/elflint.c:4476 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4490 +#: src/elflint.c:4491 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4500 +#: src/elflint.c:4501 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" -#: src/elflint.c:4511 +#: src/elflint.c:4512 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4519 +#: src/elflint.c:4520 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4526 +#: src/elflint.c:4527 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4540 +#: src/elflint.c:4541 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4543 +#: src/elflint.c:4544 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4553 +#: src/elflint.c:4554 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4574 +#: src/elflint.c:4575 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4585 +#: src/elflint.c:4586 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4592 +#: src/elflint.c:4593 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4601 src/elflint.c:4624 +#: src/elflint.c:4602 src/elflint.c:4625 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4630 +#: src/elflint.c:4631 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4657 +#: src/elflint.c:4658 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4660 +#: src/elflint.c:4661 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4673 +#: src/elflint.c:4674 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4681 +#: src/elflint.c:4682 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4684 +#: src/elflint.c:4685 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4688 +#: src/elflint.c:4689 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4691 +#: src/elflint.c:4692 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4696 +#: src/elflint.c:4697 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4699 +#: src/elflint.c:4700 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4710 +#: src/elflint.c:4711 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4717 +#: src/elflint.c:4718 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4720 +#: src/elflint.c:4721 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4733 +#: src/elflint.c:4734 #, 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:4767 +#: src/elflint.c:4768 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4779 +#: src/elflint.c:4780 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "新しいファイルを生成できません" -#: src/elflint.c:4800 +#: src/elflint.c:4801 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3569,8 +3569,8 @@ msgstr "検索ツリーを生成できません" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420 -#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 +#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -3893,11 +3893,11 @@ msgstr "セクション数を決定できません: %s" msgid "cannot get section: %s" msgstr "セクションを得られません: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604 -#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212 -#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483 -#: src/unstrip.c:1658 src/unstrip.c:1809 src/unstrip.c:1952 src/unstrip.c:2051 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 +#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 +#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 +#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 #, c-format msgid "cannot get section header: %s" msgstr "セクションヘッダーを得られません: %s" @@ -3907,8 +3907,8 @@ msgstr "セクションヘッダーを得られません: %s" msgid "cannot get section name" msgstr "セクションを得られません: %s" -#: src/readelf.c:670 src/readelf.c:6576 src/readelf.c:10502 src/readelf.c:10604 -#: src/readelf.c:10782 +#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 +#: src/readelf.c:10803 #, c-format msgid "cannot get %s content: %s" msgstr "%s の内容を得られません: %s" @@ -4250,7 +4250,7 @@ msgstr "" " セクションからセグメントへのマッビング:\n" " セグメント セクション..." -#: src/readelf.c:1460 src/unstrip.c:2110 src/unstrip.c:2152 src/unstrip.c:2159 +#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 #, c-format msgid "cannot get program header: %s" msgstr "プログラムヘッダーを得られません: %s" @@ -4289,8 +4289,8 @@ msgstr "<不当なシンボル>" msgid "" msgstr "<不当なセクション>" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522 -#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 +#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 msgid "Couldn't uncompress section" msgstr "" @@ -4776,9 +4776,9 @@ msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %、子: %s、タグ: %s\n" #: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6586 src/readelf.c:8323 src/readelf.c:9009 src/readelf.c:9445 -#: src/readelf.c:9690 src/readelf.c:9856 src/readelf.c:10243 -#: src/readelf.c:10303 +#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 +#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 +#: src/readelf.c:10324 #, c-format msgid "" "\n" @@ -4792,37 +4792,37 @@ msgstr "" msgid "cannot get .debug_addr section data: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9054 +#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9067 +#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9076 +#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9086 +#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9071 src/readelf.c:10435 +#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 #, fuzzy, c-format msgid "Unknown version" msgstr "不明なバージョン" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9081 +#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 #, fuzzy, c-format msgid "unsupported address size" msgstr "アドレス値ではありません" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9091 +#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 #, c-format msgid "unsupported segment size" msgstr "" @@ -4857,7 +4857,7 @@ msgid "" msgstr "" " [%*zu] 開始: %0#*、長さ: %5、CU DIE オフセット: %6\n" -#: src/readelf.c:5446 src/readelf.c:8350 +#: src/readelf.c:5446 src/readelf.c:8359 #, fuzzy, c-format msgid "" "\n" @@ -4866,8 +4866,8 @@ msgstr "" "\n" "オフセット %Zu のテーブル:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6610 src/readelf.c:8361 -#: src/readelf.c:9035 +#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 +#: src/readelf.c:9050 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" @@ -4916,39 +4916,39 @@ msgstr "" msgid "cannot get .debug_rnglists content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:5632 src/readelf.c:9041 +#: src/readelf.c:5632 src/readelf.c:9056 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5687 src/readelf.c:9096 +#: src/readelf.c:5687 src/readelf.c:9111 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5703 src/readelf.c:9112 +#: src/readelf.c:5703 src/readelf.c:9127 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9114 +#: src/readelf.c:5705 src/readelf.c:9129 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9120 +#: src/readelf.c:5711 src/readelf.c:9135 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9131 +#: src/readelf.c:5722 src/readelf.c:9146 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9135 +#: src/readelf.c:5726 src/readelf.c:9150 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " 所有者 大きさ\n" @@ -4958,7 +4958,7 @@ msgstr " 所有者 大きさ\n" msgid "invalid range list data" msgstr "不当なデータ" -#: src/readelf.c:5963 src/readelf.c:9423 +#: src/readelf.c:5963 src/readelf.c:9438 #, c-format msgid "" " %zu padding bytes\n" @@ -4970,50 +4970,48 @@ msgstr "" msgid "cannot get .debug_ranges content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:6016 src/readelf.c:9478 +#: src/readelf.c:6016 src/readelf.c:9493 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9480 +#: src/readelf.c:6018 src/readelf.c:9495 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9506 src/readelf.c:9532 +#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:6048 src/readelf.c:9612 -#, fuzzy, c-format -msgid "" -" [%6tx] base address\n" -" " -msgstr " [%6tx] ベースアドレス %s\n" +#: src/readelf.c:6052 src/readelf.c:9631 +#, fuzzy +msgid "base address" +msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:6056 src/readelf.c:9620 +#: src/readelf.c:6062 src/readelf.c:9641 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:6311 +#: src/readelf.c:6317 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:6564 +#: src/readelf.c:6573 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:6582 +#: src/readelf.c:6591 #, c-format msgid "" "\n" @@ -5022,7 +5020,7 @@ msgstr "" "\n" "オフセット %3$# の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:6632 +#: src/readelf.c:6641 #, c-format msgid "" "\n" @@ -5031,65 +5029,65 @@ msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:6733 src/readelf.c:6887 +#: src/readelf.c:6742 src/readelf.c:6896 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "不当な拡大エンコード" -#: src/readelf.c:6748 +#: src/readelf.c:6757 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:6754 +#: src/readelf.c:6763 msgid "LSDA pointer encoding: " msgstr "LSDA ポインターエンコード:" -#: src/readelf.c:6864 +#: src/readelf.c:6873 #, c-format msgid " (offset: %#)" msgstr " (オフセット: %#)" -#: src/readelf.c:6871 +#: src/readelf.c:6880 #, c-format msgid " (end offset: %#)" msgstr " (終了オフセット: %#)" -#: src/readelf.c:6908 +#: src/readelf.c:6917 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sLSDA ポインター: %#\n" -#: src/readelf.c:6993 +#: src/readelf.c:7002 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "属性コードを得られません: %s" -#: src/readelf.c:7003 +#: src/readelf.c:7012 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "属性様式を得られません: %s" -#: src/readelf.c:7025 +#: src/readelf.c:7034 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "属性値を得られません: %s" -#: src/readelf.c:7355 +#: src/readelf.c:7364 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "不当なファイル" -#: src/readelf.c:7359 +#: src/readelf.c:7368 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:7363 +#: src/readelf.c:7372 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7676 +#: src/readelf.c:7685 #, c-format msgid "" "\n" @@ -5100,12 +5098,12 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:7726 +#: src/readelf.c:7735 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7745 +#: src/readelf.c:7754 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5117,7 +5115,7 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7757 +#: src/readelf.c:7766 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5128,39 +5126,39 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7767 src/readelf.c:7930 +#: src/readelf.c:7776 src/readelf.c:7939 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7794 +#: src/readelf.c:7803 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7823 +#: src/readelf.c:7832 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られません: %s" -#: src/readelf.c:7832 +#: src/readelf.c:7841 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "セクション '%2$s' 中のオフセット %1$ の DIE のタグを得られません: " "%3$s" -#: src/readelf.c:7870 +#: src/readelf.c:7879 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次の DIE を得られません: %s\n" -#: src/readelf.c:7878 +#: src/readelf.c:7887 #, c-format msgid "cannot get next DIE: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7922 +#: src/readelf.c:7931 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5171,7 +5169,7 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7974 +#: src/readelf.c:7983 #, fuzzy, c-format msgid "" "\n" @@ -5181,18 +5179,18 @@ msgstr "" "\n" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:8306 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "unknown form: %s" msgstr "不明な様式 %" -#: src/readelf.c:8337 +#: src/readelf.c:8346 #, c-format msgid "cannot get line data section data: %s" msgstr "ラインデータセクションデータを得られません: %s" #. Print what we got so far. -#: src/readelf.c:8439 +#: src/readelf.c:8448 #, fuzzy, c-format msgid "" "\n" @@ -5222,33 +5220,33 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:8461 +#: src/readelf.c:8470 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:8469 +#: src/readelf.c:8478 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "アドレス値ではありません" -#: src/readelf.c:8477 +#: src/readelf.c:8486 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "セクションを得られません: %s" -#: src/readelf.c:8487 +#: src/readelf.c:8496 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ" -#: src/readelf.c:8502 +#: src/readelf.c:8511 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] %hhu パラメーター\n" -#: src/readelf.c:8513 +#: src/readelf.c:8522 msgid "" "\n" "Directory table:" @@ -5256,12 +5254,12 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:8519 src/readelf.c:8596 +#: src/readelf.c:8528 src/readelf.c:8605 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8590 +#: src/readelf.c:8599 #, fuzzy msgid "" "\n" @@ -5270,7 +5268,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:8651 +#: src/readelf.c:8660 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5278,7 +5276,16 @@ msgstr "" "ファイル名テーブル:\n" " Entry Dir 時刻 大きさ 名前" -#: src/readelf.c:8688 +#: src/readelf.c:8699 +#, fuzzy +msgid "" +"\n" +"No line number statements." +msgstr "" +"\n" +"行 番号 文:" + +#: src/readelf.c:8703 msgid "" "\n" "Line number statements:" @@ -5286,119 +5293,119 @@ msgstr "" "\n" "行 番号 文:" -#: src/readelf.c:8711 +#: src/readelf.c:8726 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8745 +#: src/readelf.c:8760 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:8752 +#: src/readelf.c:8767 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8770 +#: src/readelf.c:8785 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:8775 +#: src/readelf.c:8790 #, fuzzy msgid " end of sequence" msgstr "列の終わり" -#: src/readelf.c:8793 +#: src/readelf.c:8808 #, fuzzy, c-format msgid " set address to " msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:8821 +#: src/readelf.c:8836 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "新ファイルを定義する: dir=%u、mtime=%、長さh=%、名前=%s\n" -#: src/readelf.c:8835 +#: src/readelf.c:8850 #, fuzzy, c-format msgid " set discriminator to %u\n" msgstr "カラムを % に設定する\n" #. Unknown, ignore it. -#: src/readelf.c:8840 +#: src/readelf.c:8855 #, fuzzy msgid " unknown opcode" msgstr "不明な命令コード" #. Takes no argument. -#: src/readelf.c:8852 +#: src/readelf.c:8867 msgid " copy" msgstr "複写" -#: src/readelf.c:8863 +#: src/readelf.c:8878 #, fuzzy, c-format msgid " advance address by %u to " msgstr "アドレスを %u だけ進めて %s にする\n" -#: src/readelf.c:8867 src/readelf.c:8928 +#: src/readelf.c:8882 src/readelf.c:8943 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8879 +#: src/readelf.c:8894 #, c-format msgid " advance line by constant %d to %\n" msgstr "行を定数 %d だけ進めて % にする\n" -#: src/readelf.c:8889 +#: src/readelf.c:8904 #, c-format msgid " set file to %\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:8900 +#: src/readelf.c:8915 #, c-format msgid " set column to %\n" msgstr "カラムを % に設定する\n" -#: src/readelf.c:8907 +#: src/readelf.c:8922 #, c-format msgid " set '%s' to %\n" msgstr " '%s' を % に設定する\n" #. Takes no argument. -#: src/readelf.c:8913 +#: src/readelf.c:8928 msgid " set basic block flag" msgstr "基本ブロックフラグを設定する" -#: src/readelf.c:8924 +#: src/readelf.c:8939 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "アドレスを定数 %u だけ済めて %s にする\n" -#: src/readelf.c:8944 +#: src/readelf.c:8959 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr "アドレスを固定値 %u だけ進めて %s にする\n" #. Takes no argument. -#: src/readelf.c:8954 +#: src/readelf.c:8969 msgid " set prologue end flag" msgstr "プロローグ終了フラグを設定する" #. Takes no argument. -#: src/readelf.c:8959 +#: src/readelf.c:8974 msgid " set epilogue begin flag" msgstr "エピローグ開始フラグを設定する" -#: src/readelf.c:8969 +#: src/readelf.c:8984 #, fuzzy, c-format msgid " set isa to %u\n" msgstr " ファイルを % に設定する\n" @@ -5406,98 +5413,98 @@ msgstr " ファイルを % に設定する\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:8978 +#: src/readelf.c:8993 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:9018 +#: src/readelf.c:9033 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:9187 +#: src/readelf.c:9202 #, fuzzy, c-format msgid "invalid loclists data" msgstr "不当なデータ" -#: src/readelf.c:9440 +#: src/readelf.c:9455 #, c-format msgid "cannot get .debug_loc content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:9647 src/readelf.c:10691 +#: src/readelf.c:9668 src/readelf.c:10712 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:9702 src/readelf.c:9865 +#: src/readelf.c:9723 src/readelf.c:9886 #, c-format msgid "cannot get macro information section data: %s" msgstr "マクロ情報セクションのデータを得られません: %s" -#: src/readelf.c:9782 +#: src/readelf.c:9803 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:9805 +#: src/readelf.c:9826 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:9906 +#: src/readelf.c:9927 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:9918 +#: src/readelf.c:9939 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9924 src/readelf.c:10811 +#: src/readelf.c:9945 src/readelf.c:10832 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9931 +#: src/readelf.c:9952 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " 入口点アドレス : %#\n" -#: src/readelf.c:9960 +#: src/readelf.c:9981 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (オフセット: %#)" -#: src/readelf.c:9968 +#: src/readelf.c:9989 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:9993 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:10000 +#: src/readelf.c:10021 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10012 +#: src/readelf.c:10033 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] %hhu パラメーター\n" -#: src/readelf.c:10027 +#: src/readelf.c:10048 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10228 +#: src/readelf.c:10249 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" @@ -5505,7 +5512,7 @@ msgstr "" # # "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い -#: src/readelf.c:10272 +#: src/readelf.c:10293 #, fuzzy, c-format msgid "" "\n" @@ -5516,37 +5523,37 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " %4$*s 文字列\n" -#: src/readelf.c:10287 +#: src/readelf.c:10308 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** 文字列の読込み中にエラー: %s\n" -#: src/readelf.c:10316 +#: src/readelf.c:10337 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:10415 +#: src/readelf.c:10436 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10417 +#: src/readelf.c:10438 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10431 +#: src/readelf.c:10452 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10440 +#: src/readelf.c:10461 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10494 +#: src/readelf.c:10515 #, c-format msgid "" "\n" @@ -5555,7 +5562,7 @@ msgstr "" "\n" "呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10596 +#: src/readelf.c:10617 #, c-format msgid "" "\n" @@ -5564,22 +5571,22 @@ msgstr "" "\n" "例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10619 +#: src/readelf.c:10640 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:10631 +#: src/readelf.c:10652 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:10646 +#: src/readelf.c:10667 #, c-format msgid " Call site encoding: %#x " msgstr "呼出しサイトコード化: %#x " -#: src/readelf.c:10659 +#: src/readelf.c:10680 msgid "" "\n" " Call site table:" @@ -5587,7 +5594,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:10673 +#: src/readelf.c:10694 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5600,12 +5607,12 @@ msgstr "" " 離着陸場: %#\n" " 行動: %u\n" -#: src/readelf.c:10746 +#: src/readelf.c:10767 #, c-format msgid "invalid TType encoding" msgstr "不当な TType コード化" -#: src/readelf.c:10773 +#: src/readelf.c:10794 #, fuzzy, c-format msgid "" "\n" @@ -5615,37 +5622,37 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10802 +#: src/readelf.c:10823 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10820 +#: src/readelf.c:10841 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10827 +#: src/readelf.c:10848 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10834 +#: src/readelf.c:10855 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:10841 +#: src/readelf.c:10862 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10848 +#: src/readelf.c:10869 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:10862 +#: src/readelf.c:10883 #, fuzzy, c-format msgid "" "\n" @@ -5655,7 +5662,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10887 +#: src/readelf.c:10908 #, fuzzy, c-format msgid "" "\n" @@ -5665,7 +5672,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10916 +#: src/readelf.c:10937 #, fuzzy, c-format msgid "" "\n" @@ -5675,7 +5682,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10948 +#: src/readelf.c:10969 #, fuzzy, c-format msgid "" "\n" @@ -5684,18 +5691,18 @@ msgstr "" "\n" "オフセット %#0 に不当なシンボルテーブル\n" -#: src/readelf.c:11086 +#: src/readelf.c:11107 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デバッグ内容記述子を得られません: %s" -#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187 -#: src/readelf.c:12245 +#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 +#: src/readelf.c:12266 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータの変換ができません: %s" -#: src/readelf.c:11817 +#: src/readelf.c:11838 #, c-format msgid "" "\n" @@ -5704,21 +5711,21 @@ msgstr "" "\n" "%*s... < %u 回の繰返し> ..." -#: src/readelf.c:12324 +#: src/readelf.c:12345 msgid " Owner Data size Type\n" msgstr " 所有者 データ大きさタイプ\n" -#: src/readelf.c:12353 +#: src/readelf.c:12374 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12405 +#: src/readelf.c:12426 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "ノートセクションの内容を得られません: %s" -#: src/readelf.c:12439 +#: src/readelf.c:12460 #, c-format msgid "" "\n" @@ -5728,7 +5735,7 @@ msgstr "" "オフセット %4$#0 の %3$ バイトのノートセクション [%1$2zu] " "'%2$s':\n" -#: src/readelf.c:12462 +#: src/readelf.c:12483 #, c-format msgid "" "\n" @@ -5737,7 +5744,7 @@ msgstr "" "\n" "オフセット %2$#0 の %1$ バイトのノートセグメント:\n" -#: src/readelf.c:12509 +#: src/readelf.c:12530 #, fuzzy, c-format msgid "" "\n" @@ -5746,12 +5753,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:12536 src/readelf.c:12587 +#: src/readelf.c:12557 src/readelf.c:12608 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "セクション [%Zu] '%s' からデータが得られません: %s" -#: src/readelf.c:12541 +#: src/readelf.c:12562 #, fuzzy, c-format msgid "" "\n" @@ -5761,7 +5768,7 @@ msgstr "" "オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" "プ、%3$ バイト:\n" -#: src/readelf.c:12546 +#: src/readelf.c:12567 #, fuzzy, c-format msgid "" "\n" @@ -5772,7 +5779,7 @@ msgstr "" "オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" "プ、%3$ バイト:\n" -#: src/readelf.c:12560 +#: src/readelf.c:12581 #, fuzzy, c-format msgid "" "\n" @@ -5781,7 +5788,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:12592 +#: src/readelf.c:12613 #, fuzzy, c-format msgid "" "\n" @@ -5791,7 +5798,7 @@ msgstr "" "オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" "イトあります:\n" -#: src/readelf.c:12597 +#: src/readelf.c:12618 #, fuzzy, c-format msgid "" "\n" @@ -5802,7 +5809,7 @@ msgstr "" "オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" "イトあります:\n" -#: src/readelf.c:12646 +#: src/readelf.c:12667 #, c-format msgid "" "\n" @@ -5811,7 +5818,7 @@ msgstr "" "\n" "セクション [%lu] がありません" -#: src/readelf.c:12676 +#: src/readelf.c:12697 #, c-format msgid "" "\n" @@ -5820,12 +5827,12 @@ msgstr "" "\n" "セクション '%s' がありません" -#: src/readelf.c:12733 +#: src/readelf.c:12754 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブのシンボル索引 '%s' を得られません: %s" -#: src/readelf.c:12736 +#: src/readelf.c:12757 #, c-format msgid "" "\n" @@ -5834,7 +5841,7 @@ msgstr "" "\n" "アーカイブ '%s' にはシンボル索引がありません\n" -#: src/readelf.c:12740 +#: src/readelf.c:12761 #, fuzzy, c-format msgid "" "\n" @@ -5843,12 +5850,12 @@ msgstr "" "\n" "アーカイブ '%s' の索引には %Zu 項目あります:\n" -#: src/readelf.c:12758 +#: src/readelf.c:12779 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s" -#: src/readelf.c:12763 +#: src/readelf.c:12784 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンバー '%s' には以下があります:\n" @@ -5927,109 +5934,109 @@ msgstr "セクションヘッダーを得られません: %s" msgid "(TOTALS)\n" msgstr "(合計)\n" -#: src/stack.c:482 +#: src/stack.c:487 #, c-format msgid "-p PID should be a positive process id." msgstr "" -#: src/stack.c:488 +#: src/stack.c:493 #, fuzzy, c-format msgid "Cannot open core file '%s'" msgstr "アーカイブ '%s' を開くことができません" -#: src/stack.c:548 +#: src/stack.c:553 #, c-format msgid "-n MAXFRAMES should be 0 or higher." msgstr "" -#: src/stack.c:560 +#: src/stack.c:565 #, c-format msgid "-e EXEC needs a core given by --core." msgstr "" -#: src/stack.c:564 +#: src/stack.c:569 #, c-format msgid "-1 needs a thread id given by -p." msgstr "" -#: src/stack.c:568 +#: src/stack.c:573 #, c-format msgid "One of -p PID or --core COREFILE should be given." msgstr "" -#: src/stack.c:640 +#: src/stack.c:645 #, fuzzy msgid "Show stack of process PID" msgstr "検索ツリーを生成できません" -#: src/stack.c:642 +#: src/stack.c:647 msgid "Show stack found in COREFILE" msgstr "" -#: src/stack.c:643 +#: src/stack.c:648 msgid "(optional) EXECUTABLE that produced COREFILE" msgstr "" -#: src/stack.c:647 +#: src/stack.c:652 #, fuzzy msgid "Output selection options:" msgstr "選択オプションを入力してください:" -#: src/stack.c:649 +#: src/stack.c:654 #, fuzzy msgid "Additionally show frame activation" msgstr "出力選択:" -#: src/stack.c:651 +#: src/stack.c:656 msgid "Additionally try to lookup DWARF debuginfo name for frame address" msgstr "" -#: src/stack.c:654 +#: src/stack.c:659 msgid "" "Additionally show inlined function frames using DWARF debuginfo if available " "(implies -d)" msgstr "" -#: src/stack.c:656 +#: src/stack.c:661 msgid "Additionally show module file information" msgstr "" -#: src/stack.c:658 +#: src/stack.c:663 #, fuzzy msgid "Additionally show source file information" msgstr "出力選択:" -#: src/stack.c:660 +#: src/stack.c:665 msgid "" "Show all additional information (activation, debugname, inlines, module and " "source)" msgstr "" -#: src/stack.c:662 +#: src/stack.c:667 msgid "Do not resolve address to function symbol name" msgstr "" -#: src/stack.c:664 +#: src/stack.c:669 msgid "Show raw function symbol names, do not try to demangle names" msgstr "" -#: src/stack.c:666 +#: src/stack.c:671 msgid "Show module build-id, load address and pc offset" msgstr "" -#: src/stack.c:668 +#: src/stack.c:673 msgid "Show the backtrace of only one thread" msgstr "" -#: src/stack.c:670 +#: src/stack.c:675 msgid "Show at most MAXFRAMES per thread (default 256, use 0 for unlimited)" msgstr "" -#: src/stack.c:672 +#: src/stack.c:677 msgid "Show module memory map with build-id, elf and debug files detected" msgstr "" -#: src/stack.c:680 +#: src/stack.c:685 msgid "" "Print a stack for each thread in a process or core file.\n" "\n" @@ -6041,7 +6048,7 @@ msgid "" "arguments it will exit with return code 64." msgstr "" -#: src/stack.c:755 +#: src/stack.c:760 #, c-format msgid "Couldn't show any frames." msgstr "" @@ -6440,7 +6447,7 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "セクションを得られません: %s" -#: src/unstrip.c:248 src/unstrip.c:2081 +#: src/unstrip.c:248 src/unstrip.c:2083 #, c-format msgid "cannot get ELF header: %s" msgstr "" @@ -6460,12 +6467,12 @@ msgstr "セクション数を決定できません: %s" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:269 src/unstrip.c:2099 src/unstrip.c:2142 +#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "セクション数を決定できません: %s" -#: src/unstrip.c:274 src/unstrip.c:2103 +#: src/unstrip.c:274 src/unstrip.c:2105 #, c-format msgid "cannot create program headers: %s" msgstr "" @@ -6480,12 +6487,12 @@ msgstr "" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:293 src/unstrip.c:1703 +#: src/unstrip.c:293 src/unstrip.c:1705 #, c-format msgid "cannot get section data: %s" msgstr "" -#: src/unstrip.c:295 src/unstrip.c:1705 +#: src/unstrip.c:295 src/unstrip.c:1707 #, c-format msgid "cannot copy section data: %s" msgstr "" @@ -6495,14 +6502,14 @@ msgstr "" msgid "cannot create directory '%s'" msgstr "" -#: src/unstrip.c:391 src/unstrip.c:651 src/unstrip.c:685 src/unstrip.c:853 -#: src/unstrip.c:1745 +#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 +#: src/unstrip.c:1747 #, c-format msgid "cannot get symbol table entry: %s" msgstr "" -#: src/unstrip.c:407 src/unstrip.c:654 src/unstrip.c:675 src/unstrip.c:688 -#: src/unstrip.c:1766 src/unstrip.c:1961 src/unstrip.c:1985 +#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 +#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 #, c-format msgid "cannot update symbol table: %s" msgstr "" @@ -6517,238 +6524,238 @@ msgstr "" msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:574 +#: src/unstrip.c:576 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:587 +#: src/unstrip.c:589 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:842 +#: src/unstrip.c:844 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/unstrip.c:844 +#: src/unstrip.c:846 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/unstrip.c:861 +#: src/unstrip.c:863 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "シンボル %2$sの不正なオフセット %1$zu " -#: src/unstrip.c:1019 src/unstrip.c:1423 +#: src/unstrip.c:1021 src/unstrip.c:1425 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:1034 +#: src/unstrip.c:1036 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "不当な .debug_line セクション" -#: src/unstrip.c:1040 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "couldn't get shdr for group section: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/unstrip.c:1045 +#: src/unstrip.c:1047 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/unstrip.c:1051 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "セクション数を決定できません: %s" -#: src/unstrip.c:1056 +#: src/unstrip.c:1058 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "セクションヘッダー文字列セクションを生成できません: %s" -#: src/unstrip.c:1098 src/unstrip.c:1117 src/unstrip.c:1155 +#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1135 +#: src/unstrip.c:1137 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1146 +#: src/unstrip.c:1148 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1202 src/unstrip.c:1549 +#: src/unstrip.c:1204 src/unstrip.c:1551 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/unstrip.c:1327 src/unstrip.c:1343 src/unstrip.c:1629 src/unstrip.c:1920 +#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1352 +#: src/unstrip.c:1354 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1381 src/unstrip.c:1385 +#: src/unstrip.c:1383 src/unstrip.c:1387 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1389 src/unstrip.c:1393 src/unstrip.c:1644 +#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1396 +#: src/unstrip.c:1398 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1400 +#: src/unstrip.c:1402 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1471 src/unstrip.c:1564 +#: src/unstrip.c:1473 src/unstrip.c:1566 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1623 +#: src/unstrip.c:1625 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1753 +#: src/unstrip.c:1755 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "不当なセクション索引" -#: src/unstrip.c:1785 +#: src/unstrip.c:1787 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "不当なセクション索引" -#: src/unstrip.c:2060 +#: src/unstrip.c:2062 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:2089 +#: src/unstrip.c:2091 #, c-format msgid "cannot update ELF header: %s" msgstr "ELF ヘッダーを更新できません: %s" -#: src/unstrip.c:2113 +#: src/unstrip.c:2115 #, c-format msgid "cannot update program header: %s" msgstr "" -#: src/unstrip.c:2118 src/unstrip.c:2200 +#: src/unstrip.c:2120 src/unstrip.c:2202 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2169 +#: src/unstrip.c:2171 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2172 +#: src/unstrip.c:2174 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2191 src/unstrip.c:2242 src/unstrip.c:2254 src/unstrip.c:2340 +#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2233 +#: src/unstrip.c:2235 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2235 +#: src/unstrip.c:2237 msgid ", use --force" msgstr "" -#: src/unstrip.c:2258 +#: src/unstrip.c:2260 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2261 +#: src/unstrip.c:2263 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2264 +#: src/unstrip.c:2266 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2267 +#: src/unstrip.c:2269 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2297 +#: src/unstrip.c:2299 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2301 +#: src/unstrip.c:2303 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2316 +#: src/unstrip.c:2318 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2320 +#: src/unstrip.c:2322 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2333 +#: src/unstrip.c:2335 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2364 +#: src/unstrip.c:2366 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2497 +#: src/unstrip.c:2498 #, c-format msgid "no matching modules found" msgstr "" -#: src/unstrip.c:2506 +#: src/unstrip.c:2507 #, c-format msgid "matched more than one module" msgstr "" -#: src/unstrip.c:2550 +#: src/unstrip.c:2551 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2551 +#: src/unstrip.c:2552 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" @@ -6789,6 +6796,12 @@ msgstr "出力選択:" msgid "Show instances of inlined functions" msgstr "" +#, fuzzy +#~ msgid "" +#~ " [%6tx] base address\n" +#~ " " +#~ msgstr " [%6tx] ベースアドレス %s\n" + #, fuzzy #~ msgid "%s: error getting zero section: %s" #~ msgstr "%s: ファイルを読込み中にエラー: %s" diff --git a/po/pl.po b/po/pl.po index 5d47add8..2206e842 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-06-11 15:50+0200\n" +"POT-Creation-Date: 2020-09-08 12:51+0200\n" "PO-Revision-Date: 2016-12-29 17:48+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" @@ -60,17 +60,17 @@ msgstr "" "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599 +#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" -#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51 +#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:54 #: libelf/elf_error.c:60 msgid "no error" msgstr "brak błędu" -#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53 +#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:56 #: libelf/elf_error.c:91 msgid "out of memory" msgstr "brak pamięci" @@ -107,7 +107,7 @@ msgstr "błąd podczas wyprowadzania danych" msgid "no backend support available" msgstr "brak dostępnej obsługi zaplecza" -#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52 +#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:55 #: libelf/elf_error.c:63 msgid "unknown error" msgstr "nieznany błąd" @@ -223,7 +223,7 @@ msgstr "nieprawidłowa wersja DWARF" msgid "invalid directory index" msgstr "nieprawidłowy indeks katalogu" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:72 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 msgid "address out of range" msgstr "adres jest spoza zakresu" @@ -254,7 +254,7 @@ msgstr "nieprawidłowy indeks wiersza" msgid "invalid address range index" msgstr "nieprawidłowy indeks zakresu adresów" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:73 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 msgid "no matching address range" msgstr "brak pasującego zakresu adresów" @@ -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:2540 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 msgid "Input selection options:" msgstr "Opcje wyboru wejścia:" @@ -333,7 +333,7 @@ msgstr "Wyszukuje adresy w uruchomionych jądrze" msgid "Kernel with all modules" msgstr "Jądro ze wszystkimi modułami" -#: libdwfl/argp-std.c:63 src/stack.c:645 +#: libdwfl/argp-std.c:63 src/stack.c:650 msgid "Search path for separate debuginfo files" msgstr "Wyszukuje ścieżkę dla oddzielnych plików debuginfo" @@ -367,155 +367,155 @@ msgstr "Za mało pamięci" msgid "No modules recognized in core file" msgstr "Nie rozpoznano żadnych modułów w pliku core" -#: libdwfl/libdwflP.h:54 +#: libdwfl/libdwflP.h:57 msgid "See errno" msgstr "Proszę zobaczyć errno" -#: libdwfl/libdwflP.h:55 +#: libdwfl/libdwflP.h:58 msgid "See elf_errno" msgstr "Proszę zobaczyć elf_errno" -#: libdwfl/libdwflP.h:56 +#: libdwfl/libdwflP.h:59 msgid "See dwarf_errno" msgstr "Proszę zobaczyć dwarf_errno" -#: libdwfl/libdwflP.h:57 +#: libdwfl/libdwflP.h:60 msgid "See ebl_errno (XXX missing)" msgstr "Proszę zobaczyć ebl_errno (brak XXX)" -#: libdwfl/libdwflP.h:58 +#: libdwfl/libdwflP.h:61 msgid "gzip decompression failed" msgstr "dekompresja gzip się nie powiodła" -#: libdwfl/libdwflP.h:59 +#: libdwfl/libdwflP.h:62 msgid "bzip2 decompression failed" msgstr "dekompresja bzip2 się nie powiodła" -#: libdwfl/libdwflP.h:60 +#: libdwfl/libdwflP.h:63 msgid "LZMA decompression failed" msgstr "dekompresja LZMA się nie powiodła" -#: libdwfl/libdwflP.h:61 +#: libdwfl/libdwflP.h:64 msgid "no support library found for machine" msgstr "nie odnaleziono biblioteki obsługi dla komputera" -#: libdwfl/libdwflP.h:62 +#: libdwfl/libdwflP.h:65 msgid "Callbacks missing for ET_REL file" msgstr "Brak wywołań zwrotnych dla pliku ET_REL" -#: libdwfl/libdwflP.h:63 +#: libdwfl/libdwflP.h:66 msgid "Unsupported relocation type" msgstr "Nieobsługiwany typ relokacji" -#: libdwfl/libdwflP.h:64 +#: libdwfl/libdwflP.h:67 msgid "r_offset is bogus" msgstr "r_offset jest fałszywe" -#: libdwfl/libdwflP.h:65 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "offset spoza zakresu" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:69 msgid "relocation refers to undefined symbol" msgstr "relokacja odnosi się do nieokreślonego symbolu" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:70 msgid "Callback returned failure" msgstr "Wywołanie zwrotne zwróciło niepowodzenie" -#: libdwfl/libdwflP.h:68 +#: libdwfl/libdwflP.h:71 msgid "No DWARF information found" msgstr "Nie odnaleziono informacji DWARF" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:72 msgid "No symbol table found" msgstr "Nie odnaleziono tabeli symboli" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:73 msgid "No ELF program headers" msgstr "Brak nagłówków programu ELF" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:74 msgid "address range overlaps an existing module" msgstr "zakres adresów pokrywa się z istniejącym modułem" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:77 msgid "image truncated" msgstr "skrócono obraz" -#: libdwfl/libdwflP.h:75 +#: libdwfl/libdwflP.h:78 msgid "ELF file opened" msgstr "otwarto plik ELF" -#: libdwfl/libdwflP.h:76 +#: libdwfl/libdwflP.h:79 msgid "not a valid ELF file" msgstr "nie jest prawidłowym plikiem ELF" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:80 msgid "cannot handle DWARF type description" msgstr "nie można obsłużyć opisu typu DWARF" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:81 msgid "ELF file does not match build ID" msgstr "plik ELF nie ma pasującego identyfikatora kopii" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:82 msgid "corrupt .gnu.prelink_undo section data" msgstr "uszkodzone dane sekcji .gnu.prelink_undo" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:83 msgid "Internal error due to ebl" msgstr "Wewnętrzny błąd z powodu ebl" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:84 msgid "Missing data in core file" msgstr "Brak danych w pliku core" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:85 msgid "Invalid register" msgstr "Nieprawidłowy rejestr" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:86 msgid "Error reading process memory" msgstr "Błąd podczas odczytywania pamięci procesu" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:87 msgid "Couldn't find architecture of any ELF" msgstr "Nie można odnaleźć architektury żadnego ELF" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:88 msgid "Error parsing /proc filesystem" msgstr "Błąd podczas przetwarzania systemu plików /proc" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:89 msgid "Invalid DWARF" msgstr "Nieprawidłowy DWARF" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:90 msgid "Unsupported DWARF" msgstr "Nieobsługiwany DWARF" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:91 msgid "Unable to find more threads" msgstr "Nie można odnaleźć więcej wątków" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:92 msgid "Dwfl already has attached state" msgstr "Dwfl już ma załączony stan" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:93 msgid "Dwfl has no attached state" msgstr "Dwfl nie ma załączonego stanu" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:94 msgid "Unwinding not supported for this architecture" msgstr "Odwijanie nie jest obsługiwane dla tej architektury" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:95 msgid "Invalid argument" msgstr "Nieprawidłowy parametr" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:96 msgid "Not an ET_CORE ELF file" msgstr "Nie jest plikiem ELF ET_CORE" @@ -586,7 +586,7 @@ msgstr " Identyfikator kopii: " msgid " Linker version: %.*s\n" msgstr " Wersja konsolidatora: %.*s\n" -#: libebl/eblobjnote.c:571 +#: libebl/eblobjnote.c:638 #, 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:6166 +#: libelf/elf_error.c:87 src/readelf.c:6172 #, 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:9914 src/readelf.c:10514 -#: src/readelf.c:10615 src/readelf.c:10797 +#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 +#: src/readelf.c:10636 src/readelf.c:10818 #, 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:923 src/ar.c:1127 +#: src/ar.c:472 src/ar.c:927 src/ar.c:1134 #, c-format msgid "cannot create hash table" msgstr "nie można utworzyć tabeli mieszającej" -#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 +#: src/ar.c:479 src/ar.c:934 src/ar.c:1143 #, c-format msgid "cannot insert into hash table" msgstr "nie można umieścić w tabeli mieszającej" @@ -1083,67 +1083,67 @@ msgstr "nie można zmienić czasu modyfikacji %s" msgid "cannot rename temporary file to %.*s" msgstr "nie można zmienić nazwy pliku tymczasowego na %.*s" -#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "nie można utworzyć nowego pliku" -#: src/ar.c:1218 +#: src/ar.c:1225 #, c-format msgid "position member %s not found" msgstr "nie odnaleziono położenia elementu %s" -#: src/ar.c:1228 +#: src/ar.c:1235 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: brak wpisu %s w archiwum.\n" -#: src/ar.c:1257 src/objdump.c:241 +#: src/ar.c:1264 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "nie można otworzyć %s" -#: src/ar.c:1262 +#: src/ar.c:1269 #, c-format msgid "cannot stat %s" msgstr "nie można wykonać stat na %s" -#: src/ar.c:1268 +#: src/ar.c:1275 #, c-format msgid "%s is no regular file" msgstr "%s nie jest zwykłym plikiem" -#: src/ar.c:1281 +#: src/ar.c:1288 #, 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:1301 +#: src/ar.c:1308 #, c-format msgid "cannot read %s: %s" msgstr "nie można odczytać %s: %s" -#: src/ar.c:1476 +#: src/ar.c:1483 #, fuzzy, c-format msgid "cannot represent ar_date" msgstr "nie można dekompresować danych" -#: src/ar.c:1482 +#: src/ar.c:1489 #, fuzzy, c-format msgid "cannot represent ar_uid" msgstr "nie można dekompresować danych" -#: src/ar.c:1488 +#: src/ar.c:1495 #, fuzzy, c-format msgid "cannot represent ar_gid" msgstr "nie można dekompresować danych" -#: src/ar.c:1494 +#: src/ar.c:1501 #, fuzzy, c-format msgid "cannot represent ar_mode" msgstr "nie można uzyskać nazwy sekcji" -#: src/ar.c:1500 +#: src/ar.c:1507 #, fuzzy, c-format msgid "cannot represent ar_size" msgstr "nie można otworzyć %s" @@ -1366,7 +1366,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2189 src/unstrip.c:2218 +#: src/unstrip.c:2191 src/unstrip.c:2220 #, c-format msgid "cannot open '%s'" msgstr "nie można otworzyć „%s”" @@ -1675,7 +1675,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 #: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099 -#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440 +#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4441 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n" @@ -2895,47 +2895,47 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: dodatkowe bajty po ostatniej sekcji " "atrybutów\n" -#: src/elflint.c:3699 +#: src/elflint.c:3700 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "nie można uzyskać nagłówka sekcji zerowej\n" -#: src/elflint.c:3703 +#: src/elflint.c:3704 #, c-format msgid "zeroth section has nonzero name\n" msgstr "sekcja zerowa ma niezerową nazwę\n" -#: src/elflint.c:3705 +#: src/elflint.c:3706 #, c-format msgid "zeroth section has nonzero type\n" msgstr "sekcja zerowa ma niezerowy typ\n" -#: src/elflint.c:3707 +#: src/elflint.c:3708 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "sekcja zerowa ma niezerowe flagi\n" -#: src/elflint.c:3709 +#: src/elflint.c:3710 #, c-format msgid "zeroth section has nonzero address\n" msgstr "sekcja zerowa ma niezerowy adres\n" -#: src/elflint.c:3711 +#: src/elflint.c:3712 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "sekcja zerowa ma niezerowy offset\n" -#: src/elflint.c:3713 +#: src/elflint.c:3714 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "sekcja zerowa ma niezerową wartość wyrównania\n" -#: src/elflint.c:3715 +#: src/elflint.c:3716 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "sekcja zerowa ma niezerową wartość rozmiaru wpisu\n" -#: src/elflint.c:3718 +#: src/elflint.c:3719 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2944,7 +2944,7 @@ msgstr "" "sekcja zerowa ma niezerową wartość rozmiaru, a nagłówek ELF ma niezerową " "wartość shnum\n" -#: src/elflint.c:3722 +#: src/elflint.c:3723 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2953,7 +2953,7 @@ msgstr "" "sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje " "przepełnienia w shstrndx\n" -#: src/elflint.c:3726 +#: src/elflint.c:3727 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2962,46 +2962,46 @@ msgstr "" "sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje " "przepełnienia w phnum\n" -#: src/elflint.c:3744 +#: src/elflint.c:3745 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] „%s”: %s\n" -#: src/elflint.c:3753 +#: src/elflint.c:3754 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n" -#: src/elflint.c:3780 +#: src/elflint.c:3781 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "sekcja [%2d] „%s” ma błędny typ: oczekiwano %s, jest %s\n" -#: src/elflint.c:3798 +#: src/elflint.c:3799 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "sekcja [%2zu] „%s” ma błędne flagi: oczekiwano %s, jest %s\n" -#: src/elflint.c:3816 +#: src/elflint.c:3817 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" "sekcja [%2zu] „%s” ma błędne flagi: oczekiwano %s i być może %s, jest %s\n" -#: src/elflint.c:3834 +#: src/elflint.c:3835 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "sekcja [%2zu] „%s” jest obecna w pliku obiektu\n" -#: src/elflint.c:3840 src/elflint.c:3872 +#: src/elflint.c:3841 src/elflint.c:3873 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" "sekcja [%2zu] „%s” ma flagę SHF_ALLOC, ale nie ma segmentu wczytywalnego\n" -#: src/elflint.c:3845 src/elflint.c:3877 +#: src/elflint.c:3846 src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3009,7 +3009,7 @@ msgid "" msgstr "" "sekcja [%2zu] „%s” nie ma flagi SHF_ALLOC, ale są segmenty wczytywalne\n" -#: src/elflint.c:3853 +#: src/elflint.c:3854 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3017,22 +3017,22 @@ msgstr "" "sekcja [%2zu] „%s” jest tabelą indeksów sekcji rozszerzeń w pliku " "nieobiektowym\n" -#: src/elflint.c:3896 +#: src/elflint.c:3897 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "sekcja [%2zu] „%s”: rozmiar nie jest wielokrotnością rozmiaru wpisu\n" -#: src/elflint.c:3901 +#: src/elflint.c:3902 #, c-format msgid "cannot get section header\n" msgstr "nie można uzyskać nagłówka sekcji\n" -#: src/elflint.c:3911 +#: src/elflint.c:3912 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sekcja [%2zu] „%s” ma nieobsługiwany typ %d\n" -#: src/elflint.c:3931 +#: src/elflint.c:3932 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -3040,74 +3040,74 @@ msgstr "" "sekcja [%2zu] „%s” zawiera nieprawidłowe flagi dla konkretnego procesora " "%#\n" -#: src/elflint.c:3938 +#: src/elflint.c:3939 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "sekcja [%2zu] „%s” zawiera nieznane flagi %#\n" -#: src/elflint.c:3946 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "sekcja [%2zu] „%s”: adres sekcji danych lokalnych dla wątków nie jest zerem\n" -#: src/elflint.c:3956 +#: src/elflint.c:3957 #, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "sekcja [%2zu] „%s”: nie można skompresować przydzielonej sekcji\n" -#: src/elflint.c:3961 +#: src/elflint.c:3962 #, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "sekcja [%2zu] „%s”: nie można skompresować sekcji „nobits”\n" -#: src/elflint.c:3967 +#: src/elflint.c:3968 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "sekcja [%2zu] „%s”: skompresowana sekcja bez nagłówka kompresji: %s\n" -#: src/elflint.c:3973 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości dowiązania\n" -#: src/elflint.c:3978 +#: src/elflint.c:3979 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości " "informacyjnej\n" -#: src/elflint.c:3985 +#: src/elflint.c:3986 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "sekcja [%2zu] „%s”: flaga ciągów jest ustawiona bez flagi merge\n" -#: src/elflint.c:3990 +#: src/elflint.c:3991 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "sekcja [%2zu] „%s”: flaga merge jest ustawiona, ale rozmiar wpisu jest " "zerowy\n" -#: src/elflint.c:4009 +#: src/elflint.c:4010 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "sekcja [%2zu] „%s” ma nieoczekiwany typ %d dla sekcji wykonywalnej\n" -#: src/elflint.c:4018 +#: src/elflint.c:4019 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sekcja [%2zu] „%s” musi być typu NOBITS w plikach debuginfo\n" -#: src/elflint.c:4025 +#: src/elflint.c:4026 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "sekcja [%2zu] „%s” jest wykonywalne i zapisywalne\n" -#: src/elflint.c:4056 +#: src/elflint.c:4057 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3116,7 +3116,7 @@ msgstr "" "sekcja [%2zu] „%s” nie jest w całości zawarta w segmencie wpisu %d nagłówka " "programu\n" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3125,7 +3125,7 @@ msgstr "" "sekcja [%2zu] „%s” ma typ NOBITS, a jest odczytywana z pliku w segmencie " "wpisu %d nagłówka programu\n" -#: src/elflint.c:4092 +#: src/elflint.c:4093 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3134,7 +3134,7 @@ msgstr "" "sekcja [%2zu] „%s” ma typ NOBITS, ale jest odczytywana z pliku w segmencie " "wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n" -#: src/elflint.c:4103 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3143,17 +3143,17 @@ msgstr "" "sekcja [%2zu] „%s” nie ma typu NOBITS, a nie jest odczytywana z pliku " "w segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4114 +#: src/elflint.c:4115 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "sekcja [%2zu] „%s” jest wykonywalne w segmencie niewykonywalnym %d\n" -#: src/elflint.c:4124 +#: src/elflint.c:4125 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "sekcja [%2zu] „%s” jest zapisywalne w niezapisywalnym segmencie %d\n" -#: src/elflint.c:4134 +#: src/elflint.c:4135 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3161,7 +3161,7 @@ msgstr "" "sekcja [%2zu] „%s”: ma flagę alloc, ale sekcja nie jest w żadnym segmencie " "wczytywalnym\n" -#: src/elflint.c:4140 +#: src/elflint.c:4141 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3170,7 +3170,7 @@ msgstr "" "sekcja [%2zu] „%s”: według nagłówka ELF to jest tabela ciągów nagłówków " "sekcji, ale typ nie jest SHT_TYPE\n" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3178,17 +3178,17 @@ msgstr "" "sekcja [%2zu] „%s”: pliki relokowalne nie mogą mieć tabeli symboli " "dynamicznych\n" -#: src/elflint.c:4199 +#: src/elflint.c:4200 #, c-format msgid "more than one version symbol table present\n" msgstr "obecna jest więcej niż jedna tabela symboli wersji\n" -#: src/elflint.c:4222 +#: src/elflint.c:4223 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "jest wpis nagłówka programu INTERP, ale nie ma sekcji .interp\n" -#: src/elflint.c:4233 +#: src/elflint.c:4234 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3196,14 +3196,14 @@ msgstr "" "wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych " "sekcji\n" -#: src/elflint.c:4239 +#: src/elflint.c:4240 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych " "sekcji\n" -#: src/elflint.c:4250 +#: src/elflint.c:4251 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3212,23 +3212,23 @@ msgstr "" "brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu." "versym_r\n" -#: src/elflint.c:4263 +#: src/elflint.c:4264 #, c-format msgid "duplicate version index %d\n" msgstr "powtórzony indeks wersji %d\n" -#: src/elflint.c:4277 +#: src/elflint.c:4278 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n" -#: src/elflint.c:4326 +#: src/elflint.c:4327 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku core % pod offsetem %\n" -#: src/elflint.c:4330 +#: src/elflint.c:4331 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3236,7 +3236,7 @@ msgstr "" "sekcja [%2d]: „%s”: nieznany typ notatki pliku core % pod offsetem " "%zu\n" -#: src/elflint.c:4379 +#: src/elflint.c:4380 #, fuzzy, c-format msgid "" "phdr[%d]: unknown object file note type % with owner name '%s' at " @@ -3244,7 +3244,7 @@ msgid "" msgstr "" "phdr[%d]: nieznany typ notatki pliku obiektu % pod offsetem %zu\n" -#: src/elflint.c:4384 +#: src/elflint.c:4385 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown object file note type % with owner name " @@ -3253,37 +3253,37 @@ msgstr "" "sekcja [%2d] „%s”: nieznany typ notatki pliku obiektu % pod offsetem " "%zu\n" -#: src/elflint.c:4403 +#: src/elflint.c:4404 #, 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:4423 +#: src/elflint.c:4424 #, 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:4426 +#: src/elflint.c:4427 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4447 +#: src/elflint.c:4448 #, 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:4454 +#: src/elflint.c:4455 #, 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:4457 +#: src/elflint.c:4458 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "sekcja [%2d] „%s”: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4475 +#: src/elflint.c:4476 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3291,135 +3291,135 @@ msgstr "" "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą mieć " "nagłówki programu\n" -#: src/elflint.c:4490 +#: src/elflint.c:4491 #, 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:4500 +#: src/elflint.c:4501 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#\n" -#: src/elflint.c:4511 +#: src/elflint.c:4512 #, 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:4519 +#: src/elflint.c:4520 #, 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:4526 +#: src/elflint.c:4527 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n" -#: src/elflint.c:4540 +#: src/elflint.c:4541 #, 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:4543 +#: src/elflint.c:4544 #, 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:4553 +#: src/elflint.c:4554 #, 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:4574 +#: src/elflint.c:4575 #, 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:4585 +#: src/elflint.c:4586 #, 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:4592 +#: src/elflint.c:4593 #, 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:4601 src/elflint.c:4624 +#: src/elflint.c:4602 src/elflint.c:4625 #, 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:4630 +#: src/elflint.c:4631 #, 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:4657 +#: src/elflint.c:4658 #, 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:4660 +#: src/elflint.c:4661 #, 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:4673 +#: src/elflint.c:4674 #, 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:4681 +#: src/elflint.c:4682 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n" -#: src/elflint.c:4684 +#: src/elflint.c:4685 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sekcja [%2zu] „%s”: musi być przydzielona\n" -#: src/elflint.c:4688 +#: src/elflint.c:4689 #, 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:4691 +#: src/elflint.c:4692 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sekcja [%2zu] „%s” nie może być zapisywalna\n" -#: src/elflint.c:4696 +#: src/elflint.c:4697 #, 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:4699 +#: src/elflint.c:4700 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sekcja [%2zu] „%s” nie może być wykonywalna\n" -#: src/elflint.c:4710 +#: src/elflint.c:4711 #, 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:4717 +#: src/elflint.c:4718 #, 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:4720 +#: src/elflint.c:4721 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3428,7 +3428,7 @@ msgstr "" "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są " "wielokrotnością wyrównania\n" -#: src/elflint.c:4733 +#: src/elflint.c:4734 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3437,17 +3437,17 @@ msgstr "" "plik wykonywalny/DSO z sekcją .eh_frame_hdr nie ma wpisu nagłówka programu " "PT_GNU_EH_FRAME" -#: src/elflint.c:4767 +#: src/elflint.c:4768 #, c-format msgid "cannot read ELF header: %s\n" msgstr "nie można odczytać nagłówka ELF: %s\n" -#: src/elflint.c:4779 +#: src/elflint.c:4780 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "nie można utworzyć nowego pliku" -#: src/elflint.c:4800 +#: src/elflint.c:4801 #, c-format msgid "text relocation flag set but not needed\n" msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n" @@ -3708,8 +3708,8 @@ msgstr "nie można utworzyć drzewa wyszukiwania" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420 -#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 +#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4034,11 +4034,11 @@ msgstr "nie można określić liczby sekcji: %s" msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604 -#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212 -#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483 -#: src/unstrip.c:1658 src/unstrip.c:1809 src/unstrip.c:1952 src/unstrip.c:2051 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 +#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 +#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 +#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" @@ -4048,8 +4048,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:670 src/readelf.c:6576 src/readelf.c:10502 src/readelf.c:10604 -#: src/readelf.c:10782 +#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 +#: src/readelf.c:10803 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartości %s: %s" @@ -4392,7 +4392,7 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1460 src/unstrip.c:2110 src/unstrip.c:2152 src/unstrip.c:2159 +#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" @@ -4441,8 +4441,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522 -#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 +#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 msgid "Couldn't uncompress section" msgstr "Nie można dekompresować sekcji" @@ -5009,9 +5009,9 @@ msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] offset: %, potomek: %s, znacznik: %s\n" #: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6586 src/readelf.c:8323 src/readelf.c:9009 src/readelf.c:9445 -#: src/readelf.c:9690 src/readelf.c:9856 src/readelf.c:10243 -#: src/readelf.c:10303 +#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 +#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 +#: src/readelf.c:10324 #, c-format msgid "" "\n" @@ -5025,41 +5025,41 @@ msgstr "" msgid "cannot get .debug_addr section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9054 +#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 #, fuzzy, c-format msgid " Length: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9067 +#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9076 +#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " Offset adresu: %6\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9086 +#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr "" " Rozmiar segmentu: %6\n" "\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9071 src/readelf.c:10435 +#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 #, fuzzy, c-format msgid "Unknown version" msgstr "nieznana wersja" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9081 +#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 #, c-format msgid "unsupported address size" msgstr "nieobsługiwany rozmiar adresu" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9091 +#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 #, c-format msgid "unsupported segment size" msgstr "nieobsługiwany rozmiar segmentu" @@ -5100,7 +5100,7 @@ msgstr "" " [%*zu] początek: %0#*, długość: %5, offset CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8350 +#: src/readelf.c:5446 src/readelf.c:8359 #, c-format msgid "" "\n" @@ -5109,8 +5109,8 @@ msgstr "" "\n" "Tabela pod offsetem %zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6610 src/readelf.c:8361 -#: src/readelf.c:9035 +#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 +#: src/readelf.c:9050 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "nieprawidłowe dane w sekcji [%zu] „%s”" @@ -5163,39 +5163,39 @@ msgstr " bajty wypełnienia: %zu\n" msgid "cannot get .debug_rnglists content: %s" msgstr "nie można uzyskać zawartości .debug_ranges: %s" -#: src/readelf.c:5632 src/readelf.c:9041 +#: src/readelf.c:5632 src/readelf.c:9056 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " Offset .debug_line: 0x%\n" -#: src/readelf.c:5687 src/readelf.c:9096 +#: src/readelf.c:5687 src/readelf.c:9111 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:5703 src/readelf.c:9112 +#: src/readelf.c:5703 src/readelf.c:9127 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9114 +#: src/readelf.c:5705 src/readelf.c:9129 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9120 +#: src/readelf.c:5711 src/readelf.c:9135 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9131 +#: src/readelf.c:5722 src/readelf.c:9146 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9135 +#: src/readelf.c:5726 src/readelf.c:9150 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " Offset: 0x%\n" @@ -5205,7 +5205,7 @@ msgstr " Offset: 0x%\n" msgid "invalid range list data" msgstr "nieprawidłowe dane" -#: src/readelf.c:5963 src/readelf.c:9423 +#: src/readelf.c:5963 src/readelf.c:9438 #, fuzzy, c-format msgid "" " %zu padding bytes\n" @@ -5217,47 +5217,45 @@ msgstr " bajty wypełnienia: %zu\n" msgid "cannot get .debug_ranges content: %s" msgstr "nie można uzyskać zawartości .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9478 +#: src/readelf.c:6016 src/readelf.c:9493 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9480 +#: src/readelf.c:6018 src/readelf.c:9495 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9506 src/readelf.c:9532 +#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:6048 src/readelf.c:9612 -#, fuzzy, c-format -msgid "" -" [%6tx] base address\n" -" " -msgstr " [%6tx] adres podstawowy %s\n" +#: src/readelf.c:6052 src/readelf.c:9631 +#, fuzzy +msgid "base address" +msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:6056 src/readelf.c:9620 +#: src/readelf.c:6062 src/readelf.c:9641 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" -#: src/readelf.c:6311 +#: src/readelf.c:6317 msgid " \n" msgstr " \n" -#: src/readelf.c:6564 +#: src/readelf.c:6573 #, c-format msgid "cannot get ELF: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:6582 +#: src/readelf.c:6591 #, c-format msgid "" "\n" @@ -5266,7 +5264,7 @@ msgstr "" "\n" "Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#:\n" -#: src/readelf.c:6632 +#: src/readelf.c:6641 #, c-format msgid "" "\n" @@ -5275,65 +5273,65 @@ msgstr "" "\n" " [%6tx] Zerowy koniec\n" -#: src/readelf.c:6733 src/readelf.c:6887 +#: src/readelf.c:6742 src/readelf.c:6896 #, c-format msgid "invalid augmentation length" msgstr "nieprawidłowa długość powiększenia" -#: src/readelf.c:6748 +#: src/readelf.c:6757 msgid "FDE address encoding: " msgstr "Kodowanie adresu FDE: " -#: src/readelf.c:6754 +#: src/readelf.c:6763 msgid "LSDA pointer encoding: " msgstr "Kodowanie wskaźnika LSDA: " -#: src/readelf.c:6864 +#: src/readelf.c:6873 #, c-format msgid " (offset: %#)" msgstr " (offset: %#)" -#: src/readelf.c:6871 +#: src/readelf.c:6880 #, c-format msgid " (end offset: %#)" msgstr " (kończący offset: %#)" -#: src/readelf.c:6908 +#: src/readelf.c:6917 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sWskaźnik LSDA: %#\n" -#: src/readelf.c:6993 +#: src/readelf.c:7002 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "nie można uzyskać kodu atrybutu: %s" -#: src/readelf.c:7003 +#: src/readelf.c:7012 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "nie można uzyskać formy atrybutu: %s" -#: src/readelf.c:7025 +#: src/readelf.c:7034 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "nie można uzyskać wartości atrybutu: %s" -#: src/readelf.c:7355 +#: src/readelf.c:7364 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "nieprawidłowy plik" -#: src/readelf.c:7359 +#: src/readelf.c:7368 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " ustawienie pliku na %\n" -#: src/readelf.c:7363 +#: src/readelf.c:7372 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:7676 +#: src/readelf.c:7685 #, c-format msgid "" "\n" @@ -5344,12 +5342,12 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [Offset]\n" -#: src/readelf.c:7726 +#: src/readelf.c:7735 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "nie można uzyskać następnego DIE: %s" -#: src/readelf.c:7745 +#: src/readelf.c:7754 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5362,7 +5360,7 @@ msgstr "" "%, rozmiar offsetu: %\n" " Podpis typu: %#, offset typu: %#\n" -#: src/readelf.c:7757 +#: src/readelf.c:7766 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5373,38 +5371,38 @@ msgstr "" " Wersja: %, offset sekcji skrótów: %, rozmiar adresu: " "%, rozmiar offsetu: %\n" -#: src/readelf.c:7767 src/readelf.c:7930 +#: src/readelf.c:7776 src/readelf.c:7939 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7794 +#: src/readelf.c:7803 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7823 +#: src/readelf.c:7832 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można uzyskać offsetu DIE: %s" -#: src/readelf.c:7832 +#: src/readelf.c:7841 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "nie można uzyskać znacznika DIE pod offsetem % w sekcji „%s”: %s" -#: src/readelf.c:7870 +#: src/readelf.c:7879 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można uzyskać następnego DIE: %s\n" -#: src/readelf.c:7878 +#: src/readelf.c:7887 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można uzyskać następnego DIE: %s" -#: src/readelf.c:7922 +#: src/readelf.c:7931 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5415,7 +5413,7 @@ msgstr "" " Wersja: %, offset sekcji skrótów: %, rozmiar adresu: " "%, rozmiar offsetu: %\n" -#: src/readelf.c:7974 +#: src/readelf.c:7983 #, c-format msgid "" "\n" @@ -5426,18 +5424,18 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" "\n" -#: src/readelf.c:8306 +#: src/readelf.c:8315 #, fuzzy, c-format msgid "unknown form: %s" msgstr "nieznany błąd" -#: src/readelf.c:8337 +#: src/readelf.c:8346 #, 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:8439 +#: src/readelf.c:8448 #, fuzzy, c-format msgid "" "\n" @@ -5468,27 +5466,27 @@ msgstr "" "\n" "Instrukcje:\n" -#: src/readelf.c:8461 +#: src/readelf.c:8470 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/readelf.c:8469 +#: src/readelf.c:8478 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "nieobsługiwany rozmiar adresu" -#: src/readelf.c:8477 +#: src/readelf.c:8486 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:8487 +#: src/readelf.c:8496 #, 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:8502 +#: src/readelf.c:8511 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5496,7 +5494,7 @@ msgstr[0] " [%*] %hhu parametr\n" msgstr[1] " [%*] %hhu parametry\n" msgstr[2] " [%*] %hhu parametrów\n" -#: src/readelf.c:8513 +#: src/readelf.c:8522 msgid "" "\n" "Directory table:" @@ -5504,12 +5502,12 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:8519 src/readelf.c:8596 +#: src/readelf.c:8528 src/readelf.c:8605 #, fuzzy, c-format msgid " [" msgstr " PC: " -#: src/readelf.c:8590 +#: src/readelf.c:8599 #, fuzzy msgid "" "\n" @@ -5518,7 +5516,7 @@ msgstr "" "\n" " Tabela strony wywołania:" -#: src/readelf.c:8651 +#: src/readelf.c:8660 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5526,7 +5524,16 @@ msgstr "" "Tabela nazw plików:\n" " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:8688 +#: src/readelf.c:8699 +#, fuzzy +msgid "" +"\n" +"No line number statements." +msgstr "" +"\n" +"Instrukcje numerów wierszy:" + +#: src/readelf.c:8703 msgid "" "\n" "Line number statements:" @@ -5534,119 +5541,119 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:8711 +#: src/readelf.c:8726 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero" -#: src/readelf.c:8745 +#: src/readelf.c:8760 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n" -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, 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:8752 +#: src/readelf.c:8767 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8770 +#: src/readelf.c:8785 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:8775 +#: src/readelf.c:8790 msgid " end of sequence" msgstr " koniec sekwencji" -#: src/readelf.c:8793 +#: src/readelf.c:8808 #, fuzzy, c-format msgid " set address to " msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:8821 +#: src/readelf.c:8836 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " definicja nowego pliku: dir=%u, mtime=%, długość=%, nazwa=" "%s\n" -#: src/readelf.c:8835 +#: src/readelf.c:8850 #, c-format msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" #. Unknown, ignore it. -#: src/readelf.c:8840 +#: src/readelf.c:8855 msgid " unknown opcode" msgstr " nieznana instrukcja" #. Takes no argument. -#: src/readelf.c:8852 +#: src/readelf.c:8867 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:8863 +#: src/readelf.c:8878 #, fuzzy, c-format msgid " advance address by %u to " msgstr " zwiększenie adresu o %u do %s\n" -#: src/readelf.c:8867 src/readelf.c:8928 +#: src/readelf.c:8882 src/readelf.c:8943 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8879 +#: src/readelf.c:8894 #, c-format msgid " advance line by constant %d to %\n" msgstr " zwiększenie wiersza o stałą %d do %\n" -#: src/readelf.c:8889 +#: src/readelf.c:8904 #, c-format msgid " set file to %\n" msgstr " ustawienie pliku na %\n" -#: src/readelf.c:8900 +#: src/readelf.c:8915 #, c-format msgid " set column to %\n" msgstr " ustawienie kolumny na %\n" -#: src/readelf.c:8907 +#: src/readelf.c:8922 #, c-format msgid " set '%s' to %\n" msgstr " ustawienie „%s” na %\n" #. Takes no argument. -#: src/readelf.c:8913 +#: src/readelf.c:8928 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:8924 +#: src/readelf.c:8939 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr " zwiększenie adresu o stałą %u do %s\n" -#: src/readelf.c:8944 +#: src/readelf.c:8959 #, 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:8954 +#: src/readelf.c:8969 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" #. Takes no argument. -#: src/readelf.c:8959 +#: src/readelf.c:8974 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" -#: src/readelf.c:8969 +#: src/readelf.c:8984 #, c-format msgid " set isa to %u\n" msgstr " ustawienie isa na %u\n" @@ -5654,7 +5661,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:8978 +#: src/readelf.c:8993 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5662,96 +5669,96 @@ msgstr[0] " nieznana instrukcja z % parametrem:" msgstr[1] " nieznana instrukcja z % parametrami:" msgstr[2] " nieznana instrukcja z % parametrami:" -#: src/readelf.c:9018 +#: src/readelf.c:9033 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" -#: src/readelf.c:9187 +#: src/readelf.c:9202 #, fuzzy, c-format msgid "invalid loclists data" msgstr "nieprawidłowe dane" -#: src/readelf.c:9440 +#: src/readelf.c:9455 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" -#: src/readelf.c:9647 src/readelf.c:10691 +#: src/readelf.c:9668 src/readelf.c:10712 msgid " \n" msgstr " \n" -#: src/readelf.c:9702 src/readelf.c:9865 +#: src/readelf.c:9723 src/readelf.c:9886 #, c-format msgid "cannot get macro information section data: %s" msgstr "nie można uzyskać danych sekcji informacji o makrach: %s" -#: src/readelf.c:9782 +#: src/readelf.c:9803 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakończony ciąg na końcu sekcji" -#: src/readelf.c:9805 +#: src/readelf.c:9826 #, 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:9906 +#: src/readelf.c:9927 #, c-format msgid " Offset: 0x%\n" msgstr " Offset: 0x%\n" -#: src/readelf.c:9918 +#: src/readelf.c:9939 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:9924 src/readelf.c:10811 +#: src/readelf.c:9945 src/readelf.c:10832 #, c-format msgid " unknown version, cannot parse section\n" msgstr " nieznana wersja, nie można przetworzyć sekcji\n" -#: src/readelf.c:9931 +#: src/readelf.c:9952 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " Flaga: 0x%\n" -#: src/readelf.c:9960 +#: src/readelf.c:9981 #, c-format msgid " Offset length: %\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:9968 +#: src/readelf.c:9989 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " Offset .debug_line: 0x%\n" -#: src/readelf.c:9993 +#: src/readelf.c:10014 #, c-format msgid " extension opcode table, % items:\n" msgstr " tabela instrukcji rozszerzenia, % elementów:\n" -#: src/readelf.c:10000 +#: src/readelf.c:10021 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:10012 +#: src/readelf.c:10033 #, c-format msgid " % arguments:" msgstr " Parametry %:" -#: src/readelf.c:10027 +#: src/readelf.c:10048 #, c-format msgid " no arguments." msgstr " brak parametrów." -#: src/readelf.c:10228 +#: src/readelf.c:10249 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr " [%5d] offset DIE: %6, offset CU DIE: %6, nazwa: %s\n" -#: src/readelf.c:10272 +#: src/readelf.c:10293 #, c-format msgid "" "\n" @@ -5762,41 +5769,41 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " %*s Ciąg\n" -#: src/readelf.c:10287 +#: src/readelf.c:10308 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** błąd podczas odczytywania ciągów: %s\n" -#: src/readelf.c:10316 +#: src/readelf.c:10337 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:10415 +#: src/readelf.c:10436 #, fuzzy, c-format msgid " Length: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:10417 +#: src/readelf.c:10438 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:10431 +#: src/readelf.c:10452 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:10440 +#: src/readelf.c:10461 #, fuzzy, c-format msgid " Padding: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:10494 +#: src/readelf.c:10515 #, c-format msgid "" "\n" @@ -5805,7 +5812,7 @@ msgstr "" "\n" "Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n" -#: src/readelf.c:10596 +#: src/readelf.c:10617 #, c-format msgid "" "\n" @@ -5814,22 +5821,22 @@ msgstr "" "\n" "Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n" -#: src/readelf.c:10619 +#: src/readelf.c:10640 #, c-format msgid " LPStart encoding: %#x " msgstr " Kodowanie LPStart: %#x " -#: src/readelf.c:10631 +#: src/readelf.c:10652 #, c-format msgid " TType encoding: %#x " msgstr " Kodowanie TType: %#x " -#: src/readelf.c:10646 +#: src/readelf.c:10667 #, c-format msgid " Call site encoding: %#x " msgstr " Kodowanie strony wywołania: %#x " -#: src/readelf.c:10659 +#: src/readelf.c:10680 msgid "" "\n" " Call site table:" @@ -5837,7 +5844,7 @@ msgstr "" "\n" " Tabela strony wywołania:" -#: src/readelf.c:10673 +#: src/readelf.c:10694 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5850,12 +5857,12 @@ msgstr "" " Lądowisko: %#\n" " Działanie: %u\n" -#: src/readelf.c:10746 +#: src/readelf.c:10767 #, c-format msgid "invalid TType encoding" msgstr "nieprawidłowe kodowanie TType" -#: src/readelf.c:10773 +#: src/readelf.c:10794 #, c-format msgid "" "\n" @@ -5864,37 +5871,37 @@ msgstr "" "\n" "Sekcja GDB [%2zu] „%s” pod offsetem %# zawiera % bajtów:\n" -#: src/readelf.c:10802 +#: src/readelf.c:10823 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:10820 +#: src/readelf.c:10841 #, c-format msgid " CU offset: %#\n" msgstr " offset CU: %#\n" -#: src/readelf.c:10827 +#: src/readelf.c:10848 #, c-format msgid " TU offset: %#\n" msgstr " offset TU: %#\n" -#: src/readelf.c:10834 +#: src/readelf.c:10855 #, c-format msgid " address offset: %#\n" msgstr " offset adresu: %#\n" -#: src/readelf.c:10841 +#: src/readelf.c:10862 #, c-format msgid " symbol offset: %#\n" msgstr " offset symbolu: %#\n" -#: src/readelf.c:10848 +#: src/readelf.c:10869 #, c-format msgid " constant offset: %#\n" msgstr " offset stałej: %#\n" -#: src/readelf.c:10862 +#: src/readelf.c:10883 #, c-format msgid "" "\n" @@ -5903,7 +5910,7 @@ msgstr "" "\n" " Lista CU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10887 +#: src/readelf.c:10908 #, c-format msgid "" "\n" @@ -5912,7 +5919,7 @@ msgstr "" "\n" " Lista TU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10916 +#: src/readelf.c:10937 #, c-format msgid "" "\n" @@ -5921,7 +5928,7 @@ msgstr "" "\n" " Lista adresów pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10948 +#: src/readelf.c:10969 #, c-format msgid "" "\n" @@ -5930,18 +5937,18 @@ msgstr "" "\n" " Tabela symboli pod offsetem %# zawiera %zu gniazd:\n" -#: src/readelf.c:11086 +#: src/readelf.c:11107 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187 -#: src/readelf.c:12245 +#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 +#: src/readelf.c:12266 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można konwertować danych notatki core: %s" -#: src/readelf.c:11817 +#: src/readelf.c:11838 #, c-format msgid "" "\n" @@ -5950,21 +5957,21 @@ msgstr "" "\n" "%*s… …" -#: src/readelf.c:12324 +#: src/readelf.c:12345 msgid " Owner Data size Type\n" msgstr " Właściciel Rozmiar danych Typ\n" -#: src/readelf.c:12353 +#: src/readelf.c:12374 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12405 +#: src/readelf.c:12426 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "nie można uzyskać zawartości sekcji notatki: %s" -#: src/readelf.c:12439 +#: src/readelf.c:12460 #, c-format msgid "" "\n" @@ -5974,7 +5981,7 @@ msgstr "" "Segment notatki [%2zu] „%s” o długości % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:12462 +#: src/readelf.c:12483 #, c-format msgid "" "\n" @@ -5983,7 +5990,7 @@ msgstr "" "\n" "Segment notatki o długości % bajtów pod offsetem %#0:\n" -#: src/readelf.c:12509 +#: src/readelf.c:12530 #, c-format msgid "" "\n" @@ -5992,12 +5999,12 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie ma danych do zrzucenia.\n" -#: src/readelf.c:12536 src/readelf.c:12587 +#: src/readelf.c:12557 src/readelf.c:12608 #, 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:12541 +#: src/readelf.c:12562 #, c-format msgid "" "\n" @@ -6007,7 +6014,7 @@ msgstr "" "Segment zrzutu szesnastkowego [%zu] „%s”, % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:12546 +#: src/readelf.c:12567 #, c-format msgid "" "\n" @@ -6018,7 +6025,7 @@ msgstr "" "Zrzut szesnastkowy sekcji [%zu] „%s”, % bajtów (%zd " "nieskompresowanych) pod offsetem %#0:\n" -#: src/readelf.c:12560 +#: src/readelf.c:12581 #, c-format msgid "" "\n" @@ -6027,7 +6034,7 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie ma ciągów do zrzucenia.\n" -#: src/readelf.c:12592 +#: src/readelf.c:12613 #, c-format msgid "" "\n" @@ -6036,7 +6043,7 @@ msgstr "" "\n" "Sekcja ciągów [%zu] „%s” zawiera % bajtów pod offsetem %#0:\n" -#: src/readelf.c:12597 +#: src/readelf.c:12618 #, c-format msgid "" "\n" @@ -6047,7 +6054,7 @@ msgstr "" "Sekcja ciągów [%zu] „%s” zawiera % bajtów (%zd nieskompresowanych) " "pod offsetem %#0:\n" -#: src/readelf.c:12646 +#: src/readelf.c:12667 #, c-format msgid "" "\n" @@ -6056,7 +6063,7 @@ msgstr "" "\n" "sekcja [%lu] nie istnieje" -#: src/readelf.c:12676 +#: src/readelf.c:12697 #, c-format msgid "" "\n" @@ -6065,12 +6072,12 @@ msgstr "" "\n" "sekcja „%s” nie istnieje" -#: src/readelf.c:12733 +#: src/readelf.c:12754 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s" -#: src/readelf.c:12736 +#: src/readelf.c:12757 #, c-format msgid "" "\n" @@ -6079,7 +6086,7 @@ msgstr "" "\n" "Archiwum „%s” nie ma indeksu symboli\n" -#: src/readelf.c:12740 +#: src/readelf.c:12761 #, c-format msgid "" "\n" @@ -6088,12 +6095,12 @@ msgstr "" "\n" "Indeks archiwum „%s” ma %zu wpisów:\n" -#: src/readelf.c:12758 +#: src/readelf.c:12779 #, 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:12763 +#: src/readelf.c:12784 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Element archiwum „%s” zawiera:\n" @@ -6171,61 +6178,61 @@ msgstr "nie można uzyskać nagłówka sekcji\n" msgid "(TOTALS)\n" msgstr "(CAŁKOWITE)\n" -#: src/stack.c:482 +#: src/stack.c:487 #, c-format msgid "-p PID should be a positive process id." msgstr "-p PID powinien być dodatnim identyfikatorem procesu." -#: src/stack.c:488 +#: src/stack.c:493 #, c-format msgid "Cannot open core file '%s'" msgstr "Nie można otworzyć pliku core „%s”" -#: src/stack.c:548 +#: src/stack.c:553 #, c-format msgid "-n MAXFRAMES should be 0 or higher." msgstr "-n MAKSYMALNA_LICZBA_RAMEK powinna wynosić 0 lub więcej." -#: src/stack.c:560 +#: src/stack.c:565 #, c-format msgid "-e EXEC needs a core given by --core." msgstr "-e PLIK_WYKONYWALNY wymaga pliku core podanego za pomocą opcji --core." -#: src/stack.c:564 +#: src/stack.c:569 #, c-format msgid "-1 needs a thread id given by -p." msgstr "-1 wymaga identyfikatora wątku podanego za pomocą opcji -p." -#: src/stack.c:568 +#: src/stack.c:573 #, c-format msgid "One of -p PID or --core COREFILE should be given." msgstr "Tylko jedna z opcji -p PID lub --core PLIK_CORE powinna zostać podana." -#: src/stack.c:640 +#: src/stack.c:645 msgid "Show stack of process PID" msgstr "Wyświetla stos numeru PID procesu" -#: src/stack.c:642 +#: src/stack.c:647 msgid "Show stack found in COREFILE" msgstr "Wyświetla stos odnaleziony w PLIKU_CORE" -#: src/stack.c:643 +#: src/stack.c:648 msgid "(optional) EXECUTABLE that produced COREFILE" msgstr "(opcjonalnie) PLIK_WYKONYWALNY, który utworzył PLIK_CORE" -#: src/stack.c:647 +#: src/stack.c:652 msgid "Output selection options:" msgstr "Opcje wyboru wyjścia:" -#: src/stack.c:649 +#: src/stack.c:654 msgid "Additionally show frame activation" msgstr "Dodatkowo wyświetla aktywację ramki" -#: src/stack.c:651 +#: src/stack.c:656 msgid "Additionally try to lookup DWARF debuginfo name for frame address" msgstr "Dodatkowo próbuje wyszukać nazwy debuginfo DWARF dla adresu ramki" -#: src/stack.c:654 +#: src/stack.c:659 msgid "" "Additionally show inlined function frames using DWARF debuginfo if available " "(implies -d)" @@ -6233,15 +6240,15 @@ msgstr "" "Dodatkowo wyświetla wstawione ramki używając debuginfo DWARF, jeśli jest " "dostępne (zakłada opcję -d)" -#: src/stack.c:656 +#: src/stack.c:661 msgid "Additionally show module file information" msgstr "Dodatkowo wyświetla informacje o pliku modułu" -#: src/stack.c:658 +#: src/stack.c:663 msgid "Additionally show source file information" msgstr "Dodatkowo wyświetla informacje o pliku źródłowym" -#: src/stack.c:660 +#: src/stack.c:665 msgid "" "Show all additional information (activation, debugname, inlines, module and " "source)" @@ -6249,36 +6256,36 @@ msgstr "" "Wyświetla wszystkie dodatkowe informacje (aktywację, nazwę debugowania, " "wstawki, moduł i źródło)" -#: src/stack.c:662 +#: src/stack.c:667 msgid "Do not resolve address to function symbol name" msgstr "Nie rozwiązuje nazw symboli adresów do funkcji" -#: src/stack.c:664 +#: src/stack.c:669 msgid "Show raw function symbol names, do not try to demangle names" msgstr "" "Wyświetla surowe nazwy symboli funkcji, nie próbuje usuwać dekoracji z nazw" -#: src/stack.c:666 +#: src/stack.c:671 msgid "Show module build-id, load address and pc offset" msgstr "Wyświetla identyfikator kopii modułu, wczytuje adres i offset pc" -#: src/stack.c:668 +#: src/stack.c:673 msgid "Show the backtrace of only one thread" msgstr "Wyświetla wyjątek, jeśli jest tylko jeden wątek" -#: src/stack.c:670 +#: src/stack.c:675 msgid "Show at most MAXFRAMES per thread (default 256, use 0 for unlimited)" msgstr "" "Wyświetla najwyżej MAKSYMALNĄ_LICZBĘ_KLATEK na wątek (domyślnie 256, 0 " "oznacza brak ograniczenia)" -#: src/stack.c:672 +#: src/stack.c:677 msgid "Show module memory map with build-id, elf and debug files detected" msgstr "" "Wyświetla mapę pamięci modułu z identyfikatorem kopii, wykryte pliki elf " "i debug" -#: src/stack.c:680 +#: src/stack.c:685 #, fuzzy msgid "" "Print a stack for each thread in a process or core file.\n" @@ -6300,7 +6307,7 @@ msgstr "" "z kodem zwrotnym 2. Jeśli program został wywołany za pomocą błędnych lub " "brakujących parametrów, to zakończy on działanie z kodem zwrotnym 64." -#: src/stack.c:755 +#: src/stack.c:760 #, c-format msgid "Couldn't show any frames." msgstr "Nie można wyświetlić żadnych ramek." @@ -6708,7 +6715,7 @@ msgstr "nie można utworzyć nagłówka ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "nie można uzyskać sekcji: %s" -#: src/unstrip.c:248 src/unstrip.c:2081 +#: src/unstrip.c:248 src/unstrip.c:2083 #, c-format msgid "cannot get ELF header: %s" msgstr "nie można uzyskać nagłówka ELF: %s" @@ -6728,12 +6735,12 @@ msgstr "nie można zaktualizować relokacji: %s" msgid "cannot copy ELF header: %s" msgstr "nie można skopiować nagłówka ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2099 src/unstrip.c:2142 +#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 #, c-format msgid "cannot get number of program headers: %s" msgstr "nie można uzyskać liczby nagłówków programu: %s" -#: src/unstrip.c:274 src/unstrip.c:2103 +#: src/unstrip.c:274 src/unstrip.c:2105 #, c-format msgid "cannot create program headers: %s" msgstr "nie można utworzyć nagłówków programu: %s" @@ -6748,12 +6755,12 @@ msgstr "nie można skopiować nagłówka programu: %s" msgid "cannot copy section header: %s" msgstr "nie można skopiować nagłówka sekcji: %s" -#: src/unstrip.c:293 src/unstrip.c:1703 +#: src/unstrip.c:293 src/unstrip.c:1705 #, c-format msgid "cannot get section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:295 src/unstrip.c:1705 +#: src/unstrip.c:295 src/unstrip.c:1707 #, c-format msgid "cannot copy section data: %s" msgstr "nie można skopiować danych sekcji: %s" @@ -6763,14 +6770,14 @@ msgstr "nie można skopiować danych sekcji: %s" msgid "cannot create directory '%s'" msgstr "nie można utworzyć katalogu „%s”" -#: src/unstrip.c:391 src/unstrip.c:651 src/unstrip.c:685 src/unstrip.c:853 -#: src/unstrip.c:1745 +#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 +#: src/unstrip.c:1747 #, c-format msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:407 src/unstrip.c:654 src/unstrip.c:675 src/unstrip.c:688 -#: src/unstrip.c:1766 src/unstrip.c:1961 src/unstrip.c:1985 +#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 +#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" @@ -6785,161 +6792,161 @@ msgstr "nie można zaktualizować nagłówka sekcji: %s" msgid "cannot update relocation: %s" msgstr "nie można zaktualizować relokacji: %s" -#: src/unstrip.c:574 +#: src/unstrip.c:576 #, c-format msgid "cannot get symbol version: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:587 +#: src/unstrip.c:589 #, 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:842 +#: src/unstrip.c:844 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:844 +#: src/unstrip.c:846 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:861 +#: src/unstrip.c:863 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "nieprawidłowy offset ciągu w symbolu [%zu]" -#: src/unstrip.c:1019 src/unstrip.c:1423 +#: src/unstrip.c:1021 src/unstrip.c:1425 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "nie można odczytać nazwy sekcji [%zu]: %s" -#: src/unstrip.c:1034 +#: src/unstrip.c:1036 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "nieprawidłowa wartość sh_link w sekcji %zu" -#: src/unstrip.c:1040 +#: src/unstrip.c:1042 #, 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:1045 +#: src/unstrip.c:1047 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "nie można uzyskać danych dla sekcji symboli\n" -#: src/unstrip.c:1051 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:1056 +#: src/unstrip.c:1058 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "błędny nagłówek kompresji dla sekcji %zd: %s" -#: src/unstrip.c:1098 src/unstrip.c:1117 src/unstrip.c:1155 +#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "nie można odczytać sekcji „.gnu.prelink_undo”: %s" -#: src/unstrip.c:1135 +#: src/unstrip.c:1137 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "przepełnienie z shnum = %zu w sekcji „%s”" -#: src/unstrip.c:1146 +#: src/unstrip.c:1148 #, c-format msgid "invalid contents in '%s' section" msgstr "nieprawidłowa zawartość w sekcji „%s”" -#: src/unstrip.c:1202 src/unstrip.c:1549 +#: src/unstrip.c:1204 src/unstrip.c:1551 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”" -#: src/unstrip.c:1327 src/unstrip.c:1343 src/unstrip.c:1629 src/unstrip.c:1920 +#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 #, 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:1352 +#: src/unstrip.c:1354 #, 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:1381 src/unstrip.c:1385 +#: src/unstrip.c:1383 src/unstrip.c:1387 #, 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:1389 src/unstrip.c:1393 src/unstrip.c:1644 +#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 #, c-format msgid "cannot get section count: %s" msgstr "nie można uzyskać licznika sekcji: %s" -#: src/unstrip.c:1396 +#: src/unstrip.c:1398 #, 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:1400 +#: src/unstrip.c:1402 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1471 src/unstrip.c:1564 +#: src/unstrip.c:1473 src/unstrip.c:1566 #, 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:1623 +#: src/unstrip.c:1625 #, c-format msgid "cannot add new section: %s" msgstr "nie można dodać nowej sekcji: %s" -#: src/unstrip.c:1753 +#: src/unstrip.c:1755 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji" -#: src/unstrip.c:1785 +#: src/unstrip.c:1787 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji" -#: src/unstrip.c:2060 +#: src/unstrip.c:2062 #, c-format msgid "cannot read section data: %s" msgstr "nie można odczytać danych sekcji: %s" -#: src/unstrip.c:2089 +#: src/unstrip.c:2091 #, c-format msgid "cannot update ELF header: %s" msgstr "nie można zaktualizować nagłówka ELF: %s" -#: src/unstrip.c:2113 +#: src/unstrip.c:2115 #, c-format msgid "cannot update program header: %s" msgstr "nie można zaktualizować nagłówka programu: %s" -#: src/unstrip.c:2118 src/unstrip.c:2200 +#: src/unstrip.c:2120 src/unstrip.c:2202 #, c-format msgid "cannot write output file: %s" msgstr "nie można zapisać pliku wyjściowego: %s" -#: src/unstrip.c:2169 +#: src/unstrip.c:2171 #, 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:2172 +#: src/unstrip.c:2174 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6947,77 +6954,77 @@ msgstr "" "Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego " "konsolidowania; proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:2191 src/unstrip.c:2242 src/unstrip.c:2254 src/unstrip.c:2340 +#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/unstrip.c:2233 +#: src/unstrip.c:2235 msgid "WARNING: " msgstr "OSTRZEŻENIE: " -#: src/unstrip.c:2235 +#: src/unstrip.c:2237 msgid ", use --force" msgstr ", należy użyć opcji --force" -#: src/unstrip.c:2258 +#: src/unstrip.c:2260 msgid "ELF header identification (e_ident) different" msgstr "Różna identyfikacja nagłówka ELF (e_ident)" -#: src/unstrip.c:2261 +#: src/unstrip.c:2263 msgid "ELF header type (e_type) different" msgstr "Różne typy nagłówka ELF (e_type)" -#: src/unstrip.c:2264 +#: src/unstrip.c:2266 msgid "ELF header machine type (e_machine) different" msgstr "Różne typy maszyny nagłówka ELF (e_machine)" -#: src/unstrip.c:2267 +#: src/unstrip.c:2269 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony" -#: src/unstrip.c:2297 +#: src/unstrip.c:2299 #, 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:2301 +#: src/unstrip.c:2303 #, 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:2316 +#: src/unstrip.c:2318 #, 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:2320 +#: src/unstrip.c:2322 #, 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:2333 +#: src/unstrip.c:2335 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "moduł „%s” pliku „%s” nie został okrojony" -#: src/unstrip.c:2364 +#: src/unstrip.c:2366 #, 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:2497 +#: src/unstrip.c:2498 #, c-format msgid "no matching modules found" msgstr "nie odnaleziono pasujących modułów" -#: src/unstrip.c:2506 +#: src/unstrip.c:2507 #, c-format msgid "matched more than one module" msgstr "pasuje więcej niż jeden moduł" -#: src/unstrip.c:2550 +#: src/unstrip.c:2551 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7025,7 +7032,7 @@ msgstr "" "OKROJONY-PLIK PLIK-DEBUGOWANIA\n" "[MODUŁ…]" -#: src/unstrip.c:2551 +#: src/unstrip.c:2552 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" @@ -7093,6 +7100,12 @@ msgstr "Dodatkowo wyświetla nazwy funkcji" msgid "Show instances of inlined functions" msgstr "Wyświetla wystąpienia wstawionych funkcji" +#, fuzzy +#~ msgid "" +#~ " [%6tx] base address\n" +#~ " " +#~ msgstr " [%6tx] adres podstawowy %s\n" + #, fuzzy #~ msgid "%s: error getting zero section: %s" #~ msgstr "%s: błąd podczas odczytywania pliku: %s" diff --git a/po/uk.po b/po/uk.po index a7125507..ce3f60f8 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-06-11 15:50+0200\n" +"POT-Creation-Date: 2020-09-08 12:51+0200\n" "PO-Revision-Date: 2020-03-28 14:59+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -59,17 +59,17 @@ msgstr "" "гарантій, зокрема гарантій працездатності або придатності для певної мети.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599 +#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 #, c-format msgid "memory exhausted" msgstr "пам’ять вичерпано" -#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51 +#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:54 #: libelf/elf_error.c:60 msgid "no error" msgstr "без помилок" -#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53 +#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:56 #: libelf/elf_error.c:91 msgid "out of memory" msgstr "нестача пам'яті" @@ -106,7 +106,7 @@ msgstr "помилка під час спроби виведення даних" msgid "no backend support available" msgstr "підтримки серверів не передбачено" -#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52 +#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:55 #: libelf/elf_error.c:63 msgid "unknown error" msgstr "невідома помилка" @@ -219,7 +219,7 @@ msgstr "некоректна версія DWARF" msgid "invalid directory index" msgstr "некоректний покажчик каталогу" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:72 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 msgid "address out of range" msgstr "некоректна адреса" @@ -247,7 +247,7 @@ msgstr "некоректний номер рядка" msgid "invalid address range index" msgstr "некоректний індекс діапазону адрес" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:73 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 msgid "no matching address range" msgstr "не виявлено відповідного діапазону адрес" @@ -291,7 +291,7 @@ msgstr "невідомий код мови" msgid ".debug_addr section missing" msgstr "пропущено розділ .debug_addr" -#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2540 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 msgid "Input selection options:" msgstr "Вибір параметрів виведення даних:" @@ -323,7 +323,7 @@ msgstr "Знайти адреси у запущеному ядрі" msgid "Kernel with all modules" msgstr "Ядро з усіма модулями" -#: libdwfl/argp-std.c:63 src/stack.c:645 +#: libdwfl/argp-std.c:63 src/stack.c:650 msgid "Search path for separate debuginfo files" msgstr "Шукати у вказаному каталозі окремі файли debuginfo" @@ -358,155 +358,155 @@ msgstr "Бракує пам'яті" msgid "No modules recognized in core file" msgstr "Не вдалося виявити модулі у файлі core" -#: libdwfl/libdwflP.h:54 +#: libdwfl/libdwflP.h:57 msgid "See errno" msgstr "Див. errno" -#: libdwfl/libdwflP.h:55 +#: libdwfl/libdwflP.h:58 msgid "See elf_errno" msgstr "Див. elf_errno" -#: libdwfl/libdwflP.h:56 +#: libdwfl/libdwflP.h:59 msgid "See dwarf_errno" msgstr "Див. dwarf_errno" -#: libdwfl/libdwflP.h:57 +#: libdwfl/libdwflP.h:60 msgid "See ebl_errno (XXX missing)" msgstr "Див. ebl_errno (не виявлено XXX)" -#: libdwfl/libdwflP.h:58 +#: libdwfl/libdwflP.h:61 msgid "gzip decompression failed" msgstr "Помилка під час спроби видобування з gzip" -#: libdwfl/libdwflP.h:59 +#: libdwfl/libdwflP.h:62 msgid "bzip2 decompression failed" msgstr "Помилка під час спроби видобування з bzip2" -#: libdwfl/libdwflP.h:60 +#: libdwfl/libdwflP.h:63 msgid "LZMA decompression failed" msgstr "Помилка під час спроби видобування з LZMA" -#: libdwfl/libdwflP.h:61 +#: libdwfl/libdwflP.h:64 msgid "no support library found for machine" msgstr "у системі не виявлено бібліотеки підтримки" -#: libdwfl/libdwflP.h:62 +#: libdwfl/libdwflP.h:65 msgid "Callbacks missing for ET_REL file" msgstr "Немає зворотних викликів для файла ET_REL" -#: libdwfl/libdwflP.h:63 +#: libdwfl/libdwflP.h:66 msgid "Unsupported relocation type" msgstr "Непідтримуваний тип пересування" -#: libdwfl/libdwflP.h:64 +#: libdwfl/libdwflP.h:67 msgid "r_offset is bogus" msgstr "r_offset є фіктивним" -#: libdwfl/libdwflP.h:65 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "перевищення можливого зміщення" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:69 msgid "relocation refers to undefined symbol" msgstr "пересування посилається на невизначений символ." -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:70 msgid "Callback returned failure" msgstr "Зворотним викликом повернуто помилку" -#: libdwfl/libdwflP.h:68 +#: libdwfl/libdwflP.h:71 msgid "No DWARF information found" msgstr "Не виявлено відомостей DWARF" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:72 msgid "No symbol table found" msgstr "Не виявлено таблиці символів" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:73 msgid "No ELF program headers" msgstr "Немає заголовків програми ELF" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:74 msgid "address range overlaps an existing module" msgstr "діапазон адрес перекриває існуючий модуль" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:77 msgid "image truncated" msgstr "образ обрізано" -#: libdwfl/libdwflP.h:75 +#: libdwfl/libdwflP.h:78 msgid "ELF file opened" msgstr "Відкритий файл ELF" -#: libdwfl/libdwflP.h:76 +#: libdwfl/libdwflP.h:79 msgid "not a valid ELF file" msgstr "не є коректним файлом ELF" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:80 msgid "cannot handle DWARF type description" msgstr "не вдалося обробити опис типу DWARF" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:81 msgid "ELF file does not match build ID" msgstr "Файл ELF не відповідає ідентифікатору збирання" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:82 msgid "corrupt .gnu.prelink_undo section data" msgstr "дані розділу «.gnu.prelink_undo» пошкоджено" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:83 msgid "Internal error due to ebl" msgstr "Внутрішня помилка через ebl" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:84 msgid "Missing data in core file" msgstr "У файлі ядра не вистачає даних" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:85 msgid "Invalid register" msgstr "Некоректний регістр" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:86 msgid "Error reading process memory" msgstr "Помилка під час спроби читання пам’яті процесу" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:87 msgid "Couldn't find architecture of any ELF" msgstr "Не вдалося знайти хоч якусь архітектуру ELF" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:88 msgid "Error parsing /proc filesystem" msgstr "Помилка під час спроби обробки файлової системи /proc" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:89 msgid "Invalid DWARF" msgstr "Некоректний запис DWARF" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:90 msgid "Unsupported DWARF" msgstr "Непідтримуваний запис DWARF" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:91 msgid "Unable to find more threads" msgstr "Не вдалося знайти додаткові потоки" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:92 msgid "Dwfl already has attached state" msgstr "Dwfl уже перебуває у стані долучення до процесу" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:93 msgid "Dwfl has no attached state" msgstr "Dwfl не перебуває у стані долучення до процесу" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:94 msgid "Unwinding not supported for this architecture" msgstr "Для цієї архітектури розгортання не передбачено" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:95 msgid "Invalid argument" msgstr "Некоректний аргумент" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:96 msgid "Not an ET_CORE ELF file" msgstr "Не є файлом ET_CORE ELF" @@ -577,7 +577,7 @@ msgstr " Ід. збирання: " msgid " Linker version: %.*s\n" msgstr " Версія компонувальника: %.*s\n" -#: libebl/eblobjnote.c:571 +#: libebl/eblobjnote.c:638 #, c-format msgid " OS: %s, ABI: " msgstr " ОС: %s, ABI: " @@ -611,7 +611,7 @@ msgstr "некоректна розмірність вхідного парам msgid "invalid size of destination operand" msgstr "некоректна розмірність вихідного параметра" -#: libelf/elf_error.c:87 src/readelf.c:6166 +#: libelf/elf_error.c:87 src/readelf.c:6172 #, c-format msgid "invalid encoding" msgstr "некоректне кодування" @@ -696,8 +696,8 @@ msgstr "невідповідність полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:191 src/readelf.c:9914 src/readelf.c:10514 -#: src/readelf.c:10615 src/readelf.c:10797 +#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 +#: src/readelf.c:10636 src/readelf.c:10818 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -1028,12 +1028,12 @@ msgstr "не вдалося отримати дані архіву «%s» за msgid "no entry %s in archive\n" msgstr "у архіві немає запису %s\n" -#: src/ar.c:472 src/ar.c:923 src/ar.c:1127 +#: src/ar.c:472 src/ar.c:927 src/ar.c:1134 #, c-format msgid "cannot create hash table" msgstr "не вдалося створити таблицю хешів" -#: src/ar.c:479 src/ar.c:930 src/ar.c:1136 +#: src/ar.c:479 src/ar.c:934 src/ar.c:1143 #, c-format msgid "cannot insert into hash table" msgstr "не вдалося вставити запис до таблиці хешів" @@ -1073,67 +1073,67 @@ msgstr "не вдалося змінити часову мітку зміни %s msgid "cannot rename temporary file to %.*s" msgstr "не вдалося перейменувати файл тимчасових даних на %.*s" -#: src/ar.c:764 src/ar.c:1015 src/ar.c:1416 src/ranlib.c:222 +#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222 #, c-format msgid "cannot create new file" msgstr "не вдалося створити файл" -#: src/ar.c:1218 +#: src/ar.c:1225 #, c-format msgid "position member %s not found" msgstr "не виявлено елемента позиції %s" -#: src/ar.c:1228 +#: src/ar.c:1235 #, c-format msgid "%s: no entry %s in archive!\n" msgstr "%s: у архіві немає запису %s!\n" -#: src/ar.c:1257 src/objdump.c:241 +#: src/ar.c:1264 src/objdump.c:241 #, c-format msgid "cannot open %s" msgstr "не вдалося відкрити %s" -#: src/ar.c:1262 +#: src/ar.c:1269 #, c-format msgid "cannot stat %s" msgstr "не вдалося отримати дані %s за допомогою stat" -#: src/ar.c:1268 +#: src/ar.c:1275 #, c-format msgid "%s is no regular file" msgstr "%s не є звичайним файлом" -#: src/ar.c:1281 +#: src/ar.c:1288 #, c-format msgid "cannot get ELF descriptor for %s: %s\n" msgstr "не вдалося отримати дескриптор ELF для %s: %s\n" -#: src/ar.c:1301 +#: src/ar.c:1308 #, c-format msgid "cannot read %s: %s" msgstr "не вдалося прочитати %s: %s" -#: src/ar.c:1476 +#: src/ar.c:1483 #, c-format msgid "cannot represent ar_date" msgstr "неможливо представити ar_date" -#: src/ar.c:1482 +#: src/ar.c:1489 #, c-format msgid "cannot represent ar_uid" msgstr "неможливо представити ar_uid" -#: src/ar.c:1488 +#: src/ar.c:1495 #, c-format msgid "cannot represent ar_gid" msgstr "неможливо представити ar_gid" -#: src/ar.c:1494 +#: src/ar.c:1501 #, c-format msgid "cannot represent ar_mode" msgstr "неможливо представити ar_mode" -#: src/ar.c:1500 +#: src/ar.c:1507 #, c-format msgid "cannot represent ar_size" msgstr "неможливо представити ar_size" @@ -1359,7 +1359,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2189 src/unstrip.c:2218 +#: src/unstrip.c:2191 src/unstrip.c:2220 #, c-format msgid "cannot open '%s'" msgstr "не вдалося відкрити «%s»" @@ -1675,7 +1675,7 @@ msgstr "" #: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655 #: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099 -#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440 +#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4441 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу\n" @@ -2922,47 +2922,47 @@ msgstr "" "розділ [%2d] «%s»: зміщення %zu: зайві байти після останнього розділу " "атрибутів\n" -#: src/elflint.c:3699 +#: src/elflint.c:3700 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "не вдалося отримати заголовок нульового розділу\n" -#: src/elflint.c:3703 +#: src/elflint.c:3704 #, c-format msgid "zeroth section has nonzero name\n" msgstr "нульовий розділ має ненульову назву\n" -#: src/elflint.c:3705 +#: src/elflint.c:3706 #, c-format msgid "zeroth section has nonzero type\n" msgstr "нульовий розділ має ненульовий тип\n" -#: src/elflint.c:3707 +#: src/elflint.c:3708 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "нульовий розділ має ненульові прапорці\n" -#: src/elflint.c:3709 +#: src/elflint.c:3710 #, c-format msgid "zeroth section has nonzero address\n" msgstr "нульовий розділ має ненульову адресу\n" -#: src/elflint.c:3711 +#: src/elflint.c:3712 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "нульовий розділ має ненульове зміщення\n" -#: src/elflint.c:3713 +#: src/elflint.c:3714 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "нульовий розділ має ненульове значення вирівнювання\n" -#: src/elflint.c:3715 +#: src/elflint.c:3716 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "нульовий розділ має ненульове значення розміру запису\n" -#: src/elflint.c:3718 +#: src/elflint.c:3719 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2971,7 +2971,7 @@ msgstr "" "нульовий розділ має ненульове значення розміру, хоча заголовок ELF ман " "ненульове значення shnum\n" -#: src/elflint.c:3722 +#: src/elflint.c:3723 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2980,7 +2980,7 @@ msgstr "" "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF " "немає сигналу переповнення у shstrndx\n" -#: src/elflint.c:3726 +#: src/elflint.c:3727 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2989,28 +2989,28 @@ msgstr "" "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF " "немає сигналу переповнення у phnum\n" -#: src/elflint.c:3744 +#: src/elflint.c:3745 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "не вдалося отримати заголовок розділу [%2zu] «%s»: %s\n" -#: src/elflint.c:3753 +#: src/elflint.c:3754 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "розділ [%2zu]: некоректна назва\n" -#: src/elflint.c:3780 +#: src/elflint.c:3781 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" "розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n" -#: src/elflint.c:3798 +#: src/elflint.c:3799 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n" -#: src/elflint.c:3816 +#: src/elflint.c:3817 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -3018,12 +3018,12 @@ msgstr "" "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але " "маємо %s\n" -#: src/elflint.c:3834 +#: src/elflint.c:3835 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "у об’єктному файлі виявлено розділ [%2zu] «%s»\n" -#: src/elflint.c:3840 src/elflint.c:3872 +#: src/elflint.c:3841 src/elflint.c:3873 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -3031,7 +3031,7 @@ msgstr "" "у розділ [%2zu] «%s» встановлено прапорець SHF_ALLOC, але немає придатного " "до завантаження сегмента\n" -#: src/elflint.c:3845 src/elflint.c:3877 +#: src/elflint.c:3846 src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -3040,7 +3040,7 @@ msgstr "" "у розділі [%2zu] «%s» не встановлено прапорець SHF_ALLOC, але є придатні до " "завантаження сегменти\n" -#: src/elflint.c:3853 +#: src/elflint.c:3854 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -3048,22 +3048,22 @@ msgstr "" "розділ [%2zu] «%s» є таблицею-покажчиком розділу розширень у файлі, який не " "є об’єктним\n" -#: src/elflint.c:3896 +#: src/elflint.c:3897 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "розділ [%2zu] «%s»: розмір не є кратним до розміру запису\n" -#: src/elflint.c:3901 +#: src/elflint.c:3902 #, c-format msgid "cannot get section header\n" msgstr "не вдалося отримати заголовок розділу\n" -#: src/elflint.c:3911 +#: src/elflint.c:3912 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n" -#: src/elflint.c:3931 +#: src/elflint.c:3932 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -3071,74 +3071,74 @@ msgstr "" "розділ [%2zu] «%s» містить некоректні специфічні для процесора прапорці " "%#\n" -#: src/elflint.c:3938 +#: src/elflint.c:3939 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "розділ [%2zu] «%s» містить невідомі прапорці %#\n" -#: src/elflint.c:3946 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n" -#: src/elflint.c:3956 +#: src/elflint.c:3957 #, c-format msgid "section [%2zu] '%s': allocated section cannot be compressed\n" msgstr "" "розділ [%2zu] «%s»: розміщений у пам'яті розділ не може бути стиснений\n" -#: src/elflint.c:3961 +#: src/elflint.c:3962 #, c-format msgid "section [%2zu] '%s': nobits section cannot be compressed\n" msgstr "розділ [%2zu] «%s»: розділ nobits не може бути стиснений\n" -#: src/elflint.c:3967 +#: src/elflint.c:3968 #, c-format msgid "" "section [%2zu] '%s': compressed section with no compression header: %s\n" msgstr "розділ [%2zu] «%s»: стиснений розділ без заголовка стиснення: %s\n" -#: src/elflint.c:3973 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні компонування\n" -#: src/elflint.c:3978 +#: src/elflint.c:3979 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні відомостей\n" -#: src/elflint.c:3985 +#: src/elflint.c:3986 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "розділ [%2zu] «%s»: встановлено прапорець strings без прапорця merge\n" -#: src/elflint.c:3990 +#: src/elflint.c:3991 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "розділ [%2zu] «%s»: встановлено прапорець merge, але розмір запису є " "нульовим\n" -#: src/elflint.c:4009 +#: src/elflint.c:4010 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "розділ [%2zu] «%s» має неочікуваний тип %d для виконуваного розділу\n" -#: src/elflint.c:4018 +#: src/elflint.c:4019 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "розділ [%2zu] «%s» у файлах debuginfo має належати до типу NOBITS\n" -#: src/elflint.c:4025 +#: src/elflint.c:4026 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "розділ [%2zu] «%s» є одночасно виконуваним і придатним до запису\n" -#: src/elflint.c:4056 +#: src/elflint.c:4057 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -3147,7 +3147,7 @@ msgstr "" "розділ [%2zu] «%s» не повністю міститься у сегменті запису заголовка " "програми %d\n" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3156,7 +3156,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з " "файла у сегментів запису заголовка програми %d\n" -#: src/elflint.c:4092 +#: src/elflint.c:4093 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -3165,7 +3165,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з " "файла у сегментів запису заголовка програми %d, а вміст файла є ненульовим\n" -#: src/elflint.c:4103 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -3174,19 +3174,19 @@ msgstr "" "розділ [%2zu] «%s» не належить до типу NOBITS, але його читання не " "виконується з файла у сегментів запису заголовка програми %d\n" -#: src/elflint.c:4114 +#: src/elflint.c:4115 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "розділ [%2zu] «%s» є виконуваним у невиконуваному сегменті %d\n" -#: src/elflint.c:4124 +#: src/elflint.c:4125 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "розділ [%2zu] «%s» є придатним до запису у непридатному до запису сегменті " "%d\n" -#: src/elflint.c:4134 +#: src/elflint.c:4135 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -3194,7 +3194,7 @@ msgstr "" "розділ [%2zu] «%s»: встановлено прапорець alloc, але розділ не перебуває у " "жодному завантаженому сегменті\n" -#: src/elflint.c:4140 +#: src/elflint.c:4141 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3203,7 +3203,7 @@ msgstr "" "розділ [%2zu] «%s»: заголовок ELF повідомляє про те, що це таблиця рядків " "заголовка розділу, але ця таблиця не належить до типу SHT_TYPE\n" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3211,17 +3211,17 @@ msgstr "" "розділ [%2zu] «%s»: придатні до пересування файли не можуть містити " "динамічних таблиць символів\n" -#: src/elflint.c:4199 +#: src/elflint.c:4200 #, c-format msgid "more than one version symbol table present\n" msgstr "виявлено більше за одну таблицю символів версій\n" -#: src/elflint.c:4222 +#: src/elflint.c:4223 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "існує запис заголовка програми INTERP, але не розділ .interp\n" -#: src/elflint.c:4233 +#: src/elflint.c:4234 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3229,14 +3229,14 @@ msgstr "" "придатний до завантаження сегмент [%u] є виконуваним, але не містить " "виконуваних розділів\n" -#: src/elflint.c:4239 +#: src/elflint.c:4240 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "придатний до завантаження розділ [%u] є придатним до запису, але не містить " "придатних до запису розділів\n" -#: src/elflint.c:4250 +#: src/elflint.c:4251 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3245,24 +3245,24 @@ msgstr "" "немає розділу .gnu.versym, хоча існує розділ .gnu.versym_d або .gnu." "versym_r\n" -#: src/elflint.c:4263 +#: src/elflint.c:4264 #, c-format msgid "duplicate version index %d\n" msgstr "дублікат індексу версії %d\n" -#: src/elflint.c:4277 +#: src/elflint.c:4278 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "існує розділ .gnu.versym, але немає розділу .gnu.versym_d або .gnu.versym_r\n" -#: src/elflint.c:4326 +#: src/elflint.c:4327 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: невідомий тип нотатки файла core % за зміщенням %\n" -#: src/elflint.c:4330 +#: src/elflint.c:4331 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3270,7 +3270,7 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки файла core % за зміщенням " "%zu\n" -#: src/elflint.c:4379 +#: src/elflint.c:4380 #, c-format msgid "" "phdr[%d]: unknown object file note type % with owner name '%s' at " @@ -3279,7 +3279,7 @@ msgstr "" "phdr[%d]: невідомий тип нотатки у файлі об'єктів, %, із іменем " "власника «%s» за зміщенням %zu\n" -#: src/elflint.c:4384 +#: src/elflint.c:4385 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % with owner name " @@ -3288,39 +3288,39 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки у файлі об'єктів, %, із " "іменем власника «%s» за зміщенням %zu\n" -#: src/elflint.c:4403 +#: src/elflint.c:4404 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: для цього типу файлів не визначено записів нотаток\n" -#: src/elflint.c:4423 +#: src/elflint.c:4424 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: не вдалося отримати вміст розділу нотаток: %s\n" -#: src/elflint.c:4426 +#: src/elflint.c:4427 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: зайві % байтів після останнього запису нотатки\n" -#: src/elflint.c:4447 +#: src/elflint.c:4448 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "розділ [%2d] «%s»: для цього типу файлів не визначено записів нотаток\n" -#: src/elflint.c:4454 +#: src/elflint.c:4455 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "розділ [%2d] «%s»: не вдалося отримати вміст розділу нотаток\n" -#: src/elflint.c:4457 +#: src/elflint.c:4458 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" "розділ [%2d] «%s»: додаткові % байтів після останньої нотатки\n" -#: src/elflint.c:4475 +#: src/elflint.c:4476 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3328,66 +3328,66 @@ msgstr "" "заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів " "спільного використання або файлів core\n" -#: src/elflint.c:4490 +#: src/elflint.c:4491 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "не вдалося отримати запис заголовка програми %d: %s\n" -#: src/elflint.c:4500 +#: src/elflint.c:4501 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "запис заголовка програми %d: невідомий тип запису заголовка програми " "%#\n" -#: src/elflint.c:4511 +#: src/elflint.c:4512 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "більше за один запис INTERP у заголовку програми\n" -#: src/elflint.c:4519 +#: src/elflint.c:4520 #, c-format msgid "more than one TLS entry in program header\n" msgstr "більше за один запис TLS у заголовку програми\n" -#: src/elflint.c:4526 +#: src/elflint.c:4527 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "у статичному виконуваному файлі не може бути динамічних розділів\n" -#: src/elflint.c:4540 +#: src/elflint.c:4541 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "посилання на динамічний розділ у заголовку програми має помилкове зміщення\n" -#: src/elflint.c:4543 +#: src/elflint.c:4544 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "розміри динамічного розділу у заголовку програми та у заголовку розділу не " "збігаються\n" -#: src/elflint.c:4553 +#: src/elflint.c:4554 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "більше за один запис GNU_RELRO у заголовку програми\n" -#: src/elflint.c:4574 +#: src/elflint.c:4575 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" "придатний до завантаження сегмент, до якого звертається GNU_RELRO, " "непридатний до запису\n" -#: src/elflint.c:4585 +#: src/elflint.c:4586 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "прапорці придатного до завантаження сегмента [%u] не відповідають прапорцям " "GNU_RELRO [%u]\n" -#: src/elflint.c:4592 +#: src/elflint.c:4593 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" @@ -3395,76 +3395,76 @@ msgstr "" "прапорці GNU_RELRO [%u] не є підмножиною прапорців завантажуваного сегмента " "[%u]\n" -#: src/elflint.c:4601 src/elflint.c:4624 +#: src/elflint.c:4602 src/elflint.c:4625 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "сегмент %s не міститься у завантаженому сегменті\n" -#: src/elflint.c:4630 +#: src/elflint.c:4631 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "зміщення заголовка програми у заголовку ELF і запис PHDR не збігаються" -#: src/elflint.c:4657 +#: src/elflint.c:4658 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "посилання на таблицю вікон викликів у заголовку програми має помилкове " "зміщення\n" -#: src/elflint.c:4660 +#: src/elflint.c:4661 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку " "розділу не збігаються\n" -#: src/elflint.c:4673 +#: src/elflint.c:4674 #, 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:4681 +#: src/elflint.c:4682 #, c-format msgid "call frame search table must be allocated\n" msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’яті\n" -#: src/elflint.c:4684 +#: src/elflint.c:4685 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "розділ [%2zu] «%s» має бути розміщено у пам’яті\n" -#: src/elflint.c:4688 +#: src/elflint.c:4689 #, c-format msgid "call frame search table must not be writable\n" msgstr "таблиця пошуку вікон викликів не повинна бути придатною до запису\n" -#: src/elflint.c:4691 +#: src/elflint.c:4692 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n" -#: src/elflint.c:4696 +#: src/elflint.c:4697 #, c-format msgid "call frame search table must not be executable\n" msgstr "таблиця пошуку вікон викликів не повинна бути придатною до виконання\n" -#: src/elflint.c:4699 +#: src/elflint.c:4700 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконання\n" -#: src/elflint.c:4710 +#: src/elflint.c:4711 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "запис заголовка програми %d: розмір файла перевищує об’єм пам’яті\n" -#: src/elflint.c:4717 +#: src/elflint.c:4718 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "запис заголовка програми %d: значення вирівнювання не є степенем 2\n" -#: src/elflint.c:4720 +#: src/elflint.c:4721 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3473,7 +3473,7 @@ msgstr "" "запис заголовка програми %d: зміщення у файлі і віртуальна адреса не " "співвідносяться з вирівнюванням\n" -#: src/elflint.c:4733 +#: src/elflint.c:4734 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3482,17 +3482,17 @@ msgstr "" "виконуваний модуль/DSO з розділом .eh_frame_hdr не містить запису заголовка " "програми PT_GNU_EH_FRAME" -#: src/elflint.c:4767 +#: src/elflint.c:4768 #, c-format msgid "cannot read ELF header: %s\n" msgstr "не вдалося прочитати заголовок ELF: %s\n" -#: src/elflint.c:4779 +#: src/elflint.c:4780 #, fuzzy, c-format msgid "cannot create backend for ELF file\n" msgstr "не вдалося створити файл" -#: src/elflint.c:4800 +#: src/elflint.c:4801 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3757,8 +3757,8 @@ msgstr "не вдалося створити дерево пошуку" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420 -#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 +#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4081,11 +4081,11 @@ msgstr "не вдалося визначити кількість розділі msgid "cannot get section: %s" msgstr "не вдалося отримати розділ: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604 -#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212 -#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483 -#: src/unstrip.c:1658 src/unstrip.c:1809 src/unstrip.c:1952 src/unstrip.c:2051 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 +#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 +#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 +#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 +#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 #, c-format msgid "cannot get section header: %s" msgstr "не вдалося отримати заголовок розділу: %s" @@ -4095,8 +4095,8 @@ msgstr "не вдалося отримати заголовок розділу: msgid "cannot get section name" msgstr "не вдалося отримати назву розділу" -#: src/readelf.c:670 src/readelf.c:6576 src/readelf.c:10502 src/readelf.c:10604 -#: src/readelf.c:10782 +#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 +#: src/readelf.c:10803 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалося отримати дані %s: %s" @@ -4438,7 +4438,7 @@ msgstr "" " Відображення розділів на сегмент:\n" " Розділи сегмента..." -#: src/readelf.c:1460 src/unstrip.c:2110 src/unstrip.c:2152 src/unstrip.c:2159 +#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 #, c-format msgid "cannot get program header: %s" msgstr "не вдалося отримати заголовок програми: %s" @@ -4487,8 +4487,8 @@ msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>" msgid "" msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522 -#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 +#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 msgid "Couldn't uncompress section" msgstr "Не вдалося розпакувати розділ" @@ -5042,9 +5042,9 @@ msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] зміщення: %, дочірній: %s, мітка: %s\n" #: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6586 src/readelf.c:8323 src/readelf.c:9009 src/readelf.c:9445 -#: src/readelf.c:9690 src/readelf.c:9856 src/readelf.c:10243 -#: src/readelf.c:10303 +#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 +#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 +#: src/readelf.c:10324 #, c-format msgid "" "\n" @@ -5058,39 +5058,39 @@ msgstr "" msgid "cannot get .debug_addr section data: %s" msgstr "не вдалося отримати дані розділу .debug_addr: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9054 +#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 #, c-format msgid " Length: %8\n" msgstr " Довжина: %8\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9067 +#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 #, c-format msgid " DWARF version: %8\n" msgstr " версія DWARF: %8\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9076 +#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 #, c-format msgid " Address size: %8\n" msgstr " Розмір адреси: %8\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9086 +#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 #, c-format msgid " Segment size: %8\n" msgstr "" " Розмір сегмента: %8\n" "\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9071 src/readelf.c:10435 +#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 #, c-format msgid "Unknown version" msgstr "Невідома версія" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9081 +#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 #, c-format msgid "unsupported address size" msgstr "непідтримуваний розмір адреси" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9091 +#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 #, c-format msgid "unsupported segment size" msgstr "непідтримуваний розмір сегмента" @@ -5131,7 +5131,7 @@ msgstr "" " [%*zu] початок: %0#*, довжина: %5, зміщення CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8350 +#: src/readelf.c:5446 src/readelf.c:8359 #, c-format msgid "" "\n" @@ -5140,8 +5140,8 @@ msgstr "" "\n" "Таблиця за зміщенням %zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6610 src/readelf.c:8361 -#: src/readelf.c:9035 +#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 +#: src/readelf.c:9050 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" @@ -5194,7 +5194,7 @@ msgstr " %zu байтів доповнення\n" msgid "cannot get .debug_rnglists content: %s" msgstr "не вдалося отримати вміст .debug_rnglists: %s" -#: src/readelf.c:5632 src/readelf.c:9041 +#: src/readelf.c:5632 src/readelf.c:9056 #, c-format msgid "" "Table at Offset 0x%:\n" @@ -5203,32 +5203,32 @@ msgstr "" "Таблиця за зміщенням 0x%:\n" "\n" -#: src/readelf.c:5687 src/readelf.c:9096 +#: src/readelf.c:5687 src/readelf.c:9111 #, c-format msgid " Offset entries: %8\n" msgstr " Записи зміщення: %8\n" -#: src/readelf.c:5703 src/readelf.c:9112 +#: src/readelf.c:5703 src/readelf.c:9127 #, c-format msgid " Unknown CU base: " msgstr " Невідома основа CU: " -#: src/readelf.c:5705 src/readelf.c:9114 +#: src/readelf.c:5705 src/readelf.c:9129 #, c-format msgid " CU [%6] base: " msgstr " Основа CU [%6]: " -#: src/readelf.c:5711 src/readelf.c:9120 +#: src/readelf.c:5711 src/readelf.c:9135 #, c-format msgid " Not associated with a CU.\n" msgstr " Не пов'язано із CU.\n" -#: src/readelf.c:5722 src/readelf.c:9131 +#: src/readelf.c:5722 src/readelf.c:9146 #, c-format msgid "too many offset entries for unit length" msgstr "забагато записів зсуву для довжини модуля" -#: src/readelf.c:5726 src/readelf.c:9135 +#: src/readelf.c:5726 src/readelf.c:9150 #, c-format msgid " Offsets starting at 0x%:\n" msgstr " Зміщення, що починаються з 0x%:\n" @@ -5238,7 +5238,7 @@ msgstr " Зміщення, що починаються з 0x%:\n" msgid "invalid range list data" msgstr "некоректні дані списку діапазонів" -#: src/readelf.c:5963 src/readelf.c:9423 +#: src/readelf.c:5963 src/readelf.c:9438 #, c-format msgid "" " %zu padding bytes\n" @@ -5252,7 +5252,7 @@ msgstr "" msgid "cannot get .debug_ranges content: %s" msgstr "не вдалося отримати дані .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9478 +#: src/readelf.c:6016 src/readelf.c:9493 #, c-format msgid "" "\n" @@ -5261,7 +5261,7 @@ msgstr "" "\n" " Невідома основа CU: " -#: src/readelf.c:6018 src/readelf.c:9480 +#: src/readelf.c:6018 src/readelf.c:9495 #, c-format msgid "" "\n" @@ -5270,35 +5270,31 @@ msgstr "" "\n" " Основа CU [%6]: " -#: src/readelf.c:6027 src/readelf.c:9506 src/readelf.c:9532 +#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:6048 src/readelf.c:9612 -#, c-format -msgid "" -" [%6tx] base address\n" -" " -msgstr "" -" [%6tx] базова адреса\n" -" " +#: src/readelf.c:6052 src/readelf.c:9631 +#, fuzzy +msgid "base address" +msgstr " встановити адресу у значення " -#: src/readelf.c:6056 src/readelf.c:9620 +#: src/readelf.c:6062 src/readelf.c:9641 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] порожній список\n" -#: src/readelf.c:6311 +#: src/readelf.c:6317 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:6564 +#: src/readelf.c:6573 #, c-format msgid "cannot get ELF: %s" msgstr "не вдалося отримати ELF: %s" -#: src/readelf.c:6582 +#: src/readelf.c:6591 #, c-format msgid "" "\n" @@ -5307,7 +5303,7 @@ msgstr "" "\n" "Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#:\n" -#: src/readelf.c:6632 +#: src/readelf.c:6641 #, c-format msgid "" "\n" @@ -5316,65 +5312,65 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:6733 src/readelf.c:6887 +#: src/readelf.c:6742 src/readelf.c:6896 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшення" -#: src/readelf.c:6748 +#: src/readelf.c:6757 msgid "FDE address encoding: " msgstr "Кодування адреси FDE: " -#: src/readelf.c:6754 +#: src/readelf.c:6763 msgid "LSDA pointer encoding: " msgstr "Кодування вказівника LSDA: " -#: src/readelf.c:6864 +#: src/readelf.c:6873 #, c-format msgid " (offset: %#)" msgstr " (зміщення: %#)" -#: src/readelf.c:6871 +#: src/readelf.c:6880 #, c-format msgid " (end offset: %#)" msgstr " (зміщення від кінця: %#)" -#: src/readelf.c:6908 +#: src/readelf.c:6917 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sвказівник LSDA: %#\n" -#: src/readelf.c:6993 +#: src/readelf.c:7002 #, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "DIE [%] не вдалося отримати код атрибута: %s" -#: src/readelf.c:7003 +#: src/readelf.c:7012 #, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "DIE [%] не вдалося отримати форму атрибута: %s" -#: src/readelf.c:7025 +#: src/readelf.c:7034 #, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "DIE [%] не вдалося отримати значення атрибута «%s» (%s): %s" -#: src/readelf.c:7355 +#: src/readelf.c:7364 #, c-format msgid "invalid file (%): %s" msgstr "некоректний файл (%): %s" -#: src/readelf.c:7359 +#: src/readelf.c:7368 #, c-format msgid "no srcfiles for CU [%]" msgstr "немає srcfiles для CU [%]" -#: src/readelf.c:7363 +#: src/readelf.c:7372 #, c-format msgid "couldn't get DWARF CU: %s" msgstr "не вдалося отримати CU DWARF: %s" -#: src/readelf.c:7676 +#: src/readelf.c:7685 #, c-format msgid "" "\n" @@ -5385,12 +5381,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщенням %#:\n" " [Зміщення]\n" -#: src/readelf.c:7726 +#: src/readelf.c:7735 #, c-format msgid "cannot get next unit: %s" msgstr "не вдалося отримати наступний модуль: %s" -#: src/readelf.c:7745 +#: src/readelf.c:7754 #, c-format msgid "" " Type unit at offset %:\n" @@ -5403,7 +5399,7 @@ msgstr "" "%, Розмір зміщення: %\n" " Підпис типу: %#, Зміщення типу: %# [%]\n" -#: src/readelf.c:7757 +#: src/readelf.c:7766 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5414,38 +5410,38 @@ msgstr "" " Версія: %, Зміщення розділу скорочень: %, Адреса: %, " "Зміщення: %\n" -#: src/readelf.c:7767 src/readelf.c:7930 +#: src/readelf.c:7776 src/readelf.c:7939 #, c-format msgid " Unit type: %s (%)" msgstr " Тип модуля: %s (%)" -#: src/readelf.c:7794 +#: src/readelf.c:7803 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "невідома версія (%d) або тип модуля (%d)" -#: src/readelf.c:7823 +#: src/readelf.c:7832 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалося отримати зміщення DIE: %s" -#: src/readelf.c:7832 +#: src/readelf.c:7841 #, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "не вдалося отримати мітку DIE за зміщенням [%] у розділі «%s»: %s" -#: src/readelf.c:7870 +#: src/readelf.c:7879 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалося визначити наступний DIE: %s\n" -#: src/readelf.c:7878 +#: src/readelf.c:7887 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалося визначити наступний DIE: %s" -#: src/readelf.c:7922 +#: src/readelf.c:7931 #, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5456,7 +5452,7 @@ msgstr "" " Версія: %, Зміщення розділу скорочень: %, Адреса: %, " "Зміщення: %\n" -#: src/readelf.c:7974 +#: src/readelf.c:7983 #, c-format msgid "" "\n" @@ -5467,18 +5463,18 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" "\n" -#: src/readelf.c:8306 +#: src/readelf.c:8315 #, c-format msgid "unknown form: %s" msgstr "невідома форма: %s" -#: src/readelf.c:8337 +#: src/readelf.c:8346 #, c-format msgid "cannot get line data section data: %s" msgstr "не вдалося отримати дані розділу лінійних даних: %s" #. Print what we got so far. -#: src/readelf.c:8439 +#: src/readelf.c:8448 #, c-format msgid "" "\n" @@ -5511,27 +5507,27 @@ msgstr "" "\n" "Коди операцій:\n" -#: src/readelf.c:8461 +#: src/readelf.c:8470 #, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "не вдалося обробити версію .debug_line: %u\n" -#: src/readelf.c:8469 +#: src/readelf.c:8478 #, c-format msgid "cannot handle address size: %u\n" msgstr "не вдалося обробити розмір адреси: %u\n" -#: src/readelf.c:8477 +#: src/readelf.c:8486 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "не вдалося обробити розмір селектора сегментів: %u\n" -#: src/readelf.c:8487 +#: src/readelf.c:8496 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»" -#: src/readelf.c:8502 +#: src/readelf.c:8511 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5539,7 +5535,7 @@ msgstr[0] " [%*] %hhu аргумент\n" msgstr[1] " [%*] %hhu аргументи\n" msgstr[2] " [%*] %hhu аргументів\n" -#: src/readelf.c:8513 +#: src/readelf.c:8522 msgid "" "\n" "Directory table:" @@ -5547,12 +5543,12 @@ msgstr "" "\n" "Таблиця каталогу:" -#: src/readelf.c:8519 src/readelf.c:8596 +#: src/readelf.c:8528 src/readelf.c:8605 #, c-format msgid " [" msgstr " [" -#: src/readelf.c:8590 +#: src/readelf.c:8599 msgid "" "\n" "File name table:" @@ -5560,11 +5556,20 @@ msgstr "" "\n" " Таблиця назв файлів:" -#: src/readelf.c:8651 +#: src/readelf.c:8660 msgid " Entry Dir Time Size Name" msgstr " Запис Кат Час Розмір Назва" -#: src/readelf.c:8688 +#: src/readelf.c:8699 +#, fuzzy +msgid "" +"\n" +"No line number statements." +msgstr "" +"\n" +"Оператори номерів рядків:" + +#: src/readelf.c:8703 msgid "" "\n" "Line number statements:" @@ -5572,118 +5577,118 @@ msgstr "" "\n" "Оператори номерів рядків:" -#: src/readelf.c:8711 +#: src/readelf.c:8726 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "некоректну кількість операцій на інструкцію прирівняно до нуля" -#: src/readelf.c:8745 +#: src/readelf.c:8760 #, c-format msgid " special opcode %u: address+%u = " msgstr " спеціальний код операції %u: адреса+%u = " -#: src/readelf.c:8749 +#: src/readelf.c:8764 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr ", індекс_оп = %u, рядок%+d = %zu\n" -#: src/readelf.c:8752 +#: src/readelf.c:8767 #, c-format msgid ", line%+d = %zu\n" msgstr ", рядок%+d = %zu\n" -#: src/readelf.c:8770 +#: src/readelf.c:8785 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:8775 +#: src/readelf.c:8790 msgid " end of sequence" msgstr " кінець послідовності" -#: src/readelf.c:8793 +#: src/readelf.c:8808 #, c-format msgid " set address to " msgstr " встановити адресу у значення " -#: src/readelf.c:8821 +#: src/readelf.c:8836 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " визначення нового файла: dir=%u, mtime=%, довжина=%, назва=" "%s\n" -#: src/readelf.c:8835 +#: src/readelf.c:8850 #, c-format msgid " set discriminator to %u\n" msgstr " встановити розрізнення для %u\n" #. Unknown, ignore it. -#: src/readelf.c:8840 +#: src/readelf.c:8855 msgid " unknown opcode" msgstr " невідомий код операції" #. Takes no argument. -#: src/readelf.c:8852 +#: src/readelf.c:8867 msgid " copy" msgstr " копія" -#: src/readelf.c:8863 +#: src/readelf.c:8878 #, c-format msgid " advance address by %u to " msgstr " збільшення адреси на %u до " -#: src/readelf.c:8867 src/readelf.c:8928 +#: src/readelf.c:8882 src/readelf.c:8943 #, c-format msgid ", op_index to %u" msgstr ", op_index до %u" -#: src/readelf.c:8879 +#: src/readelf.c:8894 #, c-format msgid " advance line by constant %d to %\n" msgstr " просувати рядок на сталу %d до %\n" -#: src/readelf.c:8889 +#: src/readelf.c:8904 #, c-format msgid " set file to %\n" msgstr " встановити файл у %\n" -#: src/readelf.c:8900 +#: src/readelf.c:8915 #, c-format msgid " set column to %\n" msgstr " встановити значення стовпчика %\n" -#: src/readelf.c:8907 +#: src/readelf.c:8922 #, c-format msgid " set '%s' to %\n" msgstr " встановити «%s» у %\n" #. Takes no argument. -#: src/readelf.c:8913 +#: src/readelf.c:8928 msgid " set basic block flag" msgstr " встановити прапорець базового блоку" -#: src/readelf.c:8924 +#: src/readelf.c:8939 #, c-format msgid " advance address by constant %u to " msgstr " збільшити адресу на сталу величину %u до " -#: src/readelf.c:8944 +#: src/readelf.c:8959 #, c-format msgid " advance address by fixed value %u to \n" msgstr " збільшити адресу на фіксовану величину %u до \n" #. Takes no argument. -#: src/readelf.c:8954 +#: src/readelf.c:8969 msgid " set prologue end flag" msgstr " встановити прапорець кінця вступу" #. Takes no argument. -#: src/readelf.c:8959 +#: src/readelf.c:8974 msgid " set epilogue begin flag" msgstr " встановити прапорець початку епілогу" -#: src/readelf.c:8969 +#: src/readelf.c:8984 #, c-format msgid " set isa to %u\n" msgstr " встановити isa у %u\n" @@ -5691,7 +5696,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:8978 +#: src/readelf.c:8993 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5699,97 +5704,97 @@ msgstr[0] " невідомий код операції з % параме msgstr[1] " невідомий код операції з % параметрами:" msgstr[2] " невідомий код операції з % параметрами:" -#: src/readelf.c:9018 +#: src/readelf.c:9033 #, c-format msgid "cannot get .debug_loclists content: %s" msgstr "не вдалося отримати вміст .debug_loclists: %s" -#: src/readelf.c:9187 +#: src/readelf.c:9202 #, c-format msgid "invalid loclists data" msgstr "некоректні дані loclists" -#: src/readelf.c:9440 +#: src/readelf.c:9455 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "не вдалося отримати вміст .debug_loc: %s" -#: src/readelf.c:9647 src/readelf.c:10691 +#: src/readelf.c:9668 src/readelf.c:10712 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:9702 src/readelf.c:9865 +#: src/readelf.c:9723 src/readelf.c:9886 #, c-format msgid "cannot get macro information section data: %s" msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s" -#: src/readelf.c:9782 +#: src/readelf.c:9803 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений рядок наприкінці розділу" -#: src/readelf.c:9805 +#: src/readelf.c:9826 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу" -#: src/readelf.c:9906 +#: src/readelf.c:9927 #, c-format msgid " Offset: 0x%\n" msgstr " Зміщення: 0x%\n" -#: src/readelf.c:9918 +#: src/readelf.c:9939 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:9924 src/readelf.c:10811 +#: src/readelf.c:9945 src/readelf.c:10832 #, c-format msgid " unknown version, cannot parse section\n" msgstr " невідома версія, не вдалося обробити розділ\n" -#: src/readelf.c:9931 +#: src/readelf.c:9952 #, c-format msgid " Flag: 0x%" msgstr " Прапорець: 0x%" -#: src/readelf.c:9960 +#: src/readelf.c:9981 #, c-format msgid " Offset length: %\n" msgstr " Довжина зміщення: %\n" -#: src/readelf.c:9968 +#: src/readelf.c:9989 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " зміщення .debug_line: 0x%\n" -#: src/readelf.c:9993 +#: src/readelf.c:10014 #, c-format msgid " extension opcode table, % items:\n" msgstr " таблиця кодів операцій розширень, записів — %:\n" -#: src/readelf.c:10000 +#: src/readelf.c:10021 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:10012 +#: src/readelf.c:10033 #, c-format msgid " % arguments:" msgstr " % аргументів:" -#: src/readelf.c:10027 +#: src/readelf.c:10048 #, c-format msgid " no arguments." msgstr " немає аргументів." -#: src/readelf.c:10228 +#: src/readelf.c:10249 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " [%5d] зміщення DIE: %6, зміщення CU DIE: %6, назва: %s\n" -#: src/readelf.c:10272 +#: src/readelf.c:10293 #, c-format msgid "" "\n" @@ -5800,37 +5805,37 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" " %*s Рядок\n" -#: src/readelf.c:10287 +#: src/readelf.c:10308 #, c-format msgid " *** error, missing string terminator\n" msgstr " *** помилка, пропущено роздільник рядків\n" -#: src/readelf.c:10316 +#: src/readelf.c:10337 #, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "не вдалося отримати дані розділу .debug_str_offsets: %s" -#: src/readelf.c:10415 +#: src/readelf.c:10436 #, c-format msgid " Length: %8\n" msgstr " Довжина: %8\n" -#: src/readelf.c:10417 +#: src/readelf.c:10438 #, c-format msgid " Offset size: %8\n" msgstr " Розмір зсуву: %8\n" -#: src/readelf.c:10431 +#: src/readelf.c:10452 #, c-format msgid " DWARF version: %8\n" msgstr " версія DWARF: %8\n" -#: src/readelf.c:10440 +#: src/readelf.c:10461 #, c-format msgid " Padding: %8\n" msgstr " Заповнення: %8\n" -#: src/readelf.c:10494 +#: src/readelf.c:10515 #, c-format msgid "" "\n" @@ -5839,7 +5844,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10596 +#: src/readelf.c:10617 #, c-format msgid "" "\n" @@ -5848,22 +5853,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10619 +#: src/readelf.c:10640 #, c-format msgid " LPStart encoding: %#x " msgstr " Кодування LPStart: %#x " -#: src/readelf.c:10631 +#: src/readelf.c:10652 #, c-format msgid " TType encoding: %#x " msgstr " Кодування TType: %#x " -#: src/readelf.c:10646 +#: src/readelf.c:10667 #, c-format msgid " Call site encoding: %#x " msgstr " Кодування місця виклику:%#x " -#: src/readelf.c:10659 +#: src/readelf.c:10680 msgid "" "\n" " Call site table:" @@ -5871,7 +5876,7 @@ msgstr "" "\n" " Таблиця місця виклику:" -#: src/readelf.c:10673 +#: src/readelf.c:10694 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5884,12 +5889,12 @@ msgstr "" " Місце застосування: %#\n" " Дія: %u\n" -#: src/readelf.c:10746 +#: src/readelf.c:10767 #, c-format msgid "invalid TType encoding" msgstr "некоректне кодування TType" -#: src/readelf.c:10773 +#: src/readelf.c:10794 #, c-format msgid "" "\n" @@ -5898,37 +5903,37 @@ msgstr "" "\n" "Розділ GDB [%2zu] «%s» за зміщенням %# містить % байтів:\n" -#: src/readelf.c:10802 +#: src/readelf.c:10823 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:10820 +#: src/readelf.c:10841 #, c-format msgid " CU offset: %#\n" msgstr " зміщення CU: %#\n" -#: src/readelf.c:10827 +#: src/readelf.c:10848 #, c-format msgid " TU offset: %#\n" msgstr " зміщення TU: %#\n" -#: src/readelf.c:10834 +#: src/readelf.c:10855 #, c-format msgid " address offset: %#\n" msgstr " зміщення адреси: %#\n" -#: src/readelf.c:10841 +#: src/readelf.c:10862 #, c-format msgid " symbol offset: %#\n" msgstr " зміщення символу: %#\n" -#: src/readelf.c:10848 +#: src/readelf.c:10869 #, c-format msgid " constant offset: %#\n" msgstr " стале зміщення: %#\n" -#: src/readelf.c:10862 +#: src/readelf.c:10883 #, c-format msgid "" "\n" @@ -5937,7 +5942,7 @@ msgstr "" "\n" " Список CU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10887 +#: src/readelf.c:10908 #, c-format msgid "" "\n" @@ -5946,7 +5951,7 @@ msgstr "" "\n" " Список TU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10916 +#: src/readelf.c:10937 #, c-format msgid "" "\n" @@ -5955,7 +5960,7 @@ msgstr "" "\n" " Список адрес зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10948 +#: src/readelf.c:10969 #, c-format msgid "" "\n" @@ -5964,18 +5969,18 @@ msgstr "" "\n" " Таблиця символів за зміщенням %# містить %zu позицій:\n" -#: src/readelf.c:11086 +#: src/readelf.c:11107 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалося отримати дескриптор контексту зневаджування: %s" -#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187 -#: src/readelf.c:12245 +#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 +#: src/readelf.c:12266 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалося перетворити дані запису ядра: %s" -#: src/readelf.c:11817 +#: src/readelf.c:11838 #, c-format msgid "" "\n" @@ -5984,21 +5989,21 @@ msgstr "" "\n" "%*s... <повторюється %u разів> ..." -#: src/readelf.c:12324 +#: src/readelf.c:12345 msgid " Owner Data size Type\n" msgstr " Власник Розм. даних Тип\n" -#: src/readelf.c:12353 +#: src/readelf.c:12374 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12405 +#: src/readelf.c:12426 #, c-format msgid "cannot get content of note: %s" msgstr "не вдалося отримати вміст нотатки: %s" -#: src/readelf.c:12439 +#: src/readelf.c:12460 #, c-format msgid "" "\n" @@ -6008,7 +6013,7 @@ msgstr "" "Розділ записів (note) [%2zu] «%s» з % байтів за зміщенням " "%#0:\n" -#: src/readelf.c:12462 +#: src/readelf.c:12483 #, c-format msgid "" "\n" @@ -6017,7 +6022,7 @@ msgstr "" "\n" "Сегмент записів з % байтів за зміщенням %#0:\n" -#: src/readelf.c:12509 +#: src/readelf.c:12530 #, c-format msgid "" "\n" @@ -6026,12 +6031,12 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься даних для створення дампу.\n" -#: src/readelf.c:12536 src/readelf.c:12587 +#: src/readelf.c:12557 src/readelf.c:12608 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s" -#: src/readelf.c:12541 +#: src/readelf.c:12562 #, c-format msgid "" "\n" @@ -6040,7 +6045,7 @@ msgstr "" "\n" "Шіст. дамп розділу [%zu] «%s», % байтів за зміщенням %#0:\n" -#: src/readelf.c:12546 +#: src/readelf.c:12567 #, c-format msgid "" "\n" @@ -6051,7 +6056,7 @@ msgstr "" "Шіст. дамп розділу [%zu] «%s», % байтів (%zd нестиснено) за " "зміщенням %#0:\n" -#: src/readelf.c:12560 +#: src/readelf.c:12581 #, c-format msgid "" "\n" @@ -6060,7 +6065,7 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься рядків для створення дампу.\n" -#: src/readelf.c:12592 +#: src/readelf.c:12613 #, c-format msgid "" "\n" @@ -6069,7 +6074,7 @@ msgstr "" "\n" "Розділ рядків [%zu] «%s» містить % байтів за зміщенням %#0:\n" -#: src/readelf.c:12597 +#: src/readelf.c:12618 #, c-format msgid "" "\n" @@ -6080,7 +6085,7 @@ msgstr "" "Рядок розділу [%zu] «%s» містить % байти (%zd нестиснено) на " "зміщенні %#0:\n" -#: src/readelf.c:12646 +#: src/readelf.c:12667 #, c-format msgid "" "\n" @@ -6089,7 +6094,7 @@ msgstr "" "\n" "розділу [%lu] не існує" -#: src/readelf.c:12676 +#: src/readelf.c:12697 #, c-format msgid "" "\n" @@ -6098,12 +6103,12 @@ msgstr "" "\n" "розділу «%s» не існує" -#: src/readelf.c:12733 +#: src/readelf.c:12754 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалося отримати покажчик символів архіву «%s»: %s" -#: src/readelf.c:12736 +#: src/readelf.c:12757 #, c-format msgid "" "\n" @@ -6112,7 +6117,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика символів\n" -#: src/readelf.c:12740 +#: src/readelf.c:12761 #, c-format msgid "" "\n" @@ -6121,12 +6126,12 @@ msgstr "" "\n" "Покажчик архіву «%s» містить %zu записів:\n" -#: src/readelf.c:12758 +#: src/readelf.c:12779 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s" -#: src/readelf.c:12763 +#: src/readelf.c:12784 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» містить:\n" @@ -6207,63 +6212,63 @@ msgstr "не вдалося отримати заголовок розділу" msgid "(TOTALS)\n" msgstr "(ЗАГАЛОМ)\n" -#: src/stack.c:482 +#: src/stack.c:487 #, c-format msgid "-p PID should be a positive process id." msgstr "PID у -p PID має бути додатним значенням ідентифікатора процесу." -#: src/stack.c:488 +#: src/stack.c:493 #, c-format msgid "Cannot open core file '%s'" msgstr "Не вдалося відкрити файл дампу ядра «%s»" -#: src/stack.c:548 +#: src/stack.c:553 #, c-format msgid "-n MAXFRAMES should be 0 or higher." msgstr "MAXFRAMES у -n має бути значенням рівним 0 або більшим." -#: src/stack.c:560 +#: src/stack.c:565 #, c-format msgid "-e EXEC needs a core given by --core." msgstr "Для -e EXEC слід вказати ядро за допомогою --core." -#: src/stack.c:564 +#: src/stack.c:569 #, c-format msgid "-1 needs a thread id given by -p." msgstr "-1 слід передати ідентифікатор потоку виконання, заданого -p." -#: src/stack.c:568 +#: src/stack.c:573 #, c-format msgid "One of -p PID or --core COREFILE should be given." msgstr "Слід вказати -p PID або --core COREFILE." -#: src/stack.c:640 +#: src/stack.c:645 msgid "Show stack of process PID" msgstr "Вивести стек PID процесу" -#: src/stack.c:642 +#: src/stack.c:647 msgid "Show stack found in COREFILE" msgstr "Вивести стек, знайдений у COREFILE" -#: src/stack.c:643 +#: src/stack.c:648 msgid "(optional) EXECUTABLE that produced COREFILE" msgstr "(необов’язковий) EXECUTABLE, яким створено COREFILE" -#: src/stack.c:647 +#: src/stack.c:652 msgid "Output selection options:" msgstr "Параметри вибору виведених даних:" -#: src/stack.c:649 +#: src/stack.c:654 msgid "Additionally show frame activation" msgstr "Додатково вивести активацію вікна" -#: src/stack.c:651 +#: src/stack.c:656 msgid "Additionally try to lookup DWARF debuginfo name for frame address" msgstr "" "Додатково спробувати визначити назву файла даних діагностики DWARF для " "адреси вікна" -#: src/stack.c:654 +#: src/stack.c:659 msgid "" "Additionally show inlined function frames using DWARF debuginfo if available " "(implies -d)" @@ -6271,15 +6276,15 @@ msgstr "" "Додатково вивести вікна вбудованих функцій за допомогою даних діагностики " "DWARF, якщо такі є (використовується і -d)" -#: src/stack.c:656 +#: src/stack.c:661 msgid "Additionally show module file information" msgstr "Додатково вивести дані щодо файла модуля" -#: src/stack.c:658 +#: src/stack.c:663 msgid "Additionally show source file information" msgstr "Додатково вивести дані щодо файла початкового коду" -#: src/stack.c:660 +#: src/stack.c:665 msgid "" "Show all additional information (activation, debugname, inlines, module and " "source)" @@ -6287,36 +6292,36 @@ msgstr "" "Вивести усі додаткові дані (активацію, назву у системі діагностики, " "вбудовані функції, модуль і початковий файл)" -#: src/stack.c:662 +#: src/stack.c:667 msgid "Do not resolve address to function symbol name" msgstr "Не розгортати адресу до назви символу функції" -#: src/stack.c:664 +#: src/stack.c:669 msgid "Show raw function symbol names, do not try to demangle names" msgstr "" "Вивести назви символів функцій без обробки, не намагатися розшифрувати назви" -#: src/stack.c:666 +#: src/stack.c:671 msgid "Show module build-id, load address and pc offset" msgstr "Виводити ідентифікатор збирання, адресу завантаження та зсув модуля" -#: src/stack.c:668 +#: src/stack.c:673 msgid "Show the backtrace of only one thread" msgstr "Виводити зворотне трасування лише одного потоку" -#: src/stack.c:670 +#: src/stack.c:675 msgid "Show at most MAXFRAMES per thread (default 256, use 0 for unlimited)" msgstr "" "Виводити не більше MAXFRAMES на потік виконання (типове значення 256, 0 — не " "обмежувати)" -#: src/stack.c:672 +#: src/stack.c:677 msgid "Show module memory map with build-id, elf and debug files detected" msgstr "" "Вивести карту пам’яті модуля із виявленими ідентифікатором збирання, elf та " "файлами діагностичних даних" -#: src/stack.c:680 +#: src/stack.c:685 msgid "" "Print a stack for each thread in a process or core file.\n" "\n" @@ -6337,7 +6342,7 @@ msgstr "" "програму було викликано з помилковими або пропущеними аргументами, програма " "завершить роботу з кодом виходу 64." -#: src/stack.c:755 +#: src/stack.c:760 #, c-format msgid "Couldn't show any frames." msgstr "Не вдалося вивести жодного вікна." @@ -6765,7 +6770,7 @@ msgstr "не вдалося створити заголовок ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "не вдалося отримати shdrstrndx:%s" -#: src/unstrip.c:248 src/unstrip.c:2081 +#: src/unstrip.c:248 src/unstrip.c:2083 #, c-format msgid "cannot get ELF header: %s" msgstr "не вдалося отримати заголовок ELF: %s" @@ -6785,12 +6790,12 @@ msgstr "неможливо оновити новий нульовий розді msgid "cannot copy ELF header: %s" msgstr "не вдалося скопіювати заголовок ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2099 src/unstrip.c:2142 +#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 #, c-format msgid "cannot get number of program headers: %s" msgstr "не вдалося отримати кількість заголовків програми: %s" -#: src/unstrip.c:274 src/unstrip.c:2103 +#: src/unstrip.c:274 src/unstrip.c:2105 #, c-format msgid "cannot create program headers: %s" msgstr "не вдалося створити заголовки програми: %s" @@ -6805,12 +6810,12 @@ msgstr "не вдалося скопіювати заголовок програ msgid "cannot copy section header: %s" msgstr "не вдалося скопіювати заголовок розділу: %s" -#: src/unstrip.c:293 src/unstrip.c:1703 +#: src/unstrip.c:293 src/unstrip.c:1705 #, c-format msgid "cannot get section data: %s" msgstr "не вдалося отримати дані розділу: %s" -#: src/unstrip.c:295 src/unstrip.c:1705 +#: src/unstrip.c:295 src/unstrip.c:1707 #, c-format msgid "cannot copy section data: %s" msgstr "не вдалося скопіювати дані розділу: %s" @@ -6820,14 +6825,14 @@ msgstr "не вдалося скопіювати дані розділу: %s" msgid "cannot create directory '%s'" msgstr "не вдалося створити каталог «%s»" -#: src/unstrip.c:391 src/unstrip.c:651 src/unstrip.c:685 src/unstrip.c:853 -#: src/unstrip.c:1745 +#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 +#: src/unstrip.c:1747 #, c-format msgid "cannot get symbol table entry: %s" msgstr "не вдалося отримати запис таблиці символів: %s" -#: src/unstrip.c:407 src/unstrip.c:654 src/unstrip.c:675 src/unstrip.c:688 -#: src/unstrip.c:1766 src/unstrip.c:1961 src/unstrip.c:1985 +#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 +#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 #, c-format msgid "cannot update symbol table: %s" msgstr "не вдалося оновити таблицю символів: %s" @@ -6842,162 +6847,162 @@ msgstr "не вдалося оновити заголовок розділу: %s msgid "cannot update relocation: %s" msgstr "не вдалося оновити пересування: %s" -#: src/unstrip.c:574 +#: src/unstrip.c:576 #, c-format msgid "cannot get symbol version: %s" msgstr "не вдалося отримати версію символу: %s" -#: src/unstrip.c:587 +#: src/unstrip.c:589 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "неочікуваний тип розділу у [%zu] з посиланням sh_link на symtab" -#: src/unstrip.c:842 +#: src/unstrip.c:844 #, c-format msgid "cannot get symbol section data: %s" msgstr "не вдалося отримати дані розділу символів: %s" -#: src/unstrip.c:844 +#: src/unstrip.c:846 #, c-format msgid "cannot get string section data: %s" msgstr "не вдалося отримати дані розділу рядків: %s" -#: src/unstrip.c:861 +#: src/unstrip.c:863 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "некоректне зміщення рядка у символі [%zu]" -#: src/unstrip.c:1019 src/unstrip.c:1423 +#: src/unstrip.c:1021 src/unstrip.c:1425 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "не вдалося прочитати назву розділу [%zu]: %s" -#: src/unstrip.c:1034 +#: src/unstrip.c:1036 #, c-format msgid "bad sh_link for group section: %s" msgstr "помилкове значення sh_link для розділу груп: %s" -#: src/unstrip.c:1040 +#: src/unstrip.c:1042 #, c-format msgid "couldn't get shdr for group section: %s" msgstr "не вдалося отримати shdr для розділу груп: %s" -#: src/unstrip.c:1045 +#: src/unstrip.c:1047 #, c-format msgid "bad data for group symbol section: %s" msgstr "помилкові дані для розділу символів груп: %s" -#: src/unstrip.c:1051 +#: src/unstrip.c:1053 #, c-format msgid "couldn't get symbol for group section: %s" msgstr "не вдалося отримати символ для розділу груп: %s" -#: src/unstrip.c:1056 +#: src/unstrip.c:1058 #, c-format msgid "bad symbol name for group section: %s" msgstr "помилкова назва символу для розділу груп: %s" -#: src/unstrip.c:1098 src/unstrip.c:1117 src/unstrip.c:1155 +#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s" -#: src/unstrip.c:1135 +#: src/unstrip.c:1137 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "переповнення з shnum = %zu у розділі «%s»" -#: src/unstrip.c:1146 +#: src/unstrip.c:1148 #, c-format msgid "invalid contents in '%s' section" msgstr "некоректний вміст розділу «%s»" -#: src/unstrip.c:1202 src/unstrip.c:1549 +#: src/unstrip.c:1204 src/unstrip.c:1551 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "не вдалося знайти відповідний розділ для [%zu] «%s»" -#: src/unstrip.c:1327 src/unstrip.c:1343 src/unstrip.c:1629 src/unstrip.c:1920 +#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 #, c-format msgid "cannot add section name to string table: %s" msgstr "не вдалося додати назву розділу до таблиці рядків: %s" -#: src/unstrip.c:1352 +#: src/unstrip.c:1354 #, c-format msgid "cannot update section header string table data: %s" msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1381 src/unstrip.c:1385 +#: src/unstrip.c:1383 src/unstrip.c:1387 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1389 src/unstrip.c:1393 src/unstrip.c:1644 +#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 #, c-format msgid "cannot get section count: %s" msgstr "не вдалося отримати кількість розділів: %s" -#: src/unstrip.c:1396 +#: src/unstrip.c:1398 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — " "помилковий порядок параметрів?" -#: src/unstrip.c:1400 +#: src/unstrip.c:1402 #, c-format msgid "no sections in stripped file" msgstr "у очищеному файлі немає розділів" -#: src/unstrip.c:1471 src/unstrip.c:1564 +#: src/unstrip.c:1473 src/unstrip.c:1566 #, c-format msgid "cannot read section header string table: %s" msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s" -#: src/unstrip.c:1623 +#: src/unstrip.c:1625 #, c-format msgid "cannot add new section: %s" msgstr "не вдалося додати новий розділ: %s" -#: src/unstrip.c:1753 +#: src/unstrip.c:1755 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "символ [%zu] має некоректний індекс розділу" -#: src/unstrip.c:1785 +#: src/unstrip.c:1787 #, c-format msgid "group has invalid section index [%zd]" msgstr "група містить некоректний індекс розділу [%zd]" -#: src/unstrip.c:2060 +#: src/unstrip.c:2062 #, c-format msgid "cannot read section data: %s" msgstr "не вдалося прочитати дані розділу: %s" -#: src/unstrip.c:2089 +#: src/unstrip.c:2091 #, c-format msgid "cannot update ELF header: %s" msgstr "не вдалося оновити заголовок ELF: %s" -#: src/unstrip.c:2113 +#: src/unstrip.c:2115 #, c-format msgid "cannot update program header: %s" msgstr "не вдалося оновити заголовок програми: %s" -#: src/unstrip.c:2118 src/unstrip.c:2200 +#: src/unstrip.c:2120 src/unstrip.c:2202 #, c-format msgid "cannot write output file: %s" msgstr "не вдалося записати файл виведених даних: %s" -#: src/unstrip.c:2169 +#: src/unstrip.c:2171 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Дані DWARF не скориговано відповідно до відхилення перед компонуванням; " "спробуйте виправити це командою prelink -u" -#: src/unstrip.c:2172 +#: src/unstrip.c:2174 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -7005,76 +7010,76 @@ msgstr "" "Дані DWARF у «%s» не скориговано відповідно до відхилення перед " "компонуванням; спробуйте виправити це командою prelink -u" -#: src/unstrip.c:2191 src/unstrip.c:2242 src/unstrip.c:2254 src/unstrip.c:2340 +#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "не вдалося створити дескриптор ELF: %s" -#: src/unstrip.c:2233 +#: src/unstrip.c:2235 msgid "WARNING: " msgstr "УВАГА: " -#: src/unstrip.c:2235 +#: src/unstrip.c:2237 msgid ", use --force" msgstr ", скористайтеся --force" -#: src/unstrip.c:2258 +#: src/unstrip.c:2260 msgid "ELF header identification (e_ident) different" msgstr "Різні ідентифікатори заголовків ELF (e_ident)" -#: src/unstrip.c:2261 +#: src/unstrip.c:2263 msgid "ELF header type (e_type) different" msgstr "Різні типи заголовків ELF (e_type)" -#: src/unstrip.c:2264 +#: src/unstrip.c:2266 msgid "ELF header machine type (e_machine) different" msgstr "Різні типи архітектур заголовків ELF (e_machine)" -#: src/unstrip.c:2267 +#: src/unstrip.c:2269 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений" -#: src/unstrip.c:2297 +#: src/unstrip.c:2299 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "не вдалося знайти очищений файл для модуля «%s»: %s" -#: src/unstrip.c:2301 +#: src/unstrip.c:2303 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s" -#: src/unstrip.c:2316 +#: src/unstrip.c:2318 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s" -#: src/unstrip.c:2320 +#: src/unstrip.c:2322 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s" -#: src/unstrip.c:2333 +#: src/unstrip.c:2335 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "у модулі «%s» файл «%s» не очищено strip" -#: src/unstrip.c:2364 +#: src/unstrip.c:2366 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s" -#: src/unstrip.c:2497 +#: src/unstrip.c:2498 #, c-format msgid "no matching modules found" msgstr "відповідних модулів не виявлено" -#: src/unstrip.c:2506 +#: src/unstrip.c:2507 #, c-format msgid "matched more than one module" msgstr "встановлено відповідність декількох модулів" -#: src/unstrip.c:2550 +#: src/unstrip.c:2551 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7082,7 +7087,7 @@ msgstr "" "ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n" "[МОДУЛЬ...]" -#: src/unstrip.c:2551 +#: src/unstrip.c:2552 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" @@ -7153,6 +7158,13 @@ msgstr "Додатково вивести назви функцій" msgid "Show instances of inlined functions" msgstr "Вивести екземпляри вбудованих функцій" +#~ msgid "" +#~ " [%6tx] base address\n" +#~ " " +#~ msgstr "" +#~ " [%6tx] базова адреса\n" +#~ " " + #, fuzzy #~ msgid "%s: error getting zero section: %s" #~ msgstr "%s: помилка під час читання файла: %s" -- cgit v1.2.1 From 0ba7476d36100c015c35c744e871c4e64d52154a Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 15 Sep 2020 15:43:10 +0200 Subject: debuginfod-find: Support compressed (kernel) ELF images. By using dwelf_elf_begin instead of elf_begin we automatically get support for determining the build-id of compressed (kernel) images. https://sourceware.org/bugzilla/show_bug.cgi?id=26599 Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 4 ++++ debuginfod/debuginfod-find.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index db8a76a7..41897a3a 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,7 @@ +2020-09-15 Mark Wielaard + + * debuginfod-find.c (main): Use dwelf_elf_begin. + 2020-07-03 Alice Zhang * debuginfod-client.c (debuginfod_query_server): Use strncasecmp diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c index 83a43ce4..214256da 100644 --- a/debuginfod/debuginfod-find.c +++ b/debuginfod/debuginfod-find.c @@ -138,9 +138,10 @@ main(int argc, char** argv) } if (fd >= 0) { - elf = elf_begin (fd, ELF_C_READ_MMAP_PRIVATE, NULL); + elf = dwelf_elf_begin (fd); if (elf == NULL) - fprintf (stderr, "Cannot elf_begin %s: %s\n", build_id, elf_errmsg(-1)); + fprintf (stderr, "Cannot open as ELF file %s: %s\n", build_id, + elf_errmsg (-1)); } if (elf != NULL) { -- cgit v1.2.1 From 4438f03c858517b0fab0127a05ed994c79705d4f Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 16 Sep 2020 16:36:43 +0200 Subject: debuginfod-find.c: Fix license block comment. File is GPLv3+ only. The license itself was correct, just the comment to get a copy of the LGPL was wrong. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 4 ++++ debuginfod/debuginfod-find.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 41897a3a..d9efa81e 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,7 @@ +2020-09-16 Mark Wielaard + + * debuginfod-find.c: Fix license block comment. + 2020-09-15 Mark Wielaard * debuginfod-find.c (main): Use dwelf_elf_begin. diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c index 214256da..88a460f8 100644 --- a/debuginfod/debuginfod-find.c +++ b/debuginfod/debuginfod-find.c @@ -13,9 +13,9 @@ 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 . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + #include "config.h" #include "printversion.h" -- cgit v1.2.1 From e39b33d6bee578eceb27482fbce55e5c5516821b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 8 Sep 2020 14:12:28 +0200 Subject: debuginfod: Fix BUILD_STATIC build. The BUILD_STATIC build, as used by the coverage setup, was broken for debuginfod because the DUMMY_LIBDEBUGINFOD case was mixed up. It should include libcurl_LIBS when NOT doing a dummy build. Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/Makefile.am | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index d9efa81e..a8e0ac5e 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-09-08 Mark Wielaard + + * Makefile.am (BUILD_STATIC): Include libcurl_LIBS in libdebuginfod + when NOT DUMMY_LIBDEBUGINFOD. + 2020-09-16 Mark Wielaard * debuginfod-find.c: Fix license block comment. diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am index 2e8a343c..01985600 100644 --- a/debuginfod/Makefile.am +++ b/debuginfod/Makefile.am @@ -46,9 +46,9 @@ libasm = ../libasm/libasm.a libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread libelf = ../libelf/libelf.a -lz if DUMMY_LIBDEBUGINFOD -libdebuginfod = ./libdebuginfod.a $(libcurl_LIBS) -else libdebuginfod = ./libdebuginfod.a +else +libdebuginfod = ./libdebuginfod.a $(libcurl_LIBS) endif else libasm = ../libasm/libasm.so -- cgit v1.2.1 From 04bcab70c7dcb9c1bc7ca49508b5d7cbd5aeaa1a Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 18 Sep 2020 13:03:01 -0400 Subject: debuginfod: store only canonicalized sref pathnames in database Since PR25548, we let debuginfod answer /buildid/HEX/source/PATH queries with both canonicalized and raw PATHs. It canonicalizes incoming paths, but still stored the raw paths in the database too. This near-dupe storage is not needed, since the queries would always find the canonicalized version too, so stop doing that. This saves database space/time. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 5 ++++ debuginfod/debuginfod.cxx | 69 ++++++++++++++++------------------------------- 2 files changed, 28 insertions(+), 46 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index a8e0ac5e..8cb89967 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-09-18 Frank Ch. Eigler + + * debuginfod.cxx (scan_source_file, archive_classify): Store only + canonicalized file names in sdef & sref records in the database. + 2020-09-08 Mark Wielaard * Makefile.am (BUILD_STATIC): Include libcurl_LIBS in libdebuginfod diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 56210302..140b7789 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -1505,6 +1505,8 @@ handle_buildid (MHD_Connection* conn, "order by sharedprefix(source0,source0ref) desc, mtime desc"); pp->reset(); pp->bind(1, buildid); + // NB: we don't store the non-canonicalized path names any more, but old databases + // might have them (and no canon ones), so we keep searching for both. pp->bind(2, suffix); pp->bind(3, canon_pathname(suffix)); } @@ -2254,41 +2256,27 @@ scan_source_file (const string& rps, const stat_t& st, .bind(1, srps) .step_ok_done(); - // register the dwarfsrc name in the interning table too + // PR25548: store canonicalized dwarfsrc path + string dwarfsrc_canon = canon_pathname (dwarfsrc); + if (dwarfsrc_canon != dwarfsrc) + { + if (verbose > 3) + obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; + } + ps_upsert_files .reset() - .bind(1, dwarfsrc) + .bind(1, dwarfsrc_canon) .step_ok_done(); ps_upsert_s .reset() .bind(1, buildid) - .bind(2, dwarfsrc) + .bind(2, dwarfsrc_canon) .bind(3, srps) .bind(4, sfs.st_mtime) .step_ok_done(); - // PR25548: also store canonicalized source path - string dwarfsrc_canon = canon_pathname (dwarfsrc); - if (dwarfsrc_canon != dwarfsrc) - { - if (verbose > 3) - obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; - - ps_upsert_files - .reset() - .bind(1, dwarfsrc_canon) - .step_ok_done(); - - ps_upsert_s - .reset() - .bind(1, buildid) - .bind(2, dwarfsrc_canon) - .bind(3, srps) - .bind(4, sfs.st_mtime) - .step_ok_done(); - } - inc_metric("found_sourcerefs_total","source","files"); } } @@ -2439,37 +2427,26 @@ archive_classify (const string& rps, string& archive_extension, continue; } + // PR25548: store canonicalized source path + const string& dwarfsrc = s; + string dwarfsrc_canon = canon_pathname (dwarfsrc); + if (dwarfsrc_canon != dwarfsrc) + { + if (verbose > 3) + obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; + } + ps_upsert_files .reset() - .bind(1, s) + .bind(1, dwarfsrc_canon) .step_ok_done(); ps_upsert_sref .reset() .bind(1, buildid) - .bind(2, s) + .bind(2, dwarfsrc_canon) .step_ok_done(); - // PR25548: also store canonicalized source path - const string& dwarfsrc = s; - string dwarfsrc_canon = canon_pathname (dwarfsrc); - if (dwarfsrc_canon != dwarfsrc) - { - if (verbose > 3) - obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; - - ps_upsert_files - .reset() - .bind(1, dwarfsrc_canon) - .step_ok_done(); - - ps_upsert_sref - .reset() - .bind(1, buildid) - .bind(2, dwarfsrc_canon) - .step_ok_done(); - } - fts_sref ++; } } -- cgit v1.2.1 From 52536d7d213846a3122d4dd40f6268f231109990 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 18 Sep 2020 12:49:29 +0200 Subject: libdwfl: Add ZSTD support. Newer kernels might be compressed using ZSTD add support to libdwfl open so we can can automatically read ZSTD compressed files and kernel images. The support is very similar to the bzip2 and lzma support, but slightly different. With a bit more macros it could maybe have used the gzip.c USE_INFLATE code path. But I felt that the many macros didn't really help understand the code. So the unzip routine has a slightly different code path for ZSTD. https://sourceware.org/bugzilla/show_bug.cgi?id=26632 Signed-off-by: Mark Wielaard --- ChangeLog | 4 ++ config/ChangeLog | 5 +++ config/elfutils.spec.in | 2 + config/libdw.pc.in | 4 +- configure.ac | 13 +++++- libdwfl/ChangeLog | 12 ++++++ libdwfl/Makefile.am | 3 ++ libdwfl/gzip.c | 79 +++++++++++++++++++++++++++++++++++- libdwfl/libdwflP.h | 5 +++ libdwfl/linux-kernel-modules.c | 3 ++ libdwfl/open.c | 6 +++ libdwfl/zstd.c | 4 ++ tests/ChangeLog | 6 +++ tests/Makefile.am | 5 +++ tests/run-readelf-compressed-zstd.sh | 39 ++++++++++++++++++ 15 files changed, 184 insertions(+), 6 deletions(-) create mode 100644 libdwfl/zstd.c create mode 100755 tests/run-readelf-compressed-zstd.sh diff --git a/ChangeLog b/ChangeLog index 094a798a..021b06f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-09-18 Mark Wielaard + + * configure.ac: Check availability of libzstd and zstd. + 2020-09-08 Mark Wielaard * configure.ac: Set version to 0.181. diff --git a/config/ChangeLog b/config/ChangeLog index 1cb3d204..c8e4fcd4 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2020-09-18 Mark Wielaard + + * elfutils.spec.in: Add BuildRequires for libzstd-devel and zstd. + * libdw.pc.in: Requires.private libzstd. + 2020-09-08 Mark Wielaard * elfutils.spec.in: Update for 0.181. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 95f63f5a..37af1b07 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -24,6 +24,7 @@ BuildRequires: flex BuildRequires: zlib-devel BuildRequires: bzip2-devel BuildRequires: xz-devel +BuildRequires: libzstd-devel # For debuginfod BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33 @@ -33,6 +34,7 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2 # For tests need to bunzip2 test files. BuildRequires: bzip2 +BuildRequires: zstd # For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss BuildRequires: iproute BuildRequires: bsdtar diff --git a/config/libdw.pc.in b/config/libdw.pc.in index 3fc283db..2e83a432 100644 --- a/config/libdw.pc.in +++ b/config/libdw.pc.in @@ -17,6 +17,6 @@ Requires: libelf = @VERSION@ # We support various compressed ELF images, but don't export any of the # data structures or functions. zlib (gz) is always required, bzip2 (bz2) -# and lzma (xz) are optional. But bzip2 doesn't have a pkg-config file. -Requires.private: zlib @LIBLZMA@ +# lzma (xz) and zstd () are optional. But bzip2 doesn't have a pkg-config file. +Requires.private: zlib @LIBLZMA@ @LIBZSTD@ Libs.private: @BZ2_LIB@ diff --git a/configure.ac b/configure.ac index bf833872..1b794df3 100644 --- a/configure.ac +++ b/configure.ac @@ -397,8 +397,8 @@ eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip) AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR([zlib not found but is required])]) LIBS="$save_LIBS" -dnl Test for bzlib and xz/lzma, gives BZLIB/LZMALIB .am -dnl conditional and config.h USE_BZLIB/USE_LZMALIB #define. +dnl Test for bzlib and xz/lzma/zstd, gives BZLIB/LZMALIB/ZSTD .am +dnl conditional and config.h USE_BZLIB/USE_LZMALIB/USE_ZSTD #define. save_LIBS="$LIBS" LIBS= eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2) @@ -408,6 +408,9 @@ AC_SUBST([BZ2_LIB]) eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)]) AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""]) AC_SUBST([LIBLZMA]) +eu_ZIPLIB(zstd,ZSTD,zstd,ZSTD_decompress,[ZSTD (zst)]) +AS_IF([test "x$with_zstd" = xyes], [LIBZSTD="libzstd"], [LIBLZSTD=""]) +AC_SUBST([LIBZSTD]) zip_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST([zip_LIBS]) @@ -677,6 +680,10 @@ if test "$HAVE_BUNZIP2" = "no"; then AC_MSG_WARN([No bunzip2, needed to run make check]) fi +# For tests that need to use zstd compression +AC_CHECK_PROG(HAVE_ZSTD, zstd, yes, no) +AM_CONDITIONAL([HAVE_ZSTD],[test "x$HAVE_ZSTD" = "xyes"]) + # Look for libcurl for libdebuginfod minimum version as per rhel7. AC_ARG_ENABLE([libdebuginfod],AC_HELP_STRING([--enable-libdebuginfod], [Build debuginfod client library (can be =dummy)])) AS_IF([test "x$enable_libdebuginfod" != "xno"], [ @@ -742,6 +749,7 @@ AC_MSG_NOTICE([ gzip support : ${with_zlib} bzip2 support : ${with_bzlib} lzma/xz support : ${with_lzma} + zstd support : ${with_zstd} libstdc++ demangle support : ${enable_demangler} File textrel check : ${enable_textrelcheck} Symbol versioning : ${enable_symbol_versioning} @@ -759,6 +767,7 @@ AC_MSG_NOTICE([ EXTRA TEST FEATURES (used with make check) have bunzip2 installed (required) : ${HAVE_BUNZIP2} + have zstd installed : ${HAVE_ZSTD} debug branch prediction : ${use_debugpred} gprof support : ${use_gprof} gcov support : ${use_gcov} diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index ca10ce88..344db7c1 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,15 @@ +2020-09-18 Mark Wielaard + + * zstd.c: New file. + * libdwflP.h: Add DWFL_E_ZSTD and __libdw_unzstd. + * Makefile.am (libdwfl_a_SOURCES): add zstd.c if ZSTD. + * gzip.c: Add defines and includes for ZSTD. + (zlib_fail): Don't define for ZSTD. + (unzip): Change pread_retry failure from zlib_fail to fail. + Add ZSTD support. + * open.c (decompress): Also try __libdw_unzstd. + * linux-kernel-modules.c (check_suffix): Also TRY ".ko.zst". + 2020-08-20 Dmitry V. Levin * Makefile.am (libdwfl_a_SOURCES): Conditionalize diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am index 1de05492..a0013e41 100644 --- a/libdwfl/Makefile.am +++ b/libdwfl/Makefile.am @@ -78,6 +78,9 @@ endif if LZMA libdwfl_a_SOURCES += lzma.c endif +if ZSTD +libdwfl_a_SOURCES += zstd.c +endif if LIBDEBUGINFOD libdwfl_a_SOURCES += debuginfod-client.c endif diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c index e9988cc2..ba8ecfba 100644 --- a/libdwfl/gzip.c +++ b/libdwfl/gzip.c @@ -48,6 +48,12 @@ # define inflateInit(z) lzma_auto_decoder (z, 1 << 30, 0) # define do_inflate(z) lzma_code (z, LZMA_RUN) # define inflateEnd(z) lzma_end (z) +#elif defined ZSTD +# define USE_INFLATE 1 +# include +# define unzip __libdw_unzstd +# define DWFL_E_ZLIB DWFL_E_ZSTD +# define MAGIC "\x28\xb5\x2f\xfd" #elif defined BZLIB # define USE_INFLATE 1 # include @@ -119,6 +125,7 @@ fail (struct unzip_state *state, Dwfl_Error failure) return failure; } +#ifndef ZSTD static inline Dwfl_Error zlib_fail (struct unzip_state *state, int result) { @@ -132,6 +139,7 @@ zlib_fail (struct unzip_state *state, int result) return fail (state, DWFL_E_ZLIB); } } +#endif #if !USE_INFLATE static Dwfl_Error @@ -197,7 +205,7 @@ unzip (int fd, off_t start_offset, ssize_t n = pread_retry (fd, state.input_buffer, READ_SIZE, start_offset); if (unlikely (n < 0)) - return zlib_fail (&state, Z (ERRNO)); + return fail (&state, DWFL_E_ERRNO); state.input_pos = n; mapped = state.input_buffer; @@ -223,7 +231,74 @@ unzip (int fd, off_t start_offset, /* Not a compressed file. */ return DWFL_E_BADELF; -#if USE_INFLATE +#ifdef ZSTD + /* special case for libzstd since it is slightly different from the + API provided by bzlib and liblzma. */ + + void *next_in = mapped; + size_t avail_in = state.mapped_size; + void *next_out = NULL; + size_t avail_out = 0; + size_t total_out = 0; + + size_t result; + ZSTD_DCtx *dctx = ZSTD_createDCtx(); + if (dctx == NULL) + return fail (&state, DWFL_E_NOMEM); + + do + { + if (avail_in == 0 && state.input_buffer != NULL) + { + ssize_t n = pread_retry (fd, state.input_buffer, READ_SIZE, + start_offset + state.input_pos); + if (unlikely (n < 0)) + { + ZSTD_freeDCtx (dctx); + return fail (&state, DWFL_E_ERRNO); + } + next_in = state.input_buffer; + avail_in = n; + state.input_pos += n; + } + if (avail_out == 0) + { + ptrdiff_t pos = (void *) next_out - state.buffer; + if (!bigger_buffer (&state, avail_in)) + { + ZSTD_freeDCtx (dctx); + return fail (&state, DWFL_E_NOMEM); + } + next_out = state.buffer + pos; + avail_out = state.size - pos; + } + + ZSTD_inBuffer input = { next_in, avail_in, 0 }; + ZSTD_outBuffer output = { next_out, avail_out, 0 }; + result = ZSTD_decompressStream (dctx, &output, &input); + + if (! ZSTD_isError (result)) + { + total_out += output.pos; + next_out += output.pos; + avail_out -= output.pos; + next_in += input.pos; + avail_in -= input.pos; + } + + if (result == 0) + break; + } + while (avail_in > 0 && ! ZSTD_isError (result)); + + ZSTD_freeDCtx (dctx); + + if (ZSTD_isError (result)) + return fail (&state, DWFL_E_ZSTD); + + smaller_buffer (&state, total_out); + +#elif USE_INFLATE /* This style actually only works with bzlib and liblzma. The stupid zlib interface has nothing to grok the diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h index ad6779ad..4c6fcb28 100644 --- a/libdwfl/libdwflP.h +++ b/libdwfl/libdwflP.h @@ -61,6 +61,7 @@ typedef struct Dwfl_Process Dwfl_Process; DWFL_ERROR (ZLIB, N_("gzip decompression failed")) \ DWFL_ERROR (BZLIB, N_("bzip2 decompression failed")) \ DWFL_ERROR (LZMA, N_("LZMA decompression failed")) \ + DWFL_ERROR (ZSTD, N_("zstd decompression failed")) \ DWFL_ERROR (UNKNOWN_MACHINE, N_("no support library found for machine")) \ DWFL_ERROR (NOREL, N_("Callbacks missing for ET_REL file")) \ DWFL_ERROR (BADRELTYPE, N_("Unsupported relocation type")) \ @@ -612,6 +613,10 @@ extern Dwfl_Error __libdw_unlzma (int fd, off_t start_offset, void *mapped, size_t mapped_size, void **whole, size_t *whole_size) internal_function; +extern Dwfl_Error __libdw_unzstd (int fd, off_t start_offset, + void *mapped, size_t mapped_size, + void **whole, size_t *whole_size) + internal_function; /* Skip the image header before a file image: updates *START_OFFSET. */ extern Dwfl_Error __libdw_image_header (int fd, off_t *start_offset, diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 548cb56f..6edb27f2 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -357,6 +357,9 @@ check_suffix (const FTSENT *f, size_t namelen) #if USE_LZMA TRY (".ko.xz"); #endif +#if USE_ZSTD + TRY (".ko.zst"); +#endif return 0; diff --git a/libdwfl/open.c b/libdwfl/open.c index 35fc5283..77bd2bd9 100644 --- a/libdwfl/open.c +++ b/libdwfl/open.c @@ -44,6 +44,10 @@ # define __libdw_unlzma(...) DWFL_E_BADELF #endif +#if !USE_ZSTD +# define __libdw_unzstd(...) DWFL_E_BADELF +#endif + /* Consumes and replaces *ELF only on success. */ static Dwfl_Error decompress (int fd __attribute__ ((unused)), Elf **elf) @@ -64,6 +68,8 @@ decompress (int fd __attribute__ ((unused)), Elf **elf) error = __libdw_bunzip2 (fd, offset, mapped, mapped_size, &buffer, &size); if (error == DWFL_E_BADELF) error = __libdw_unlzma (fd, offset, mapped, mapped_size, &buffer, &size); + if (error == DWFL_E_BADELF) + error = __libdw_unzstd (fd, offset, mapped, mapped_size, &buffer, &size); if (error == DWFL_E_NOERROR) { diff --git a/libdwfl/zstd.c b/libdwfl/zstd.c new file mode 100644 index 00000000..dc4d5238 --- /dev/null +++ b/libdwfl/zstd.c @@ -0,0 +1,4 @@ +/* libzstd is pretty close to zlib and bzlib. */ + +#define ZSTD +#include "gzip.c" diff --git a/tests/ChangeLog b/tests/ChangeLog index 5f2b1449..5a8b5899 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-09-18 Mark Wielaard + + * run-readelf-compressed-zstd.sh: New test. + * Makefile.am (EXTRA_DISTS): Add run-readelf-compressed-zstd.sh. + (TESTS): Add run-readelf-compressed-zstd.sh if HAVE_ZSTD. + 2020-09-03 Mark Wielaard * run-readelf-frames.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index 4629ce64..9d0707da 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -204,6 +204,10 @@ if LZMA TESTS += run-readelf-s.sh run-dwflsyms.sh endif +if HAVE_ZSTD +TESTS += run-readelf-compressed-zstd.sh +endif + if HAVE_LIBASM check_PROGRAMS += $(asm_TESTS) TESTS += $(asm_TESTS) run-disasm-bpf.sh @@ -256,6 +260,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-nm-syms.sh testfilesyms32.bz2 testfilesyms64.bz2 \ run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \ run-readelf-compressed.sh \ + run-readelf-compressed-zstd.sh \ run-readelf-const-values.sh testfile-const-values.debug.bz2 \ run-addrcfi.sh run-dwarfcfi.sh \ testfile11-debugframe.bz2 testfile12-debugframe.bz2 \ diff --git a/tests/run-readelf-compressed-zstd.sh b/tests/run-readelf-compressed-zstd.sh new file mode 100755 index 00000000..96208092 --- /dev/null +++ b/tests/run-readelf-compressed-zstd.sh @@ -0,0 +1,39 @@ +#! /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 . + +. $srcdir/test-subr.sh + +if ! grep -q -F '#define USE_ZSTD' ${abs_top_builddir}/config.h; then + echo "elfutils built without zstd support" + exit 77 +fi + +# See run-strip-reloc.sh +testfiles hello_i386.ko + +tempfiles hello_i386.ko.zst readelf.out.1 readelf.out.2 + +testrun ${abs_top_builddir}/src/readelf -a hello_i386.ko > readelf.out.1 +zstd hello_i386.ko +testrun ${abs_top_builddir}/src/readelf -a hello_i386.ko.zst > readelf.out.2 + +diff -u readelf.out.1 readelf.out.2 +if [ $? != 0 ]; then + exit 1; +fi + +exit 0 -- cgit v1.2.1 From 82341762d78c5eeb7a8a53abb7d5e17980701f14 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 27 Sep 2020 21:07:12 +0200 Subject: readelf: Support showing view pairs in loclists as GNU extension. View pairs are encoded in .debug_loclists as they are encoded in .debug_locs sections by the GCC compiler. Scan for DW_AT_GNU_locviews attributes that point to the view pairs just in front of the actual location lists. Signed-off-by: Mark Wielaard --- src/ChangeLog | 9 +++++++ src/readelf.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0313d2a2..112b2242 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2020-09-28 Mark Wielaard + + * readelf.c (next_listptr_offset): Take idx as pointer, to be updated + and use new Dwarf_Off as offset to match. + (listptr_attr): New function. + (print_debug_loclists_section): Check for DW_AT_GNU_locviews to show + view pairs. + (print_debug_loc_section): Adjust next_listptr_offset call. + 2020-09-03 Mark Wielaard * readelf.c (print_cfa_program): Take ehdr as argument. Use it to diff --git a/src/readelf.c b/src/readelf.c index 64067a57..f6d13afa 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -4993,17 +4993,19 @@ skip_listptr_hole (struct listptr_table *table, size_t *idxp, } static Dwarf_Off -next_listptr_offset (struct listptr_table *table, size_t idx) +next_listptr_offset (struct listptr_table *table, size_t *idxp, Dwarf_Off off) { /* Note that multiple attributes could in theory point to the same loclist offset, so make sure we pick one that is bigger than the current one. The table is sorted on offset. */ - Dwarf_Off offset = table->table[idx].offset; - while (++idx < table->n) + if (*idxp < table->n) { - Dwarf_Off next = table->table[idx].offset; - if (next > offset) - return next; + while (++*idxp < table->n) + { + Dwarf_Off next = table->table[*idxp].offset; + if (next > off) + return next; + } } return 0; } @@ -5036,13 +5038,36 @@ listptr_cu (struct listptr_table *table, size_t *idxp, struct listptr *p = &table->table[*idxp]; *base = listptr_base (p); *cu = p->cu; - ++*idxp; return true; } return false; } +/* Returns the next index with the current CU for the given attribute. + If there is none false is returned, otherwise true. Assumes the + table has been sorted. */ +static bool +listptr_attr (struct listptr_table *table, size_t idxp, + Dwarf_Off offset, unsigned int attr) +{ + struct listptr *listptr; + do + { + listptr = get_listptr (table, idxp); + if (listptr == NULL) + return false; + + if (listptr->offset == offset && listptr->attr == attr) + return true; + + idxp++; + } + while (listptr->offset <= offset); + + return false; +} + static void print_debug_abbrev_section (Dwfl_Module *dwflmod __attribute__ ((unused)), Ebl *ebl, GElf_Ehdr *ehdr __attribute__ ((unused)), @@ -9171,6 +9196,43 @@ print_debug_loclists_section (Dwfl_Module *dwflmod, bool start_of_list = true; while (readp < nexthdr) { + Dwarf_Off off = (Dwarf_Off) (readp - (unsigned char *) data->d_buf); + if (listptr_attr (&known_loclistsptr, listptr_idx, off, + DW_AT_GNU_locviews)) + { + Dwarf_Off next_off = next_listptr_offset (&known_loclistsptr, + &listptr_idx, off); + const unsigned char *locp = readp; + const unsigned char *locendp; + if (next_off == 0 + || next_off > (size_t) (nexthdr - ((const unsigned char *) + data->d_buf))) + locendp = nexthdr; + else + locendp = (const unsigned char *) data->d_buf + next_off; + + printf (" Offset: %" PRIx64 ", Index: %" PRIx64 "\n", + (uint64_t) (readp - (unsigned char *) data->d_buf), + (uint64_t) (readp - offset_array_start)); + + while (locp < locendp) + { + uint64_t v1, v2; + get_uleb128 (v1, locp, locendp); + if (locp >= locendp) + { + printf (gettext (" \n")); + break; + } + get_uleb128 (v2, locp, locendp); + printf (" view pair %" PRId64 ", %" PRId64 "\n", v1, v2); + } + + printf ("\n"); + readp = (unsigned char *) locendp; + continue; + } + uint8_t kind = *readp++; uint64_t op1, op2, len; @@ -9502,7 +9564,7 @@ print_debug_loc_section (Dwfl_Module *dwflmod, if (attr == DW_AT_GNU_locviews) { Dwarf_Off next_off = next_listptr_offset (&known_locsptr, - listptr_idx); + &listptr_idx, offset); const unsigned char *locp = readp; const unsigned char *locendp; if (next_off == 0 -- cgit v1.2.1 From 759ee34bd265bf2aa54fab3158c6a498b26cc649 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 7 Oct 2020 19:03:20 -0400 Subject: debuginfod-find.1: Fix formatting on wide consoles The SYNOPSIS section looks less funny with missing .br directives added in. Signed-off-by: Frank Ch. Eigler --- doc/ChangeLog | 4 ++++ doc/debuginfod-find.1 | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index e0485004..ad17e992 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2020-10-07 Frank Ch. Eigler + + * debuginfod-find.1: Add missing .br for SYNOPSIS section. + 2020-06-19 Mark Wielaard * Makefile.am: Guard all client manpages with LIBDEBUGINFOD. diff --git a/doc/debuginfod-find.1 b/doc/debuginfod-find.1 index aeb1cb12..12d4ec2d 100644 --- a/doc/debuginfod-find.1 +++ b/doc/debuginfod-find.1 @@ -19,10 +19,15 @@ debuginfod-find \- request debuginfo-related data .SH SYNOPSIS .B debuginfod-find [\fIOPTION\fP]... debuginfo \fIBUILDID\fP +.br .B debuginfod-find [\fIOPTION\fP]... debuginfo \fIPATH\fP +.br .B debuginfod-find [\fIOPTION\fP]... executable \fIBUILDID\fP +.br .B debuginfod-find [\fIOPTION\fP]... executable \fIPATH\fP +.br .B debuginfod-find [\fIOPTION\fP]... source \fIBUILDID\fP \fI/FILENAME\fP +.br .B debuginfod-find [\fIOPTION\fP]... source \fIPATH\fP \fI/FILENAME\fP .SH DESCRIPTION -- cgit v1.2.1 From 94708e9646017a7ef1c819df3b71bb1ddf8300fc Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 1 Oct 2020 16:56:49 -0400 Subject: PR25461: add /etc/profile.d files for default $DEBUGINFOD_URLS To give distros a simple knob to let their userbase enjoy debuginfod services, we add a --enable-debuginfod-urls[=URLS] to the configury. This propagates to $DEBUGINFOD_URLS environment variable settings in /etc/profile.d/debuginfod.{sh,csh} files. The default is nothing. If simply enabled, the current prototype public server is used. If enabled with parameters, the builder/distro can specify a default URL search path of their own. Signed-off-by: Frank Ch. Eigler --- ChangeLog | 5 +++++ config/ChangeLog | 8 ++++++++ config/Makefile.am | 6 +++++- config/elfutils.spec.in | 5 +++-- config/profile.csh.in | 2 ++ config/profile.sh.in | 3 +++ configure.ac | 13 +++++++++++++ 7 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 config/profile.csh.in create mode 100644 config/profile.sh.in diff --git a/ChangeLog b/ChangeLog index 021b06f3..72e8397c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-10-01 Frank Ch. Eigler + + PR25461 + * configure.ac: Add --enable-debuginfod-urls[=URLS] option. + 2020-09-18 Mark Wielaard * configure.ac: Check availability of libzstd and zstd. diff --git a/config/ChangeLog b/config/ChangeLog index c8e4fcd4..9c31925f 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,11 @@ +2020-10-01 Frank Ch. Eigler + + PR25461 + * profile.sh.in, profile.csh.in: New files for /etc/profiles.d + to define $DEBUGINFOD_URLS. + * elfutils.spec.in: Configure with --enable-debuginfod-urls. + * Makefile.am: Install them. + 2020-09-18 Mark Wielaard * elfutils.spec.in: Add BuildRequires for libzstd-devel and zstd. diff --git a/config/Makefile.am b/config/Makefile.am index 11f17df0..ae6ffc9b 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -30,7 +30,7 @@ ## EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf \ libelf.pc.in libdw.pc.in libdebuginfod.pc.in \ - debuginfod.service debuginfod.sysconfig + debuginfod.service debuginfod.sysconfig profile.sh.in profile.csh.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libelf.pc libdw.pc @@ -38,6 +38,10 @@ if DEBUGINFOD pkgconfig_DATA += libdebuginfod.pc endif +install-data-local: + $(INSTALL_DATA) profile.sh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh + $(INSTALL_DATA) profile.csh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh + if MAINTAINER_MODE $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS @tmpname=$$(mktemp $${TMPDIR:-/tmp}/elfutils.XXXXXX); \ diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 37af1b07..170c95e5 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -181,7 +181,7 @@ such servers to download those files on demand. %setup -q %build -%configure --program-prefix=%{_programprefix} --enable-debuginfod +%configure --program-prefix=%{_programprefix} --enable-debuginfod --enable-debuginfod-urls make -s %{?_smp_mflags} %install @@ -296,7 +296,8 @@ fi %{_libdir}/libdebuginfod.so.* %{_bindir}/debuginfod-find %{_mandir}/man1/debuginfod-find.1* - +%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/profile.d/* + %files debuginfod-client-devel %defattr(-,root,root) %{_libdir}/pkgconfig/libdebuginfod.pc diff --git a/config/profile.csh.in b/config/profile.csh.in new file mode 100644 index 00000000..4f25896d --- /dev/null +++ b/config/profile.csh.in @@ -0,0 +1,2 @@ + +setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS @DEBUGINFOD_URLS@" diff --git a/config/profile.sh.in b/config/profile.sh.in new file mode 100644 index 00000000..8a022489 --- /dev/null +++ b/config/profile.sh.in @@ -0,0 +1,3 @@ + +DEBUGINFOD_URLS="$DEBUGINFOD_URLS @DEBUGINFOD_URLS@" +export DEBUGINFOD_URLS diff --git a/configure.ac b/configure.ac index 1b794df3..973409f1 100644 --- a/configure.ac +++ b/configure.ac @@ -731,6 +731,18 @@ AS_IF([test "x$enable_debuginfod" != "xno"], [ AS_IF([test "x$enable_debuginfod" != "xno"],AC_DEFINE([ENABLE_DEBUGINFOD],[1],[Build debuginfod])) AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"]) +dnl for /etc/profile.d/elfutils.{csh,sh} +default_debuginfod_urls="" +AC_ARG_ENABLE(debuginfod-urls, + [AS_HELP_STRING([--enable-debuginfod-urls@<:@=URLS@:>@],[add URLS to profile.d DEBUGINFOD_URLS])], + [if test "x${enableval}" = "xyes"; + then default_debuginfod_urls="https://debuginfod.elfutils.org/"; + elif test "x${enableval}" != "xno"; then + default_debuginfod_urls="${enableval}"; + fi], + [default_debuginfod_urls=""]) +AC_SUBST(DEBUGINFOD_URLS, $default_debuginfod_urls) +AC_CONFIG_FILES([config/profile.sh config/profile.csh]) AC_OUTPUT @@ -764,6 +776,7 @@ AC_MSG_NOTICE([ Extra Valgrind annotations : ${use_vg_annotations} libdebuginfod client support : ${enable_libdebuginfod} Debuginfod server support : ${enable_debuginfod} + Default DEBUGINFOD_URLS : ${default_debuginfod_urls} EXTRA TEST FEATURES (used with make check) have bunzip2 installed (required) : ${HAVE_BUNZIP2} -- cgit v1.2.1 From fee123fb771f46274dfc8260c00f5d3061de2cd2 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 8 Oct 2020 11:56:15 -0400 Subject: PR25461: uninstall /etc/profile.d files for distuninstallcheck No one uses "make uninstall" except the buildbot. Let's make it happy too. Signed-off-by: Frank Ch. Eigler --- config/ChangeLog | 6 +++++- config/Makefile.am | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/config/ChangeLog b/config/ChangeLog index 9c31925f..f93bbfd7 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,7 +1,11 @@ +2020-10-08 Frank Ch. Eigler + + * Makefile.am (uninstall-local): Uninstall the new profile.d files. + 2020-10-01 Frank Ch. Eigler PR25461 - * profile.sh.in, profile.csh.in: New files for /etc/profiles.d + * profile.sh.in, profile.csh.in: New files for /etc/profile.d to define $DEBUGINFOD_URLS. * elfutils.spec.in: Configure with --enable-debuginfod-urls. * Makefile.am: Install them. diff --git a/config/Makefile.am b/config/Makefile.am index ae6ffc9b..e56f32a5 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -42,6 +42,9 @@ install-data-local: $(INSTALL_DATA) profile.sh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh $(INSTALL_DATA) profile.csh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh +uninstall-local: + rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh + if MAINTAINER_MODE $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS @tmpname=$$(mktemp $${TMPDIR:-/tmp}/elfutils.XXXXXX); \ -- cgit v1.2.1 From e402d84c596705261d272bb047e94e824245411e Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 20 Oct 2020 19:26:04 -0400 Subject: debuginfod: suppress fdcache prefetching during dwz lookup During a recent from-scratch reindexing of the rpm/deb corpus at debuginfod.elfutils.org, we found the fdcache chewed up an abnormal amount of $TMPDIR space. This was due to internal .dwz lookups, which triggered fdcache prefetching as for a webapi query, but there was not a timely fdcache eviction pass to clean it up again. Rather than add that pass, it's better to suppress the prefetching completely, as an internal .dwz search will only ever need that file, not any others from the same archive. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod.cxx | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 8cb89967..688404e5 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-10-20 Frank Ch. Eigler + + * debuginfod.cxx (handle_buildid*): Add a parameter for detecting + internally-originated lookups for dwz resolution. + 2020-09-18 Frank Ch. Eigler * debuginfod.cxx (scan_source_file, archive_classify): Store only diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 140b7789..7907fecc 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -890,10 +890,12 @@ add_mhd_last_modified (struct MHD_Response *resp, time_t mtime) static struct MHD_Response* -handle_buildid_f_match (int64_t b_mtime, +handle_buildid_f_match (bool internal_req_t, + int64_t b_mtime, const string& b_source0, int *result_fd) { + (void) internal_req_t; // ignored int fd = open(b_source0.c_str(), O_RDONLY); if (fd < 0) { @@ -1226,7 +1228,8 @@ string canonicalized_archive_entry_pathname(struct archive_entry *e) static struct MHD_Response* -handle_buildid_r_match (int64_t b_mtime, +handle_buildid_r_match (bool internal_req_p, + int64_t b_mtime, const string& b_source0, const string& b_source1, int *result_fd) @@ -1330,7 +1333,8 @@ handle_buildid_r_match (int64_t b_mtime, // 3) extract some number of prefetched entries (just into fdcache) // 4) abort any further processing struct MHD_Response* r = 0; // will set in stage 2 - unsigned prefetch_count = fdcache_prefetch; // will decrement in stage 3 + unsigned prefetch_count = + internal_req_p ? 0 : fdcache_prefetch; // will decrement in stage 3 while(r == 0 || prefetch_count > 0) // stage 1, 2, or 3 { @@ -1424,16 +1428,17 @@ handle_buildid_r_match (int64_t b_mtime, static struct MHD_Response* -handle_buildid_match (int64_t b_mtime, +handle_buildid_match (bool internal_req_p, + int64_t b_mtime, const string& b_stype, const string& b_source0, const string& b_source1, int *result_fd) { if (b_stype == "F") - return handle_buildid_f_match(b_mtime, b_source0, result_fd); + return handle_buildid_f_match(internal_req_p, b_mtime, b_source0, result_fd); else if (b_stype == "R") - return handle_buildid_r_match(b_mtime, b_source0, b_source1, result_fd); + return handle_buildid_r_match(internal_req_p, b_mtime, b_source0, b_source1, result_fd); else return 0; } @@ -1531,7 +1536,8 @@ handle_buildid (MHD_Connection* conn, // Try accessing the located match. // XXX: in case of multiple matches, attempt them in parallel? - auto r = handle_buildid_match (b_mtime, b_stype, b_source0, b_source1, result_fd); + auto r = handle_buildid_match (conn ? false : true, + b_mtime, b_stype, b_source0, b_source1, result_fd); if (r) return r; } -- cgit v1.2.1 From 01348c28a2580e821d69d5063a014bd682ebdb26 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 20 Oct 2020 20:24:43 -0400 Subject: PR26756: add more prometheus metrics to debuginfod Add an error_count{} family of metrics for each libc/libarchive/http exception instance created during operation. Add a family of fdcache* metrics for tracking fdcache operations and status. Test via a injecting a permission-000 empty nothing.rpm in the testsuite. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 8 +++++ debuginfod/debuginfod.cxx | 69 ++++++++++++++++++++++++++++++++++---------- tests/ChangeLog | 6 ++++ tests/run-debuginfod-find.sh | 12 ++++++-- 4 files changed, 76 insertions(+), 19 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 688404e5..3341f187 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,11 @@ +2020-10-20 Frank Ch. Eigler + + PR26756: more prometheus metrics + * debuginfod.cxx (*_exception): Add counters for error occurrences. + (fdcache::*): Add counters for fdcache operations and status. + (fdcache::set_metric): New fn for overall stat counts. + (fdcache::limit): ... allow metric-less use from dtors. + 2020-10-20 Frank Ch. Eigler * debuginfod.cxx (handle_buildid*): Add a parameter for detecting diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 7907fecc..2b68ff1f 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -548,23 +548,31 @@ struct sqlite_exception: public reportable_exception struct libc_exception: public reportable_exception { libc_exception(int rc, const string& msg): - reportable_exception(string("libc error: ") + msg + ": " + string(strerror(rc) ?: "?")) {} + reportable_exception(string("libc error: ") + msg + ": " + string(strerror(rc) ?: "?")) { + inc_metric("error_count","libc",strerror(rc)); + } }; struct archive_exception: public reportable_exception { archive_exception(const string& msg): - reportable_exception(string("libarchive error: ") + msg) {} + reportable_exception(string("libarchive error: ") + msg) { + inc_metric("error_count","libarchive",msg); + } archive_exception(struct archive* a, const string& msg): - reportable_exception(string("libarchive error: ") + msg + ": " + string(archive_error_string(a) ?: "?")) {} + reportable_exception(string("libarchive error: ") + msg + ": " + string(archive_error_string(a) ?: "?")) { + inc_metric("error_count","libarchive",msg); + } }; struct elfutils_exception: public reportable_exception { elfutils_exception(int rc, const string& msg): - reportable_exception(string("elfutils error: ") + msg + ": " + string(elf_errmsg(rc) ?: "?")) {} + reportable_exception(string("elfutils error: ") + msg + ": " + string(elf_errmsg(rc) ?: "?")) { + inc_metric("error_count","elfutils",elf_errmsg(rc)); + } }; @@ -1085,6 +1093,15 @@ private: long max_mbs; public: + void set_metrics() + { + double total_mb = 0.0; + for (auto i = lru.begin(); i < lru.end(); i++) + total_mb += i->fd_size_mb; + set_metric("fdcache_bytes", (int64_t)(total_mb*1024.0*1024.0)); + set_metric("fdcache_count", lru.size()); + } + void intern(const string& a, const string& b, string fd, off_t sz, bool front_p) { { @@ -1095,19 +1112,27 @@ public: { unlink (i->fd.c_str()); lru.erase(i); + inc_metric("fdcache_op_count","op","dequeue"); break; // must not continue iterating } } double mb = (sz+65535)/1048576.0; // round up to 64K block fdcache_entry n = { a, b, fd, mb }; if (front_p) - lru.push_front(n); + { + inc_metric("fdcache_op_count","op","enqueue_front"); + lru.push_front(n); + } else - lru.push_back(n); - if (verbose > 3) - obatched(clog) << "fdcache interned a=" << a << " b=" << b - << " fd=" << fd << " mb=" << mb << " front=" << front_p << endl; + { + inc_metric("fdcache_op_count","op","enqueue_back"); + lru.push_back(n); + } + if (verbose > 3) + obatched(clog) << "fdcache interned a=" << a << " b=" << b + << " fd=" << fd << " mb=" << mb << " front=" << front_p << endl; } + set_metrics(); // NB: we age the cache at lookup time too if (front_p) @@ -1126,7 +1151,7 @@ public: fdcache_entry n = *i; lru.erase(i); // invalidates i, so no more iteration! lru.push_front(n); - + inc_metric("fdcache_op_count","op","requeue_front"); fd = open(n.fd.c_str(), O_RDONLY); // NB: no problem if dup() fails; looks like cache miss break; } @@ -1145,8 +1170,12 @@ public: for (auto i = lru.begin(); i < lru.end(); i++) { if (i->archive == a && i->entry == b) - return true; + { + inc_metric("fdcache_op_count","op","probe_hit"); + return true; + } } + inc_metric("fdcache_op_count","op","probe_miss"); return false; } @@ -1159,13 +1188,15 @@ public: { // found it; move it to head of lru fdcache_entry n = *i; lru.erase(i); // invalidates i, so no more iteration! + inc_metric("fdcache_op_count","op","clear"); unlink (n.fd.c_str()); + set_metrics(); return; } } } - void limit(long maxfds, long maxmbs) + void limit(long maxfds, long maxmbs, bool metrics_p = true) { if (verbose > 3 && (this->max_fds != maxfds || this->max_mbs != maxmbs)) obatched(clog) << "fdcache limited to maxfds=" << maxfds << " maxmbs=" << maxmbs << endl; @@ -1190,19 +1221,23 @@ public: if (verbose > 3) obatched(clog) << "fdcache evicted a=" << j->archive << " b=" << j->entry << " fd=" << j->fd << " mb=" << j->fd_size_mb << endl; + if (metrics_p) + inc_metric("fdcache_op_count","op","evict"); unlink (j->fd.c_str()); } lru.erase(i, lru.end()); // erase the nodes generally break; } - } + if (metrics_p) set_metrics(); } ~libarchive_fdcache() { - limit(0, 0); + // unlink any fdcache entries in $TMPDIR + // don't update metrics; those globals may be already destroyed + limit(0, 0, false); } }; static libarchive_fdcache fdcache; @@ -1638,6 +1673,8 @@ handle_buildid (MHD_Connection* conn, static map metrics; // arbitrary data for /metrics query // NB: store int64_t since all our metrics are integers; prometheus accepts double static mutex metrics_lock; +// NB: these objects get released during the process exit via global dtors +// do not call them from within other global dtors // utility function for assembling prometheus-compatible // name="escaped-value" strings @@ -2269,7 +2306,7 @@ scan_source_file (const string& rps, const stat_t& st, if (verbose > 3) obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; } - + ps_upsert_files .reset() .bind(1, dwarfsrc_canon) @@ -2441,7 +2478,7 @@ archive_classify (const string& rps, string& archive_extension, if (verbose > 3) obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl; } - + ps_upsert_files .reset() .bind(1, dwarfsrc_canon) diff --git a/tests/ChangeLog b/tests/ChangeLog index 5a8b5899..aa68ffd3 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-20 Frank Ch. Eigler + + PR26756: more prometheus metrics + * run-debuginfod-find.sh: Trigger some errors with dummy "nothing.rpm" + and check for new metrics. + 2020-09-18 Mark Wielaard * run-readelf-compressed-zstd.sh: New test. diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 730bb0e1..79976f70 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -95,6 +95,10 @@ wait_ready() fi } +# create a 000 empty .rpm file to evoke a metric-visible error +touch R/nothing.rpm +chmod 000 R/nothing.rpm + env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -F -R -d $DB -p $PORT1 -t0 -g0 --fdcache-fds 1 --fdcache-mbs 2 -Z .tar.xz -Z .tar.bz2=bzcat -v R F Z L > vlog4 2>&1 & PID1=$! tempfiles vlog4 @@ -240,8 +244,8 @@ fi cp -rvp ${abs_srcdir}/debuginfod-tars Z kill -USR1 $PID1 -# All rpms need to be in the index -rpms=$(find R -name \*rpm | wc -l) +# All rpms need to be in the index, except the dummy permission-000 one +rpms=$(find R -name \*rpm | grep -v nothing | wc -l) wait_ready $PORT1 'scanned_total{source=".rpm archive"}' $rpms txz=$(find Z -name \*tar.xz | wc -l) wait_ready $PORT1 'scanned_total{source=".tar.xz archive"}' $txz @@ -255,7 +259,7 @@ kill -USR1 $PID1 # two hits of SIGUSR1 may be needed to resolve .debug->dwz->sr mkdir extracted cd extracted subdir=0; -newrpms=$(find ../R -name \*\.rpm) +newrpms=$(find ../R -name \*\.rpm | grep -v nothing) for i in $newrpms; do subdir=$[$subdir+1]; mkdir $subdir; @@ -440,6 +444,8 @@ curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_duration_millisec curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_duration_milliseconds_sum' curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_transfer_bytes_count' curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_transfer_bytes_sum' +curl -s http://127.0.0.1:$PORT1/metrics | grep 'fdcache_' +curl -s http://127.0.0.1:$PORT1/metrics | grep 'error_count' # And generate a few errors into the second debuginfod's logs, for analysis just below curl -s http://127.0.0.1:$PORT2/badapi > /dev/null || true -- cgit v1.2.1 From e6031e78d207e976c3add03be7294388cd375682 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 23 Oct 2020 16:51:10 -0600 Subject: Fix bug in read_3ubyte_unaligned_inc The read_3ubyte_unaligned_inc macro calls read_2ubyte_unaligned, but it should call read_3ubyte_unaligned. Signed-off-by: Tom Tromey --- libdw/ChangeLog | 5 +++++ libdw/memory-access.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 8b0b583a..1ac4e8a9 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,8 @@ +2020-10-23 Tom Tromey + + * memory-access.h (read_3ubyte_unaligned_inc): Call + read_3ubyte_unaligned. + 2020-09-03 Mark Wielaard * dwarf.h: Add DW_CFA_AARCH64_negate_ra_state. diff --git a/libdw/memory-access.h b/libdw/memory-access.h index a39ad6d2..14436a71 100644 --- a/libdw/memory-access.h +++ b/libdw/memory-access.h @@ -363,7 +363,7 @@ read_3ubyte_unaligned (Dwarf *dbg, const unsigned char *p) #define read_3ubyte_unaligned_inc(Dbg, Addr) \ - ({ uint32_t t_ = read_2ubyte_unaligned (Dbg, Addr); \ + ({ uint32_t t_ = read_3ubyte_unaligned (Dbg, Addr); \ Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 3); \ t_; }) -- cgit v1.2.1 From c505ddf9b1965ede67295943154bf6a0295eab52 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 17 Oct 2020 21:22:22 +0200 Subject: libebl: Remove unused ebl_syscall_abi. GCC11 -Warray-parameter warned about ebl_syscall_abi being inconsistently declared (once with a pointer to int, once with an array of 6 int elements). Since ebl_syscall_abi isn't actually used and was only implemented for 3 backends without any tests just remove it. Signed-off-by: Mark Wielaard --- backends/ChangeLog | 12 +++++++++++ backends/Makefile.am | 6 +++--- backends/i386_init.c | 1 - backends/i386_syscall.c | 50 -------------------------------------------- backends/ppc64_init.c | 1 - backends/ppc_init.c | 1 - backends/ppc_syscall.c | 53 ----------------------------------------------- backends/x86_64_init.c | 1 - backends/x86_64_syscall.c | 50 -------------------------------------------- libebl/ChangeLog | 9 ++++++++ libebl/Makefile.am | 2 +- libebl/ebl-hooks.h | 4 ---- libebl/ebl_syscall_abi.c | 40 ----------------------------------- libebl/eblopenbackend.c | 17 --------------- libebl/libebl.h | 8 ------- 15 files changed, 25 insertions(+), 230 deletions(-) delete mode 100644 backends/i386_syscall.c delete mode 100644 backends/ppc_syscall.c delete mode 100644 backends/x86_64_syscall.c delete mode 100644 libebl/ebl_syscall_abi.c diff --git a/backends/ChangeLog b/backends/ChangeLog index ce4c971e..2f632a31 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,15 @@ +2020-10-19 Mark Wielard + + * Makefile.am (i386_SRCS): Remove i386_syscall.c. + (x86_64_SRCS): Remove x86_64_syscall.c. + (ppc_SRCS): Remove ppc_syscall.c. + * i386_init.c (i386_init): Remove syscall_abi HOOK. + * i386_syscall.c: Delete. + * ppc64_init.c (ppc64_init): Remove syscall_abi HOOK. + * ppc_syscall.c: Delete. + * x86_64_init.c (x86_64_init): Remove syscall_abi HOOK. + * x86_64_syscall.c: Delete. + 2020-08-28 Mark Wielard * aarch64_init.c (aarch64_init): Hook dynamic_tag_name and diff --git a/backends/Makefile.am b/backends/Makefile.am index f4052125..3849f457 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am @@ -40,13 +40,13 @@ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ tilegx m68k bpf riscv csky i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ - i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ + i386_retval.c i386_regs.c i386_auxv.c \ i386_initreg.c i386_unwind.c sh_SRCS = sh_init.c sh_symbol.c sh_corenote.c sh_regs.c sh_retval.c x86_64_SRCS = x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \ - x86_64_retval.c x86_64_regs.c x86_64_syscall.c x86_64_initreg.c \ + x86_64_retval.c x86_64_regs.c x86_64_initreg.c \ x86_64_unwind.c x32_corenote.c @@ -67,7 +67,7 @@ sparc_SRCS = sparc_init.c sparc_symbol.c sparc_regs.c sparc_retval.c \ sparc_cfi.c sparc_initreg.c ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \ - ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ + ppc_corenote.c ppc_auxv.c ppc_attrs.c \ ppc_cfi.c ppc_initreg.c ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c ppc64_corenote.c \ diff --git a/backends/i386_init.c b/backends/i386_init.c index 3f6b9ed1..579e5fad 100644 --- a/backends/i386_init.c +++ b/backends/i386_init.c @@ -52,7 +52,6 @@ i386_init (Elf *elf __attribute__ ((unused)), HOOK (eh, debugscn_p); HOOK (eh, return_value_location); HOOK (eh, register_info); - HOOK (eh, syscall_abi); HOOK (eh, auxv_info); HOOK (eh, disasm); HOOK (eh, abi_cfi); diff --git a/backends/i386_syscall.c b/backends/i386_syscall.c deleted file mode 100644 index 535dcd86..00000000 --- a/backends/i386_syscall.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Linux/i386 system call ABI in DWARF register numbers. - Copyright (C) 2008 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#define BACKEND i386_ -#include "libebl_CPU.h" - -int -i386_syscall_abi (Ebl *ebl __attribute__ ((unused)), - int *sp, int *pc, int *callno, int args[6]) -{ - *sp = 4; /* %esp */ - *pc = 8; /* %eip */ - *callno = 0; /* %eax */ - args[0] = 3; /* %ebx */ - args[1] = 1; /* %ecx */ - args[2] = 2; /* %edx */ - args[3] = 6; /* %esi */ - args[4] = 7; /* %edi */ - args[5] = 5; /* %ebp */ - return 0; -} diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c index f509aef6..ffc9842c 100644 --- a/backends/ppc64_init.c +++ b/backends/ppc64_init.c @@ -58,7 +58,6 @@ ppc64_init (Elf *elf __attribute__ ((unused)), HOOK (eh, bss_plt_p); HOOK (eh, return_value_location); HOOK (eh, register_info); - HOOK (eh, syscall_abi); HOOK (eh, core_note); HOOK (eh, auxv_info); HOOK (eh, check_object_attribute); diff --git a/backends/ppc_init.c b/backends/ppc_init.c index ac440ab2..08468f8f 100644 --- a/backends/ppc_init.c +++ b/backends/ppc_init.c @@ -54,7 +54,6 @@ ppc_init (Elf *elf __attribute__ ((unused)), HOOK (eh, bss_plt_p); HOOK (eh, return_value_location); HOOK (eh, register_info); - HOOK (eh, syscall_abi); HOOK (eh, core_note); HOOK (eh, auxv_info); HOOK (eh, check_object_attribute); diff --git a/backends/ppc_syscall.c b/backends/ppc_syscall.c deleted file mode 100644 index b1b9c52b..00000000 --- a/backends/ppc_syscall.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Linux/PPC system call ABI in DWARF register numbers. - Copyright (C) 2008 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#define BACKEND ppc_ -#include "libebl_CPU.h" - -int -ppc_syscall_abi (Ebl *ebl __attribute__ ((unused)), - int *sp, int *pc, int *callno, int args[6]) -{ - *sp = 1; - *pc = -1; - *callno = 0; - args[0] = 3; - args[1] = 4; - args[2] = 5; - args[3] = 6; - args[4] = 7; - args[5] = 8; - return 0; -} - -__typeof (ppc_syscall_abi) -ppc64_syscall_abi __attribute__ ((alias ("ppc_syscall_abi"))); diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c index 44c1ad28..8db9b643 100644 --- a/backends/x86_64_init.c +++ b/backends/x86_64_init.c @@ -56,7 +56,6 @@ x86_64_init (Elf *elf __attribute__ ((unused)), HOOK (eh, core_note); HOOK (eh, return_value_location); HOOK (eh, register_info); - HOOK (eh, syscall_abi); HOOK (eh, auxv_info); HOOK (eh, disasm); HOOK (eh, abi_cfi); diff --git a/backends/x86_64_syscall.c b/backends/x86_64_syscall.c deleted file mode 100644 index 0deb8bad..00000000 --- a/backends/x86_64_syscall.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Linux/x86-64 system call ABI in DWARF register numbers. - Copyright (C) 2008 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#define BACKEND x86_64_ -#include "libebl_CPU.h" - -int -x86_64_syscall_abi (Ebl *ebl __attribute__ ((unused)), - int *sp, int *pc, int *callno, int args[6]) -{ - *sp = 7; /* %rsp */ - *pc = 16; /* %rip */ - *callno = 0; /* %rax */ - args[0] = 5; /* %rdi */ - args[1] = 4; /* %rsi */ - args[2] = 1; /* %rdx */ - args[3] = 10; /* %r10 */ - args[4] = 8; /* %r8 */ - args[5] = 9; /* %r9 */ - return 0; -} diff --git a/libebl/ChangeLog b/libebl/ChangeLog index aa43b31f..dbf4b3b7 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,12 @@ +2020-10-19 Mark Wielaard + + * Makefile.am (libebl_a_SOURCES): Remove ebl_syscall_abi.c. + * ebl-hooks.h (syscall_abi): Remove. + * ebl_syscall_abi.c: Delete. + * eblopenbackend.c (default_syscall_abi): Remove. + (fill_defaults): Remove syscall_abi assignment. + * libebl.h (ebl_syscall_abi): Remove. + 2020-09-03 Mark Wielaard * eblobjnote.c (ebl_object_note): For EM_AARCH64 handle BTI and PAC diff --git a/libebl/Makefile.am b/libebl/Makefile.am index d0d475b8..d84e7ee2 100644 --- a/libebl/Makefile.am +++ b/libebl/Makefile.am @@ -51,7 +51,7 @@ libebl_a_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \ eblbsspltp.c eblretval.c eblreginfo.c eblnonerelocp.c \ eblrelativerelocp.c eblsysvhashentrysize.c eblauxvinfo.c \ eblcheckobjattr.c ebl_check_special_section.c \ - ebl_syscall_abi.c eblabicfi.c eblstother.c eblinitreg.c \ + eblabicfi.c eblstother.c eblinitreg.c \ ebldwarftoregno.c eblnormalizepc.c eblunwind.c \ eblresolvesym.c eblcheckreloctargettype.c \ ebl_data_marker_symbol.c diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h index 1e7960b8..1214bb84 100644 --- a/libebl/ebl-hooks.h +++ b/libebl/ebl-hooks.h @@ -142,10 +142,6 @@ ssize_t EBLHOOK(register_info) (Ebl *ebl, const char **prefix, const char **setname, int *bits, int *type); -/* Return system call ABI registers. */ -int EBLHOOK(syscall_abi) (Ebl *ebl, int *sp, int *pc, - int *callno, int args[6]); - /* Disassembler function. */ int EBLHOOK(disasm) (Ebl *ebl, const uint8_t **startp, const uint8_t *end, GElf_Addr addr, const char *fmt, DisasmOutputCB_t outcb, diff --git a/libebl/ebl_syscall_abi.c b/libebl/ebl_syscall_abi.c deleted file mode 100644 index a25369d2..00000000 --- a/libebl/ebl_syscall_abi.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Return system call ABI mapped to DWARF register numbers. - Copyright (C) 2008 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - - -int -ebl_syscall_abi (Ebl *ebl, int *sp, int *pc, int *callno, int *args) -{ - return ebl != NULL ? ebl->syscall_abi (ebl, sp, pc, callno, args) : -1; -} diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c index b3b6fc01..90a83f26 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -214,8 +214,6 @@ static ssize_t default_register_info (Ebl *ebl, const char **prefix, const char **setname, int *bits, int *type); -static int default_syscall_abi (Ebl *ebl, int *sp, int *pc, - int *callno, int args[6]); static bool default_check_object_attribute (Ebl *ebl, const char *vendor, int tag, uint64_t value, const char **tag_name, @@ -259,7 +257,6 @@ fill_defaults (Ebl *result) result->bss_plt_p = default_bss_plt_p; result->return_value_location = default_return_value_location; result->register_info = default_register_info; - result->syscall_abi = default_syscall_abi; result->check_object_attribute = default_check_object_attribute; result->check_reloc_target_type = default_check_reloc_target_type; result->disasm = NULL; @@ -690,20 +687,6 @@ default_register_info (Ebl *ebl __attribute__ ((unused)), return snprintf (name, namelen, "reg%d", regno); } -static int -default_syscall_abi (Ebl *ebl __attribute__ ((unused)), - int *sp, int *pc, int *callno, int args[6]) -{ - *sp = *pc = *callno = -1; - args[0] = -1; - args[1] = -1; - args[2] = -1; - args[3] = -1; - args[4] = -1; - args[5] = -1; - return -1; -} - static bool default_check_object_attribute (Ebl *ebl __attribute__ ((unused)), const char *vendor __attribute__ ((unused)), diff --git a/libebl/libebl.h b/libebl/libebl.h index 23c0e950..731001d3 100644 --- a/libebl/libebl.h +++ b/libebl/libebl.h @@ -241,14 +241,6 @@ extern ssize_t ebl_register_info (Ebl *ebl, const char **prefix, const char **setname, int *bits, int *type); -/* Fill in the DWARF register numbers for the registers used in system calls. - The SP and PC are what kernel reports call the user stack pointer and PC. - The CALLNO and ARGS are the system call number and incoming arguments. - Each of these is filled with the DWARF register number corresponding, - or -1 if there is none. Returns zero when the information is available. */ -extern int ebl_syscall_abi (Ebl *ebl, int *sp, int *pc, - int *callno, int args[6]); - /* Supply the ABI-specified state of DWARF CFI before CIE initial programs. The DWARF 3.0 spec says that the default initial states of all registers -- cgit v1.2.1 From e14a5561f7ccb7cec598767d6660a21e8049a818 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 17 Oct 2020 22:30:37 +0200 Subject: backends: Remove tilegx backend. Support for the Tilera TILE-Gx processor has been removed or deprecated in gcc and binutils already. There are no users and there is no way to test it. Signed-off-by: Mark Wielaard --- backends/ChangeLog | 12 ++++ backends/Makefile.am | 7 +-- backends/tilegx_corenote.c | 64 ------------------- backends/tilegx_init.c | 53 ---------------- backends/tilegx_regs.c | 129 ------------------------------------- backends/tilegx_reloc.def | 121 ----------------------------------- backends/tilegx_retval.c | 154 --------------------------------------------- backends/tilegx_symbol.c | 58 ----------------- libebl/ChangeLog | 5 ++ libebl/eblopenbackend.c | 3 +- tests/ChangeLog | 6 ++ tests/Makefile.am | 2 +- tests/run-allregs.sh | 69 -------------------- tests/testfile60.bz2 | Bin 2974 -> 0 bytes 14 files changed, 27 insertions(+), 656 deletions(-) delete mode 100644 backends/tilegx_corenote.c delete mode 100644 backends/tilegx_init.c delete mode 100644 backends/tilegx_regs.c delete mode 100644 backends/tilegx_reloc.def delete mode 100644 backends/tilegx_retval.c delete mode 100644 backends/tilegx_symbol.c delete mode 100755 tests/testfile60.bz2 diff --git a/backends/ChangeLog b/backends/ChangeLog index 2f632a31..81d4127c 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,15 @@ +2020-10-19 Mark Wielard + + * Makefile.am (modules): Remove tilegx. + (tilegx_SRCS): Removed. + (libebl_backends_a_SOURCES): Remove tilegx_SRCS. + * tilegx_corenote.c: Removed. + * tilegx_init.c: Removed. + * tilegx_regs.c: Removed. + * tilegx_reloc.def: Removed. + * tilegx_retval.c: Removed. + * tilegx_symbol.c: Removed. + 2020-10-19 Mark Wielard * Makefile.am (i386_SRCS): Remove i386_syscall.c. diff --git a/backends/Makefile.am b/backends/Makefile.am index 3849f457..62916c9c 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am @@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ - tilegx m68k bpf riscv csky + m68k bpf riscv csky i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ i386_retval.c i386_regs.c i386_auxv.c \ @@ -77,9 +77,6 @@ s390_SRCS = s390_init.c s390_symbol.c s390_regs.c s390_retval.c \ s390_corenote.c s390x_corenote.c s390_cfi.c s390_initreg.c \ s390_unwind.c -tilegx_SRCS = tilegx_init.c tilegx_symbol.c tilegx_regs.c \ - tilegx_retval.c tilegx_corenote.c - m68k_SRCS = m68k_init.c m68k_symbol.c m68k_regs.c \ m68k_retval.c m68k_corenote.c m68k_cfi.c m68k_initreg.c @@ -101,7 +98,7 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ - $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ + $(ppc64_SRCS) $(s390_SRCS) \ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) libebl_backends_pic_a_SOURCES = diff --git a/backends/tilegx_corenote.c b/backends/tilegx_corenote.c deleted file mode 100644 index be3e7dbf..00000000 --- a/backends/tilegx_corenote.c +++ /dev/null @@ -1,64 +0,0 @@ -/* TILE-Gx specific core note handling. - Copyright (C) 2012 Tilera Corporation - 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 . */ - - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#define BACKEND tilegx_ -#include "libebl_CPU.h" - -static const Ebl_Register_Location prstatus_regs[] = - { - { .offset = 0, .regno = 0, .count = 56, .bits = 64 }, /* r0-r55 */ - { .offset = 56 * 8, .regno = 64, .count = 1, .bits = 64 } /* pc */ - }; -#define PRSTATUS_REGS_SIZE (57 * 8) - -#define ULONG uint64_t -#define ALIGN_ULONG 8 -#define TYPE_ULONG ELF_T_XWORD -#define TYPE_LONG ELF_T_SXWORD -#define PID_T int32_t -#define UID_T uint32_t -#define GID_T uint32_t -#define ALIGN_PID_T 4 -#define ALIGN_UID_T 4 -#define ALIGN_GID_T 4 -#define TYPE_PID_T ELF_T_SWORD -#define TYPE_UID_T ELF_T_WORD -#define TYPE_GID_T ELF_T_WORD - -#include "linux-core-note.c" diff --git a/backends/tilegx_init.c b/backends/tilegx_init.c deleted file mode 100644 index 0f79542a..00000000 --- a/backends/tilegx_init.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Initialization of TILE-Gx specific backend library. - Copyright (C) 2012 Tilera Corporation - 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#define BACKEND tilegx_ -#define RELOC_PREFIX R_TILEGX_ -#include "libebl_CPU.h" - -/* This defines the common reloc hooks based on tilegx_reloc.def. */ -#include "common-reloc.c" - -Ebl * -tilegx_init (Elf *elf __attribute__ ((unused)), - GElf_Half machine __attribute__ ((unused)), - Ebl *eh) -{ - /* We handle it. */ - tilegx_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); - HOOK (eh, register_info); - HOOK (eh, core_note); - - return eh; -} diff --git a/backends/tilegx_regs.c b/backends/tilegx_regs.c deleted file mode 100644 index b1e17439..00000000 --- a/backends/tilegx_regs.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Register names and numbers for TILE-Gx DWARF. - Copyright (C) 2012 Tilera Corporation - 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 . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include - -#define BACKEND tilegx_ -#include "libebl_CPU.h" - -ssize_t -tilegx_register_info (Ebl *ebl __attribute__ ((unused)), - int regno, char *name, size_t namelen, - const char **prefix, const char **setname, - int *bits, int *type) -{ - if (name == NULL) - return 65; - - if (regno < 0 || regno > 64 || namelen < 5) - return -1; - - *prefix = ""; - *setname = "integer"; - *bits = 64; - - switch (regno) - { - case 0 ... 9: - *type = DW_ATE_signed; - name[0] = 'r'; - name[1] = regno + '0'; - namelen = 2; - break; - - case 10 ... 52: - *type = DW_ATE_signed; - name[0] = 'r'; - name[1] = regno / 10 + '0'; - name[2] = regno % 10 + '0'; - namelen = 3; - break; - - case 53: - *type = DW_ATE_address; - return stpcpy (name, "tp") + 1 - name; - - case 54: - *type = DW_ATE_address; - return stpcpy (name, "sp") + 1 - name; - - case 55: - *type = DW_ATE_address; - return stpcpy (name, "lr") + 1 - name; - - case 56: - *type = DW_ATE_unsigned; - return stpcpy (name, "sn") + 1 - name; - - case 57: - *type = DW_ATE_unsigned; - return stpcpy (name, "idn0") + 1 - name; - - case 58: - *type = DW_ATE_unsigned; - return stpcpy (name, "idn1") + 1 - name; - - case 59: - *type = DW_ATE_unsigned; - return stpcpy (name, "udn0") + 1 - name; - - case 60: - *type = DW_ATE_unsigned; - return stpcpy (name, "udn1") + 1 - name; - - case 61: - *type = DW_ATE_unsigned; - return stpcpy (name, "udn2") + 1 - name; - - case 62: - *type = DW_ATE_unsigned; - return stpcpy (name, "udn3") + 1 - name; - - case 63: - *type = DW_ATE_unsigned; - return stpcpy (name, "zero") + 1 - name; - - case 64: - *type = DW_ATE_address; - return stpcpy (name, "pc") + 1 - name; - - /* Can't happen. */ - default: - *setname = NULL; - return 0; - } - - name[namelen++] = '\0'; - return namelen; -} diff --git a/backends/tilegx_reloc.def b/backends/tilegx_reloc.def deleted file mode 100644 index 1018110d..00000000 --- a/backends/tilegx_reloc.def +++ /dev/null @@ -1,121 +0,0 @@ -/* List the relocation types for tilegx. -*- C -*- - Copyright (C) 2012 Tilera Corporation - Copyright (C) 2015 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 . */ - -/* NAME, REL|EXEC|DYN */ - -RELOC_TYPE (NONE, 0) -RELOC_TYPE (64, REL|EXEC|DYN) -RELOC_TYPE (32, REL|EXEC|DYN) -RELOC_TYPE (16, REL|EXEC|DYN) -RELOC_TYPE (8, REL|EXEC|DYN) -RELOC_TYPE (64_PCREL, REL) -RELOC_TYPE (32_PCREL, REL) -RELOC_TYPE (16_PCREL, REL) -RELOC_TYPE (8_PCREL, REL) -RELOC_TYPE (HW0, REL) -RELOC_TYPE (HW1, REL) -RELOC_TYPE (HW2, REL) -RELOC_TYPE (HW3, REL) -RELOC_TYPE (HW0_LAST, REL) -RELOC_TYPE (HW1_LAST, REL) -RELOC_TYPE (HW2_LAST, REL) -RELOC_TYPE (COPY, EXEC|DYN) -RELOC_TYPE (GLOB_DAT, EXEC|DYN) -RELOC_TYPE (JMP_SLOT, EXEC|DYN) -RELOC_TYPE (RELATIVE, EXEC|DYN) -RELOC_TYPE (BROFF_X1, REL) -RELOC_TYPE (JUMPOFF_X1, REL) -RELOC_TYPE (JUMPOFF_X1_PLT, REL) -RELOC_TYPE (IMM8_X0, REL) -RELOC_TYPE (IMM8_Y0, REL) -RELOC_TYPE (IMM8_X1, REL) -RELOC_TYPE (IMM8_Y1, REL) -RELOC_TYPE (DEST_IMM8_X1, REL) -RELOC_TYPE (MT_IMM14_X1, REL) -RELOC_TYPE (MF_IMM14_X1, REL) -RELOC_TYPE (MMSTART_X0, REL) -RELOC_TYPE (MMEND_X0, REL) -RELOC_TYPE (SHAMT_X0, REL) -RELOC_TYPE (SHAMT_X1, REL) -RELOC_TYPE (SHAMT_Y0, REL) -RELOC_TYPE (SHAMT_Y1, REL) -RELOC_TYPE (IMM16_X0_HW0, REL) -RELOC_TYPE (IMM16_X1_HW0, REL) -RELOC_TYPE (IMM16_X0_HW1, REL) -RELOC_TYPE (IMM16_X1_HW1, REL) -RELOC_TYPE (IMM16_X0_HW2, REL) -RELOC_TYPE (IMM16_X1_HW2, REL) -RELOC_TYPE (IMM16_X0_HW3, REL) -RELOC_TYPE (IMM16_X1_HW3, REL) -RELOC_TYPE (IMM16_X0_HW0_LAST, REL) -RELOC_TYPE (IMM16_X1_HW0_LAST, REL) -RELOC_TYPE (IMM16_X0_HW1_LAST, REL) -RELOC_TYPE (IMM16_X1_HW1_LAST, REL) -RELOC_TYPE (IMM16_X0_HW2_LAST, REL) -RELOC_TYPE (IMM16_X1_HW2_LAST, REL) -RELOC_TYPE (IMM16_X0_HW0_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW0_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW1_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW1_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW2_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW2_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW3_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW3_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW0_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW0_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW1_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW1_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW2_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X1_HW2_LAST_PCREL, REL) -RELOC_TYPE (IMM16_X0_HW0_GOT, REL) -RELOC_TYPE (IMM16_X1_HW0_GOT, REL) -RELOC_TYPE (IMM16_X0_HW0_LAST_GOT, REL) -RELOC_TYPE (IMM16_X1_HW0_LAST_GOT, REL) -RELOC_TYPE (IMM16_X0_HW1_LAST_GOT, REL) -RELOC_TYPE (IMM16_X1_HW1_LAST_GOT, REL) -RELOC_TYPE (IMM16_X0_HW0_TLS_GD, REL) -RELOC_TYPE (IMM16_X1_HW0_TLS_GD, REL) -RELOC_TYPE (IMM16_X0_HW0_LAST_TLS_GD, REL) -RELOC_TYPE (IMM16_X1_HW0_LAST_TLS_GD, REL) -RELOC_TYPE (IMM16_X0_HW1_LAST_TLS_GD, REL) -RELOC_TYPE (IMM16_X1_HW1_LAST_TLS_GD, REL) -RELOC_TYPE (IMM16_X0_HW0_TLS_IE, REL) -RELOC_TYPE (IMM16_X1_HW0_TLS_IE, REL) -RELOC_TYPE (IMM16_X0_HW0_LAST_TLS_IE, REL) -RELOC_TYPE (IMM16_X1_HW0_LAST_TLS_IE, REL) -RELOC_TYPE (IMM16_X0_HW1_LAST_TLS_IE, REL) -RELOC_TYPE (IMM16_X1_HW1_LAST_TLS_IE, REL) -RELOC_TYPE (TLS_DTPMOD64, EXEC|DYN) -RELOC_TYPE (TLS_DTPOFF64, EXEC|DYN) -RELOC_TYPE (TLS_TPOFF64, EXEC|DYN) -RELOC_TYPE (TLS_DTPMOD32, EXEC|DYN) -RELOC_TYPE (TLS_DTPOFF32, EXEC|DYN) -RELOC_TYPE (TLS_TPOFF32, EXEC|DYN) -RELOC_TYPE (GNU_VTINHERIT, REL) -RELOC_TYPE (GNU_VTENTRY, REL) diff --git a/backends/tilegx_retval.c b/backends/tilegx_retval.c deleted file mode 100644 index 7f7d24b0..00000000 --- a/backends/tilegx_retval.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Function return value location for Linux/TILE-Gx ABI. - Copyright (C) 2012 Tilera Corporation - Copyright (C) 2014 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 . */ - - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include - -#define BACKEND tilegx_ -#include "libebl_CPU.h" - - -/* r0. */ -static const Dwarf_Op loc_intreg[] = - { - { .atom = DW_OP_reg0 } - }; -#define nloc_intreg 1 - -/* The return value is a structure and is actually stored in stack space - passed in a hidden argument by the caller. But, the compiler - helpfully returns the address of that space in r0. */ -static const Dwarf_Op loc_aggregate[] = - { - { .atom = DW_OP_breg0, .number = 0 } - }; -#define nloc_aggregate 1 - -int -tilegx_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -{ - /* Start with the function's type, and get the DW_AT_type attribute, - which is the type of the return value. */ - Dwarf_Die die_mem, *typedie = &die_mem; - int tag = dwarf_peeled_die_type (functypedie, typedie); - if (tag <= 0) - return tag; - - Dwarf_Word size; - switch (tag) - { - case -1: - return -1; - - case DW_TAG_subrange_type: - if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) - { - Dwarf_Attribute attr_mem, *attr; - attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); - typedie = dwarf_formref_die (attr, &die_mem); - tag = DWARF_TAG_OR_RETURN (typedie); - } - FALLTHROUGH; - - case DW_TAG_base_type: - case DW_TAG_enumeration_type: - case DW_TAG_pointer_type: - case DW_TAG_ptr_to_member_type: - { - Dwarf_Attribute attr_mem; - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, - &attr_mem), &size) != 0) - { - if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) - size = 8; - else - return -1; - } - if (tag == DW_TAG_base_type) - { - Dwarf_Word encoding; - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, - &attr_mem), - &encoding) != 0) - return -1; - } - } - - /* Small enough structs are passed directly in registers R0 ... R7. */ - if (size <= 8) - { - intreg: - *locp = loc_intreg; - return nloc_intreg; - } - - FALLTHROUGH; - case DW_TAG_structure_type: - case DW_TAG_class_type: - case DW_TAG_union_type: - aggregate: - *locp = loc_aggregate; - return nloc_aggregate; - - case DW_TAG_array_type: - case DW_TAG_string_type: - if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 8) - { - if (tag == DW_TAG_array_type) - { - Dwarf_Attribute attr_mem, *attr; - /* Check if it's a character array. */ - attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); - typedie = dwarf_formref_die (attr, &die_mem); - tag = DWARF_TAG_OR_RETURN (typedie); - if (tag != DW_TAG_base_type) - goto aggregate; - if (dwarf_formudata (dwarf_attr_integrate (typedie, - DW_AT_byte_size, - &attr_mem), - &size) != 0) - return -1; - if (size != 1) - goto aggregate; - } - goto intreg; - } - goto aggregate; - } - - /* XXX We don't have a good way to return specific errors from ebl calls. - This value means we do not understand the type, but it is well-formed - DWARF and might be valid. */ - return -2; -} diff --git a/backends/tilegx_symbol.c b/backends/tilegx_symbol.c deleted file mode 100644 index 62a46907..00000000 --- a/backends/tilegx_symbol.c +++ /dev/null @@ -1,58 +0,0 @@ -/* TILEGX-specific symbolic name handling. - Copyright (C) 2012 Tilera Corporation - 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 . */ - - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include - -#define BACKEND tilegx_ -#include "libebl_CPU.h" - -/* Check for the simple reloc types. */ -Elf_Type -tilegx_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, - int *addsub __attribute__ ((unused))) -{ - switch (type) - { - case R_TILEGX_64: - return ELF_T_SXWORD; - case R_TILEGX_32: - return ELF_T_SWORD; - case R_TILEGX_16: - return ELF_T_HALF; - case R_TILEGX_8: - return ELF_T_BYTE; - default: - return ELF_T_NUM; - } -} diff --git a/libebl/ChangeLog b/libebl/ChangeLog index dbf4b3b7..863e4d55 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,8 @@ +2020-10-19 Mark Wielaard + + * eblopenbackend.c (tilegx_init): Removed. + (machines): Set init to NULL for tilegx. + 2020-10-19 Mark Wielaard * Makefile.am (libebl_a_SOURCES): Remove ebl_syscall_abi.c. diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c index 90a83f26..a8af1658 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -52,7 +52,6 @@ Ebl *sparc_init (Elf *, GElf_Half, Ebl *); Ebl *ppc_init (Elf *, GElf_Half, Ebl *); Ebl *ppc64_init (Elf *, GElf_Half, Ebl *); Ebl *s390_init (Elf *, GElf_Half, Ebl *); -Ebl *tilegx_init (Elf *, GElf_Half, Ebl *); Ebl *m68k_init (Elf *, GElf_Half, Ebl *); Ebl *bpf_init (Elf *, GElf_Half, Ebl *); Ebl *riscv_init (Elf *, GElf_Half, Ebl *); @@ -79,7 +78,6 @@ static const struct { x86_64_init, "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB }, { ppc_init, "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB }, { ppc64_init, "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB }, - { tilegx_init, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, // XXX class and machine fields need to be filled in for all archs. { sh_init, "elf_sh", "sh", 2, EM_SH, 0, 0 }, { arm_init, "ebl_arm", "arm", 3, EM_ARM, 0, 0 }, @@ -88,6 +86,7 @@ static const struct { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, + { NULL, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, { NULL, "elf_m88k", "m88k", 4, EM_88K, 0, 0 }, diff --git a/tests/ChangeLog b/tests/ChangeLog index aa68ffd3..43714ff1 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-19 Mark Wielaard + + * testfile60.bz2: Removed. + * Makefile.am (EXTRA_DIST): Remove testfile60.bz2. + * run-allregs.sh: Remove tilegx testfile60 testcase. + 2020-10-20 Frank Ch. Eigler PR26756: more prometheus metrics diff --git a/tests/Makefile.am b/tests/Makefile.am index 9d0707da..bc5d034f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -367,7 +367,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-macro-test.sh testfile-macinfo.bz2 testfile-macros.bz2 \ run-elf_cntl_gelf_getshdr.sh \ run-test-archive64.sh testarchive64.a.bz2 \ - testfile60.bz2 testfile61.bz2 \ + testfile61.bz2 \ run-readelf-vmcoreinfo.sh testfile62.bz2 \ run-readelf-mixed-corenote.sh testfile63.bz2 testfile64.bz2 \ testfile65.bz2 testfile67.bz2 testfile68.bz2 \ diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh index 1422bd67..87b16c95 100755 --- a/tests/run-allregs.sh +++ b/tests/run-allregs.sh @@ -2585,75 +2585,6 @@ FPU registers: 63: $fpcr (fpcr), unsigned 64 bits EOF -regs_test testfile60 <<\EOF -integer registers: - 0: r0 (r0), signed 64 bits - 1: r1 (r1), signed 64 bits - 2: r2 (r2), signed 64 bits - 3: r3 (r3), signed 64 bits - 4: r4 (r4), signed 64 bits - 5: r5 (r5), signed 64 bits - 6: r6 (r6), signed 64 bits - 7: r7 (r7), signed 64 bits - 8: r8 (r8), signed 64 bits - 9: r9 (r9), signed 64 bits - 10: r10 (r10), signed 64 bits - 11: r11 (r11), signed 64 bits - 12: r12 (r12), signed 64 bits - 13: r13 (r13), signed 64 bits - 14: r14 (r14), signed 64 bits - 15: r15 (r15), signed 64 bits - 16: r16 (r16), signed 64 bits - 17: r17 (r17), signed 64 bits - 18: r18 (r18), signed 64 bits - 19: r19 (r19), signed 64 bits - 20: r20 (r20), signed 64 bits - 21: r21 (r21), signed 64 bits - 22: r22 (r22), signed 64 bits - 23: r23 (r23), signed 64 bits - 24: r24 (r24), signed 64 bits - 25: r25 (r25), signed 64 bits - 26: r26 (r26), signed 64 bits - 27: r27 (r27), signed 64 bits - 28: r28 (r28), signed 64 bits - 29: r29 (r29), signed 64 bits - 30: r30 (r30), signed 64 bits - 31: r31 (r31), signed 64 bits - 32: r32 (r32), signed 64 bits - 33: r33 (r33), signed 64 bits - 34: r34 (r34), signed 64 bits - 35: r35 (r35), signed 64 bits - 36: r36 (r36), signed 64 bits - 37: r37 (r37), signed 64 bits - 38: r38 (r38), signed 64 bits - 39: r39 (r39), signed 64 bits - 40: r40 (r40), signed 64 bits - 41: r41 (r41), signed 64 bits - 42: r42 (r42), signed 64 bits - 43: r43 (r43), signed 64 bits - 44: r44 (r44), signed 64 bits - 45: r45 (r45), signed 64 bits - 46: r46 (r46), signed 64 bits - 47: r47 (r47), signed 64 bits - 48: r48 (r48), signed 64 bits - 49: r49 (r49), signed 64 bits - 50: r50 (r50), signed 64 bits - 51: r51 (r51), signed 64 bits - 52: r52 (r52), signed 64 bits - 53: tp (tp), address 64 bits - 54: sp (sp), address 64 bits - 55: lr (lr), address 64 bits - 56: sn (sn), unsigned 64 bits - 57: idn0 (idn0), unsigned 64 bits - 58: idn1 (idn1), unsigned 64 bits - 59: udn0 (udn0), unsigned 64 bits - 60: udn1 (udn1), unsigned 64 bits - 61: udn2 (udn2), unsigned 64 bits - 62: udn3 (udn3), unsigned 64 bits - 63: zero (zero), unsigned 64 bits - 64: pc (pc), address 64 bits -EOF - regs_test testfile61 <<\EOF integer registers: 0: r0 (r0), signed 32 bits diff --git a/tests/testfile60.bz2 b/tests/testfile60.bz2 deleted file mode 100755 index 6a0cd7bc..00000000 Binary files a/tests/testfile60.bz2 and /dev/null differ -- cgit v1.2.1 From 5621fe5443da23112170235dd5cac161e5c75e65 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 19 Oct 2020 10:17:59 +0200 Subject: libdw: dwarf_frame_register takes an array of at least 3 Dwarf_Ops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC11 will warn about a mismatch in the declaration of dwarf_frame_register: dwarf_frame_register.c:37:61: error: argument 3 of type ‘Dwarf_Op *’ declared as a pointer [-Werror=array-parameter=] 37 | dwarf_frame_register (Dwarf_Frame *fs, int regno, Dwarf_Op *ops_mem, | ~~~~~~~~~~^~~~~~~ libdw.h:1068:43: note: previously declared as an array ‘Dwarf_Op[3]’ 1068 | Dwarf_Op ops_mem[3], | ~~~~~~~~~^~~~~~~~~~ When fixing that it will show an actual bug in the addrcfi testcase: addrcfi.c:98:16: error: ‘dwarf_frame_register’ accessing 96 bytes in a region of size 64 [-Werror=stringop-overflow=] 98 | int result = dwarf_frame_register (stuff->frame, regno, ops_mem, &ops, &nops); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ addrcfi.c:98:16: note: referencing argument 3 of type ‘Dwarf_Op *’ 1069 | extern int dwarf_frame_register (Dwarf_Frame *frame, int regno, | ^~~~~~~~~~~~~~~~~~~~ Fix the declaration, fix the bug and add an extra comment to the description in libdw.h. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 7 +++++++ libdw/dwarf_frame_register.c | 2 +- libdw/libdw.h | 8 +++++--- tests/ChangeLog | 4 ++++ tests/addrcfi.c | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 1ac4e8a9..731c7e79 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,10 @@ +2020-10-19 Mark Wielaard + + * dwarf_frame_register.c (dwarf_frame_register): Declare ops_mem + as array of (at least) 3 elements. + * libdw.h (dwarf_frame_register): Add extra explanation of ops_mem + argument. + 2020-10-23 Tom Tromey * memory-access.h (read_3ubyte_unaligned_inc): Call diff --git a/libdw/dwarf_frame_register.c b/libdw/dwarf_frame_register.c index d0159fb8..bcf3fa03 100644 --- a/libdw/dwarf_frame_register.c +++ b/libdw/dwarf_frame_register.c @@ -34,7 +34,7 @@ #include int -dwarf_frame_register (Dwarf_Frame *fs, int regno, Dwarf_Op *ops_mem, +dwarf_frame_register (Dwarf_Frame *fs, int regno, Dwarf_Op ops_mem[3], Dwarf_Op **ops, size_t *nops) { /* Maybe there was a previous error. */ diff --git a/libdw/libdw.h b/libdw/libdw.h index 1a4e15a1..f63cab1b 100644 --- a/libdw/libdw.h +++ b/libdw/libdw.h @@ -1061,9 +1061,11 @@ extern int dwarf_frame_cfa (Dwarf_Frame *frame, Dwarf_Op **ops, size_t *nops) caller's REGNO is "same_value", i.e. this frame did not change it; ask the caller frame where to find it. - For common simple expressions *OPS is OPS_MEM. For arbitrary DWARF - expressions in the CFI, *OPS is an internal pointer that can be used as - long as the Dwarf_CFI used to create FRAME remains alive. */ + For common simple expressions *OPS is OPS_MEM (which is a caller + owned array for at least 3 Dwarf_Ops). For arbitrary DWARF + expressions in the CFI, *OPS is an internal pointer that can be + used as long as the Dwarf_CFI used to create FRAME remains + alive. */ extern int dwarf_frame_register (Dwarf_Frame *frame, int regno, Dwarf_Op ops_mem[3], Dwarf_Op **ops, size_t *nops) diff --git a/tests/ChangeLog b/tests/ChangeLog index 43714ff1..e9d1e260 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-10-19 Mark Wielaard + + * addrcfi.c (print_register): Make ops_mem 3 elements. + 2020-10-19 Mark Wielaard * testfile60.bz2: Removed. diff --git a/tests/addrcfi.c b/tests/addrcfi.c index 589b8513..2b7d7bd0 100644 --- a/tests/addrcfi.c +++ b/tests/addrcfi.c @@ -92,7 +92,7 @@ print_register (void *arg, printf ("\t%s reg%u (%s%s): ", setname, regno, prefix, regname); - Dwarf_Op ops_mem[2]; + Dwarf_Op ops_mem[3]; Dwarf_Op *ops; size_t nops; int result = dwarf_frame_register (stuff->frame, regno, ops_mem, &ops, &nops); -- cgit v1.2.1 From 747a84b60e672cd7dedfb5f618ddd44770aada8e Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 25 Oct 2020 20:07:46 +0100 Subject: debuginfod: Translate CURLE_PEER_FAILED_VERIFICATION to ECONNREFUSED. When a file couldn't be retrieved because of an bad HTTPS certificate find-debuginfod currently says: Server query failed: No such file or directory With this patch it will say: Server query failed: Connection refused Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 1 + doc/ChangeLog | 5 +++++ doc/debuginfod_find_debuginfo.3 | 3 ++- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 3341f187..55857233 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2020-10-25 Mark Wielaard + + * debuginfod-client.c (debuginfod_query_server): Translate + CURLE_PEER_FAILED_VERIFICATION to ECONNREFUSED. + 2020-10-20 Frank Ch. Eigler PR26756: more prometheus metrics diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index 18e7b85f..0e5177bc 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -871,6 +871,7 @@ debuginfod_query_server (debuginfod_client *c, case CURLE_COULDNT_RESOLVE_HOST: rc = -EHOSTUNREACH; break; // no NXDOMAIN case CURLE_URL_MALFORMAT: rc = -EINVAL; break; case CURLE_COULDNT_CONNECT: rc = -ECONNREFUSED; break; + case CURLE_PEER_FAILED_VERIFICATION: rc = -ECONNREFUSED; break; case CURLE_REMOTE_ACCESS_DENIED: rc = -EACCES; break; case CURLE_WRITE_ERROR: rc = -EIO; break; case CURLE_OUT_OF_MEMORY: rc = -ENOMEM; break; diff --git a/doc/ChangeLog b/doc/ChangeLog index ad17e992..bde52c11 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2020-10-25 Mark Wielaard + + * debuginfod_find_debuginfo.3 (ECONNREFUSED): Document that this + is also returned for a bad HTTPS server certificate. + 2020-10-07 Frank Ch. Eigler * debuginfod-find.1: Add missing .br for SYNOPSIS section. diff --git a/doc/debuginfod_find_debuginfo.3 b/doc/debuginfod_find_debuginfo.3 index d9717d73..eec04e5e 100644 --- a/doc/debuginfod_find_debuginfo.3 +++ b/doc/debuginfod_find_debuginfo.3 @@ -254,7 +254,8 @@ Denied access to resource located at the URL. .TP .BR ECONNREFUSED -Unable to connect to remote host. +Unable to connect to remote host. Also returned when an HTTPS connection +couldn't be verified (bad certificate). .TP .BR ECONNRESET -- cgit v1.2.1 From e7e4c92650892cf67210be5ea89ffba967427cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Tue, 27 Oct 2020 16:19:58 -0300 Subject: unstrip: Stop using strndupa. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This functon has inherent safety issues, since a long enough path can lead to memory clobbering. Due to the recursive nature of make_directories(), multiple calls could also stack overflow. Instead, the string can be allocated in the heap. As a bonus, this improves musl compatibility, since musl doesn't include the strndupa macro for now. Also add braces around while loop. Signed-off-by: Érico Rolim --- src/ChangeLog | 4 ++++ src/unstrip.c | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 112b2242..7f923c5d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2020-10-27 Érico N. Rolim + + * unstrip.c (make_directories): Use strndup, not strndupa. + 2020-09-28 Mark Wielaard * readelf.c (next_listptr_offset): Take idx as pointer, to be updated diff --git a/src/unstrip.c b/src/unstrip.c index a855038a..0257d9cc 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -311,12 +311,18 @@ make_directories (const char *path) if (lastslash == path) return; - char *dir = strndupa (path, lastslash - path); + char *dir = strndup (path, lastslash - path); + if (dir == NULL) + error(EXIT_FAILURE, errno, _("memory exhausted")); + while (mkdir (dir, 0777) < 0 && errno != EEXIST) - if (errno == ENOENT) - make_directories (dir); - else - error (EXIT_FAILURE, errno, _("cannot create directory '%s'"), dir); + { + if (errno == ENOENT) + make_directories (dir); + else + error (EXIT_FAILURE, errno, _("cannot create directory '%s'"), dir); + } + free (dir); } /* Keep track of new section data we are creating, so we can free it -- cgit v1.2.1 From 56f64c94651f4840e890c1963f9d6f6a4123abde Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 28 Oct 2020 12:36:57 +0100 Subject: libelf: Sync elf.h from glibc. Makes elf.h standalone and removes __BEGIN_DECLS/__END_DECLS macros. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 4 ++++ libelf/elf.h | 6 ------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index a3f15883..b15508f2 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,7 @@ +2020-10-28 Mark Wielaard + + * elf.h: Update from glibc. + 2020-08-28 Mark Wielaard * elf.h: Update from glibc. diff --git a/libelf/elf.h b/libelf/elf.h index ff9f1dad..6439c1a4 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -19,10 +19,6 @@ #ifndef _ELF_H #define _ELF_H 1 -#include - -__BEGIN_DECLS - /* Standard ELF types. */ #include @@ -4105,6 +4101,4 @@ enum #define R_ARC_TLS_LE_S9 0x4a #define R_ARC_TLS_LE_32 0x4b -__END_DECLS - #endif /* elf.h */ -- cgit v1.2.1 From 70343f484481184f9fa216071399690ff833256b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 28 Oct 2020 17:26:42 -0600 Subject: Fix leb128 reading PR 26773 points out that some sleb128 values are decoded incorrectly. This version of the fix only examines the sleb128 conversion. Overlong encodings are not handled, and the uleb128 decoders are not touched. The approach taken here is to do the work in an unsigned type, and then rely on an implementation-defined cast to convert to signed. Signed-off-by: Tom Tromey --- .gitignore | 1 + ChangeLog | 4 ++ libdw/ChangeLog | 10 +++ libdw/dwarf_getlocation.c | 5 +- libdw/memory-access.h | 42 +++++++++-- tests/ChangeLog | 7 ++ tests/Makefile.am | 6 +- tests/leb128.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 238 insertions(+), 10 deletions(-) create mode 100644 tests/leb128.c diff --git a/.gitignore b/.gitignore index c9790941..d737b14d 100644 --- a/.gitignore +++ b/.gitignore @@ -151,6 +151,7 @@ Makefile.in /tests/get-units-invalid /tests/get-units-split /tests/hash +/tests/leb128 /tests/line2addr /tests/low_high_pc /tests/msg_tst diff --git a/ChangeLog b/ChangeLog index 72e8397c..4c8699f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-10-28 Tom Tromey + + * .gitignore: Add /tests/leb128. + 2020-10-01 Frank Ch. Eigler PR25461 diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 731c7e79..289bb4c9 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,13 @@ +2020-10-28 Tom Tromey + + PR26773 + * dwarf_getlocation.c (store_implicit_value): Use + __libdw_get_uleb128_unchecked. + * memory-access.h (get_sleb128_step): Assume unsigned type for + 'var'. + (__libdw_get_sleb128, __libdw_get_sleb128_unchecked): Work in + unsigned type. Handle final byte. + 2020-10-19 Mark Wielaard * dwarf_frame_register.c (dwarf_frame_register): Declare ops_mem diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index 4617f9e9..f2bad5a9 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -130,9 +130,8 @@ store_implicit_value (Dwarf *dbg, void **cache, Dwarf_Op *op) struct loc_block_s *block = libdw_alloc (dbg, struct loc_block_s, sizeof (struct loc_block_s), 1); const unsigned char *data = (const unsigned char *) (uintptr_t) op->number2; - uint64_t len = __libdw_get_uleb128 (&data, data + len_leb128 (Dwarf_Word)); - if (unlikely (len != op->number)) - return -1; + /* Skip the block length. */ + __libdw_get_uleb128_unchecked (&data); block->addr = op; block->data = (unsigned char *) data; block->length = op->number; diff --git a/libdw/memory-access.h b/libdw/memory-access.h index 14436a71..8b2386ee 100644 --- a/libdw/memory-access.h +++ b/libdw/memory-access.h @@ -113,19 +113,22 @@ __libdw_get_uleb128_unchecked (const unsigned char **addrp) #define get_sleb128_step(var, addr, nth) \ do { \ unsigned char __b = *(addr)++; \ + (var) |= (typeof (var)) (__b & 0x7f) << ((nth) * 7); \ if (likely ((__b & 0x80) == 0)) \ { \ - struct { signed int i:7; } __s = { .i = __b }; \ - (var) |= (typeof (var)) __s.i * ((typeof (var)) 1 << ((nth) * 7)); \ + if ((__b & 0x40) != 0) \ + (var) |= - ((typeof (var)) 1 << (((nth) + 1) * 7)); \ return (var); \ } \ - (var) |= (typeof (var)) (__b & 0x7f) << ((nth) * 7); \ } while (0) static inline int64_t __libdw_get_sleb128 (const unsigned char **addrp, const unsigned char *end) { - int64_t acc = 0; + /* Do the work in an unsigned type, but use implementation-defined + behavior to cast to signed on return. This avoids some undefined + behavior when shifting. */ + uint64_t acc = 0; /* Unroll the first step to help the compiler optimize for the common single-byte case. */ @@ -134,6 +137,20 @@ __libdw_get_sleb128 (const unsigned char **addrp, const unsigned char *end) const size_t max = __libdw_max_len_sleb128 (*addrp - 1, end); for (size_t i = 1; i < max; ++i) get_sleb128_step (acc, *addrp, i); + if (*addrp == end) + return INT64_MAX; + + /* There might be one extra byte. */ + unsigned char b = **addrp; + ++*addrp; + if (likely ((b & 0x80) == 0)) + { + /* We only need the low bit of the final byte, and as it is the + sign bit, we don't need to do anything else here. */ + acc |= ((typeof (acc)) b) << 7 * max; + return acc; + } + /* Other implementations set VALUE to INT_MAX in this case. So we better do this as well. */ return INT64_MAX; @@ -142,7 +159,10 @@ __libdw_get_sleb128 (const unsigned char **addrp, const unsigned char *end) static inline int64_t __libdw_get_sleb128_unchecked (const unsigned char **addrp) { - int64_t acc = 0; + /* Do the work in an unsigned type, but use implementation-defined + behavior to cast to signed on return. This avoids some undefined + behavior when shifting. */ + uint64_t acc = 0; /* Unroll the first step to help the compiler optimize for the common single-byte case. */ @@ -152,6 +172,18 @@ __libdw_get_sleb128_unchecked (const unsigned char **addrp) const size_t max = len_leb128 (int64_t) - 1; for (size_t i = 1; i < max; ++i) get_sleb128_step (acc, *addrp, i); + + /* There might be one extra byte. */ + unsigned char b = **addrp; + ++*addrp; + if (likely ((b & 0x80) == 0)) + { + /* We only need the low bit of the final byte, and as it is the + sign bit, we don't need to do anything else here. */ + acc |= ((typeof (acc)) b) << 7 * max; + return acc; + } + /* Other implementations set VALUE to INT_MAX in this case. So we better do this as well. */ return INT64_MAX; diff --git a/tests/ChangeLog b/tests/ChangeLog index e9d1e260..91aeadaf 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2020-10-28 Tom Tromey + + PR26773 + * Makefile.am (check_PROGRAMS, TESTS): Add leb128. + (leb128_LDADD): New variable. + * leb128.c: New file. + 2020-10-19 Mark Wielaard * addrcfi.c (print_register): Make ops_mem 3 elements. diff --git a/tests/Makefile.am b/tests/Makefile.am index bc5d034f..1b51ab8d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -63,7 +63,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ all-dwarf-ranges unit-info next_cfi \ elfcopy addsections xlate_notes elfrdwrnop \ dwelf_elf_e_machine_string \ - getphdrnum + getphdrnum leb128 asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -185,7 +185,8 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-elfclassify.sh run-elfclassify-self.sh \ run-disasm-riscv64.sh \ run-pt_gnu_prop-tests.sh \ - run-getphdrnum.sh run-test-includes.sh + run-getphdrnum.sh run-test-includes.sh \ + leb128 if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -694,6 +695,7 @@ xlate_notes_LDADD = $(libelf) elfrdwrnop_LDADD = $(libelf) dwelf_elf_e_machine_string_LDADD = $(libelf) $(libdw) getphdrnum_LDADD = $(libelf) $(libdw) +leb128_LDADD = $(libelf) $(libdw) # We want to test the libelf header against the system elf.h header. # Don't include any -I CPPFLAGS. Except when we install our own elf.h. diff --git a/tests/leb128.c b/tests/leb128.c new file mode 100644 index 00000000..47b57c0d --- /dev/null +++ b/tests/leb128.c @@ -0,0 +1,173 @@ +/* Test program for leb128 + Copyright (C) 2020 Tom Tromey + 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 . */ + +#include +#include +#include +#include +#include +#include "../libdw/libdwP.h" +#include "../libdw/memory-access.h" + +#define OK 0 +#define FAIL 1 + +static const unsigned char v0[] = { 0x0 }; +static const unsigned char v1[] = { 0x1 }; +static const unsigned char v23[] = { 23 }; +static const unsigned char vm_1[] = { 0x7f }; +static const unsigned char vm_2[] = { 0x7e }; +static const unsigned char s127[] = { 0xff, 0x00 }; +static const unsigned char v128[] = { 0x80, 0x01 }; +static const unsigned char v129[] = { 0x81, 0x01 }; +static const unsigned char vm_127[] = { 0x81, 0x7f }; +static const unsigned char vm_128[] = { 0x80, 0x7f }; +static const unsigned char vm_129[] = { 0xff, 0x7e }; +static const unsigned char vhuge[] = + { + 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0 + }; +static const unsigned char most_positive[] = + { + 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f + }; +static const unsigned char most_negative[] = + { + 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x40 + }; +static const unsigned char minus_one[] = + { + 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f + }; +static const unsigned char int64_max_m1[] = + { + 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00 + }; +static const unsigned char int64_min_p1[] = + { + 0x81, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x7f + }; + +static int +test_one_sleb (const unsigned char *data, size_t len, int64_t expect) +{ + int64_t value; + const unsigned char *p; + + p = data; + get_sleb128 (value, p, p + len); + if (value != expect || p != data + len) + return FAIL; + + p = data; + get_sleb128_unchecked (value, p); + if (value != expect || p != data + len) + return FAIL; + + return OK; +} + +static int +test_sleb (void) +{ +#define TEST(ARRAY, V) \ + if (test_one_sleb (ARRAY, sizeof (ARRAY), V) != OK) \ + return FAIL; + + TEST (v0, 0); + TEST (v1, 1); + TEST (v23, 23); + TEST (vm_1, -1); + TEST (vm_2, -2); + TEST (s127, 127); + TEST (v128, 128); + TEST (v129, 129); + TEST (vm_127, -127); + TEST (vm_128, -128); + TEST (vm_129, -129); + TEST (vhuge, 9223372036854775807ll); + TEST (most_positive, 4611686018427387903ll); + TEST (most_negative, -4611686018427387904ll); + TEST (minus_one, -1); + TEST (int64_max_m1, INT64_MAX - 1); + TEST (int64_min_p1, INT64_MIN + 1); + +#undef TEST + + return OK; +} + +static int +test_one_uleb (const unsigned char *data, size_t len, uint64_t expect) +{ + uint64_t value; + const unsigned char *p; + + p = data; + get_uleb128 (value, p, p + len); + if (value != expect || p != data + len) + return FAIL; + + p = data; + get_uleb128_unchecked (value, p); + if (value != expect || p != data + len) + return FAIL; + + return OK; +} + +static int +test_uleb (void) +{ +#define TEST(ARRAY, V) \ + if (test_one_uleb (ARRAY, sizeof (ARRAY), V) != OK) \ + return FAIL; + + TEST (v0, 0); + TEST (v1, 1); + TEST (v23, 23); + TEST (vm_1, 127); + TEST (vm_2, 126); + TEST (s127, 127); + TEST (v128, 128); + TEST (v129, 129); + TEST (vm_127, 16257); + TEST (vm_128, 16256); + TEST (vm_129, 16255); + TEST (vhuge, 9223372036854775807ull); + TEST (most_positive, 4611686018427387903ull); + TEST (most_negative, 4611686018427387904ull); + TEST (minus_one, 9223372036854775807ull); + TEST (int64_max_m1, INT64_MAX - 1); + TEST (int64_min_p1, INT64_MIN + 1); + +#undef TEST + + return OK; +} + +int +main (void) +{ + return test_sleb () || test_uleb (); +} -- cgit v1.2.1 From 4c39dc18bbba4801c016c0b24d03d697fb14aa24 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 25 Oct 2020 20:40:33 +0100 Subject: tests: Add read_unaligned testcase Run tests/read_unaligned 1 on a big endian and little endian machine to generate the le_mem and be_mem arrays. The one byte variants are kind of impossible to get wrong, but including them makes sure the other variants are not naturally aligned in memory. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 6 + tests/Makefile.am | 5 +- tests/read_unaligned.c | 564 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 573 insertions(+), 2 deletions(-) create mode 100644 tests/read_unaligned.c diff --git a/tests/ChangeLog b/tests/ChangeLog index 91aeadaf..d0149bab 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-25 Mark Wielaard + + * read_unaligned.c: New test. + * Makefile.am (check_PROGRAMS, TESTS): Add read_unaligned. + (read_unaligned_LDADD): New variable. + 2020-10-28 Tom Tromey PR26773 diff --git a/tests/Makefile.am b/tests/Makefile.am index 1b51ab8d..84f6e88e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -63,7 +63,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ all-dwarf-ranges unit-info next_cfi \ elfcopy addsections xlate_notes elfrdwrnop \ dwelf_elf_e_machine_string \ - getphdrnum leb128 + getphdrnum leb128 read_unaligned asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -186,7 +186,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ run-disasm-riscv64.sh \ run-pt_gnu_prop-tests.sh \ run-getphdrnum.sh run-test-includes.sh \ - leb128 + leb128 read_unaligned if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -696,6 +696,7 @@ elfrdwrnop_LDADD = $(libelf) dwelf_elf_e_machine_string_LDADD = $(libelf) $(libdw) getphdrnum_LDADD = $(libelf) $(libdw) leb128_LDADD = $(libelf) $(libdw) +read_unaligned_LDADD = $(libelf) $(libdw) # We want to test the libelf header against the system elf.h header. # Don't include any -I CPPFLAGS. Except when we install our own elf.h. diff --git a/tests/read_unaligned.c b/tests/read_unaligned.c new file mode 100644 index 00000000..15e0c002 --- /dev/null +++ b/tests/read_unaligned.c @@ -0,0 +1,564 @@ +/* Test program for read_[type]_unaligned. + Copyright (C) 2020, 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 . */ + +#include +#include +#include +#include +#include +#include + +#include "../libdw/libdwP.h" +#include "../libdw/memory-access.h" + +union u8 +{ + uint8_t v; + unsigned char c[1]; +}; + +union s8 +{ + int8_t v; + unsigned char c[1]; +}; + +union u16 +{ + uint16_t v; + unsigned char c[2]; +}; + +union s16 +{ + int16_t v; + unsigned char c[2]; +}; + +union u24 +{ + uint32_t v:24; + unsigned char c[3]; +} __attribute__((packed)); + +union u32 +{ + uint32_t v; + unsigned char c[4]; +}; + +union s32 +{ + int32_t v; + unsigned char c[4]; +}; + +union u64 +{ + uint64_t v; + unsigned char c[8]; +}; + +union s64 +{ + uint64_t v; + unsigned char c[8]; +}; + +uint8_t u8_nums[] = + { + 0, + 1, + UINT8_MAX / 2 - 1, + UINT8_MAX / 2, + UINT8_MAX / 2 + 1, + UINT8_MAX, + UINT8_MAX -1 + }; + +int8_t s8_nums[] = + { + INT8_MIN, + INT8_MIN + 1, + -1, + 0, + 1, + INT8_MAX, + INT8_MAX - 1 + }; + +uint16_t u16_nums[] = + { + 0, + 1, + UINT16_MAX / 2 - 1, + UINT16_MAX / 2, + UINT16_MAX / 2 + 1, + UINT16_MAX, + UINT16_MAX -1 + }; + +int16_t s16_nums[] = + { + INT16_MIN, + INT16_MIN + 1, + -1, + 0, + 1, + INT16_MAX, + INT16_MAX - 1 + }; + +#define UINT24_MAX 0xffffff + +uint32_t u24_nums[] = + { + 0, + 1, + UINT24_MAX / 2 - 1, + UINT24_MAX / 2, + UINT24_MAX / 2 + 1, + UINT24_MAX, + UINT24_MAX -1 + }; + +uint32_t u32_nums[] = + { + 0, + 1, + UINT32_MAX / 2 - 1, + UINT32_MAX / 2, + UINT32_MAX / 2 + 1, + UINT32_MAX, + UINT32_MAX -1 + }; + +int32_t s32_nums[] = + { + INT32_MIN, + INT32_MIN + 1, + -1, + 0, + 1, + INT32_MAX, + INT32_MAX - 1 + }; + +uint64_t u64_nums[] = + { + 0, + 1, + UINT64_MAX / 2 - 1, + UINT64_MAX / 2, + UINT64_MAX / 2 + 1, + UINT64_MAX, + UINT64_MAX -1 + }; + +int64_t s64_nums[] = + { + INT64_MIN, + INT64_MIN + 1, + -1, + 0, + 1, + INT64_MAX, + INT64_MAX - 1 + }; + +static unsigned char le_mem[] = + { + /* u8 */ + 0x00, + 0x01, + 0x7e, + 0x7f, + 0x80, + 0xff, + 0xfe, + /* s8 */ + 0x80, + 0x81, + 0xff, + 0x00, + 0x01, + 0x7f, + 0x7e, + /* u16 */ + 0x00, 0x00, + 0x01, 0x00, + 0xfe, 0x7f, + 0xff, 0x7f, + 0x00, 0x80, + 0xff, 0xff, + 0xfe, 0xff, + /* s16 */ + 0x00, 0x80, + 0x01, 0x80, + 0xff, 0xff, + 0x00, 0x00, + 0x01, 0x00, + 0xff, 0x7f, + 0xfe, 0x7f, + /* u24 */ + 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, + 0xfe, 0xff, 0x7f, + 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, + 0xfe, 0xff, 0xff, + /* u32 */ + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x7f, + 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xff, 0xff, 0xff, + /* s32 */ + 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x7f, + /* u64 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* s64 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + }; + +static unsigned char be_mem[] = + { + /* u8 */ + 0x00, + 0x01, + 0x7e, + 0x7f, + 0x80, + 0xff, + 0xfe, + /* s8 */ + 0x80, + 0x81, + 0xff, + 0x00, + 0x01, + 0x7f, + 0x7e, + /* u16 */ + 0x00, 0x00, + 0x00, 0x01, + 0x7f, 0xfe, + 0x7f, 0xff, + 0x80, 0x00, + 0xff, 0xff, + 0xff, 0xfe, + /* s16 */ + 0x80, 0x00, + 0x80, 0x01, + 0xff, 0xff, + 0x00, 0x00, + 0x00, 0x01, + 0x7f, 0xff, + 0x7f, 0xfe, + /* u24 */ + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, + 0x7f, 0xff, 0xfe, + 0x7f, 0xff, 0xff, + 0x80, 0x00, 0x00, + 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, + /* u32 */ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x7f, 0xff, 0xff, 0xfe, + 0x7f, 0xff, 0xff, 0xff, + 0x80, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, + /* s32 */ + 0x80, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x01, + 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x7f, 0xff, 0xff, 0xff, + 0x7f, 0xff, 0xff, 0xfe, + /* u64 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + /* s64 */ + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + }; + +int +main (int argc, char **argv __attribute__((unused))) +{ + /* No arguments means check, otherwise Write out the memory array. */ + bool write = false; + if (argc > 1) + write = true; + + bool is_le = (BYTE_ORDER == LITTLE_ENDIAN); + + if (write) + { + if (is_le) + printf ("static unsigned char le_mem[] =\n"); + else + printf ("static unsigned char be_mem[] =\n"); + printf (" {\n"); + } + + Dwarf dbg_le = { .other_byte_order = !is_le }; + Dwarf dbg_be = { .other_byte_order = is_le }; + + unsigned char *p_le = le_mem; + unsigned char *p_be = be_mem; + + union u8 u8; + if (write) + printf (" /* u8 */\n"); + for (size_t i = 0; i < sizeof (u8_nums) / sizeof (u8); i++) + { + if (write) + { + u8.v = u8_nums[i]; + printf (" 0x%02" PRIx8 ",\n", u8.c[0]); + } + else + { + uint8_t v = *p_le++; + assert (v == u8_nums[i]); + v = *p_be++; + assert (v == u8_nums[i]); + } + } + + union s8 s8; + if (write) + printf (" /* s8 */\n"); + for (size_t i = 0; i < sizeof (s8_nums) / sizeof (s8); i++) + { + if (write) + { + s8.v = s8_nums[i]; + printf (" 0x%02" PRIx8 ",\n", s8.c[0]); + } + else + { + int8_t v = *p_le++; + assert (v == s8_nums[i]); + v = *p_be++; + assert (v == s8_nums[i]); + } + } + + union u16 u16; + if (write) + printf (" /* u16 */\n"); + for (size_t i = 0; i < sizeof (u16_nums) / sizeof (u16); i++) + { + if (write) + { + u16.v = u16_nums[i]; + printf (" 0x%02" PRIx8 ", ", u16.c[0]); + printf ("0x%02" PRIx8 ",\n", u16.c[1]); + } + else + { + uint16_t v = read_2ubyte_unaligned_inc (&dbg_le, p_le); + assert (v == u16_nums[i]); + v = read_2ubyte_unaligned_inc (&dbg_be, p_be); + assert (v == u16_nums[i]); + } + } + + union s16 s16; + if (write) + printf (" /* s16 */\n"); + for (size_t i = 0; i < sizeof (s16_nums) / sizeof (s16); i++) + { + if (write) + { + s16.v = s16_nums[i]; + printf (" 0x%02" PRIx8 ", ", s16.c[0]); + printf ("0x%02" PRIx8 ",\n", s16.c[1]); + } + else + { + int16_t v = read_2sbyte_unaligned_inc (&dbg_le, p_le); + assert (v == s16_nums[i]); + v = read_2sbyte_unaligned_inc (&dbg_be, p_be); + assert (v == s16_nums[i]); + } + } + + union u24 u24; + if (write) + printf (" /* u24 */\n"); + for (size_t i = 0; i < sizeof (u24_nums) / sizeof (uint32_t); i++) + { + if (write) + { + u24.v = u24_nums[i]; + printf (" 0x%02" PRIx8 ", ", u24.c[0]); + printf ("0x%02" PRIx8 ", ", u24.c[1]); + printf ("0x%02" PRIx8 ",\n", u24.c[2]); + } + else + { + uint32_t v = read_3ubyte_unaligned_inc (&dbg_le, p_le); + assert (v == u24_nums[i]); + v = read_3ubyte_unaligned_inc (&dbg_be, p_be); + assert (v == u24_nums[i]); + } + } + + union u32 u32; + if (write) + printf (" /* u32 */\n"); + for (size_t i = 0; i < sizeof (u32_nums) / sizeof (u32); i++) + { + if (write) + { + u32.v = u32_nums[i]; + printf (" 0x%02" PRIx8 ", ", u32.c[0]); + printf ("0x%02" PRIx8 ", ", u32.c[1]); + printf ("0x%02" PRIx8 ", ", u32.c[2]); + printf ("0x%02" PRIx8 ",\n", u32.c[3]); + } + else + { + uint32_t v = read_4ubyte_unaligned_inc (&dbg_le, p_le); + assert (v == u32_nums[i]); + v = read_4ubyte_unaligned_inc (&dbg_be, p_be); + assert (v == u32_nums[i]); + } + } + + union s32 s32; + if (write) + printf (" /* s32 */\n"); + for (size_t i = 0; i < sizeof (s32_nums) / sizeof (s32); i++) + { + if (write) + { + s32.v = s32_nums[i]; + printf (" 0x%02" PRIx8 ", ", s32.c[0]); + printf ("0x%02" PRIx8 ", ", s32.c[1]); + printf ("0x%02" PRIx8 ", ", s32.c[2]); + printf ("0x%02" PRIx8 ",\n", s32.c[3]); + } + else + { + int32_t v = read_4sbyte_unaligned_inc (&dbg_le, p_le); + assert (v == s32_nums[i]); + v = read_4sbyte_unaligned_inc (&dbg_be, p_be); + assert (v == s32_nums[i]); + } + } + + union u64 u64; + if (write) + printf (" /* u64 */\n"); + for (size_t i = 0; i < sizeof (u64_nums) / sizeof (u64); i++) + { + if (write) + { + u64.v = u64_nums[i]; + printf (" 0x%02" PRIx8 ", ", u64.c[0]); + printf ("0x%02" PRIx8 ", ", u64.c[1]); + printf ("0x%02" PRIx8 ", ", u64.c[2]); + printf ("0x%02" PRIx8 ", ", u64.c[3]); + printf ("0x%02" PRIx8 ", ", u64.c[4]); + printf ("0x%02" PRIx8 ", ", u64.c[5]); + printf ("0x%02" PRIx8 ", ", u64.c[6]); + printf ("0x%02" PRIx8 ",\n", u64.c[7]); + } + else + { + uint64_t v = read_8ubyte_unaligned_inc (&dbg_le, p_le); + assert (v == u64_nums[i]); + v = read_8ubyte_unaligned_inc (&dbg_be, p_be); + assert (v == u64_nums[i]); + } + } + + union s64 s64; + if (write) + printf (" /* s64 */\n"); + for (size_t i = 0; i < sizeof (s64_nums) / sizeof (s64); i++) + { + if (write) + { + s64.v = s64_nums[i]; + printf (" 0x%02" PRIx8 ", ", s64.c[0]); + printf ("0x%02" PRIx8 ", ", s64.c[1]); + printf ("0x%02" PRIx8 ", ", s64.c[2]); + printf ("0x%02" PRIx8 ", ", s64.c[3]); + printf ("0x%02" PRIx8 ", ", s64.c[4]); + printf ("0x%02" PRIx8 ", ", s64.c[5]); + printf ("0x%02" PRIx8 ", ", s64.c[6]); + printf ("0x%02" PRIx8 ",\n", s64.c[7]); + } + else + { + int64_t v = read_8sbyte_unaligned_inc (&dbg_le, p_le); + assert (v == s64_nums[i]); + v = read_8sbyte_unaligned_inc (&dbg_be, p_be); + assert (v == s64_nums[i]); + } + } + + if (write) + printf (" };\n"); + else + { + assert (p_le == le_mem + sizeof (le_mem)); + assert (p_be == be_mem + sizeof (be_mem)); + } + + return 0; +} -- cgit v1.2.1 From f5015aebdb33af71841a48efe51692917f63ee63 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 29 Oct 2020 12:20:51 -0400 Subject: PR26810: debuginfod should tolerate some absence/renaming sans grooming debuginfod now knows to handle a case where a buildid search is satisfiable from more than one source (e.g., archive location), but some of them are invalid. New exception catching beneath the sqlite scanning loop ensures all possible matches are scanned in case of errors. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 8 ++++++++ debuginfod/debuginfod.cxx | 32 +++++++++++++++++--------------- tests/ChangeLog | 6 ++++++ tests/run-debuginfod-find.sh | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 55857233..9eb9c813 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,11 @@ +2020-10-29 Frank Ch. Eigler + + PR26810 + * debuginfod.cxx (handle_buildid_*_match): Throw exceptions for + more lower level libc errors. + (handle_buildid_match): Catch & report exceptions but return 0 + for continued iteration in the caller. + 2020-10-25 Mark Wielaard * debuginfod-client.c (debuginfod_query_server): Translate diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 2b68ff1f..9da65d87 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -906,12 +906,7 @@ handle_buildid_f_match (bool internal_req_t, (void) internal_req_t; // ignored int fd = open(b_source0.c_str(), O_RDONLY); if (fd < 0) - { - if (verbose) - obatched(clog) << "cannot open " << b_source0 << endl; - // if still missing, a periodic groom pass will delete this buildid record - return 0; - } + throw libc_exception (errno, string("open ") + b_source0); // NB: use manual close(2) in error case instead of defer_dtor, because // in the normal case, we want to hand the fd over to libmicrohttpd for @@ -921,10 +916,8 @@ handle_buildid_f_match (bool internal_req_t, int rc = fstat(fd, &s); if (rc < 0) { - if (verbose) - clog << "cannot fstat " << b_source0 << endl; close(fd); - return 0; + throw libc_exception (errno, string("fstat ") + b_source0); } if ((int64_t) s.st_mtime != b_mtime) @@ -1470,12 +1463,21 @@ handle_buildid_match (bool internal_req_p, const string& b_source1, int *result_fd) { - if (b_stype == "F") - return handle_buildid_f_match(internal_req_p, b_mtime, b_source0, result_fd); - else if (b_stype == "R") - return handle_buildid_r_match(internal_req_p, b_mtime, b_source0, b_source1, result_fd); - else - return 0; + try + { + if (b_stype == "F") + return handle_buildid_f_match(internal_req_p, b_mtime, b_source0, result_fd); + else if (b_stype == "R") + return handle_buildid_r_match(internal_req_p, b_mtime, b_source0, b_source1, result_fd); + } + catch (const reportable_exception &e) + { + e.report(clog); + // Report but swallow libc etc. errors here; let the caller + // iterate to other matches of the content. + } + + return 0; } diff --git a/tests/ChangeLog b/tests/ChangeLog index d0149bab..6ea75d25 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-29 Frank Ch. Eigler + + PR26810 + * run-debuginfod-find.sh: Add tests for successful archive fetches across + renamed RPMs, even without grooming. + 2020-10-25 Mark Wielaard * read_unaligned.c: New test. diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 79976f70..52def364 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -357,6 +357,38 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find executable $BUILDID2 ######################################################################## +# PR26810: Now rename some files in the R directory, then rescan, so +# there are two copies of the same buildid in the index, one for the +# no-longer-existing file name, and one under the new name. + +# run a groom cycle to force server to drop its fdcache +kill -USR2 $PID1 # groom cycle +wait_ready $PORT1 'thread_work_total{role="groom"}' 3 +# move it around a couple of times to make it likely to hit a nonexistent entry during iteration +mv R/debuginfod-rpms/rhel7 R/debuginfod-rpms/rhel7renamed +kill -USR1 $PID1 # scan cycle +wait_ready $PORT1 'thread_work_total{role="traverse"}' 6 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 +mv R/debuginfod-rpms/rhel7renamed R/debuginfod-rpms/rhel7renamed2 +kill -USR1 $PID1 # scan cycle +wait_ready $PORT1 'thread_work_total{role="traverse"}' 7 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 +mv R/debuginfod-rpms/rhel7renamed2 R/debuginfod-rpms/rhel7renamed3 +kill -USR1 $PID1 # scan cycle +wait_ready $PORT1 'thread_work_total{role="traverse"}' 8 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 + +# retest rhel7 +archive_test bc1febfd03ca05e030f0d205f7659db29f8a4b30 /usr/src/debug/hello-1.0/hello.c $SHA +archive_test f0aa15b8aba4f3c28cac3c2a73801fefa644a9f2 /usr/src/debug/hello-1.0/hello.c $SHA + +egrep '(libc.error.*rhel7)|(bc1febfd03ca)|(f0aa15b8aba)' vlog4 + +######################################################################## + # Federation mode # find another unused port -- cgit v1.2.1 From 2237828857f064da554114c8027743418cad1a18 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 29 Oct 2020 14:25:18 -0400 Subject: PR26775: make grooming progress visible & interruptible On very large servers, it's desirable to be able to interrupt a rescan or groom cycle. SIGUSR[12] now do that. (Unfortunately, this is not practically testable in the testsuite, since these cycles are so fast on that small dataset.) We also expose more internal progress count about the grooming pass, so the administrator can assess possible need to interrupt. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 11 +++++++++++ debuginfod/debuginfod.cxx | 28 +++++++++++++++++++++++++--- doc/ChangeLog | 6 ++++++ doc/debuginfod.8 | 6 ++++-- tests/ChangeLog | 6 ++++++ tests/run-debuginfod-find.sh | 7 ++++--- 6 files changed, 56 insertions(+), 8 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 9eb9c813..5af4dc6c 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,14 @@ +2020-10-29 Frank Ch. Eigler + + PR26775 + * debuginfod.cxx (forced_*_count): Make these global. + (runq::clear): New function. + (thread_main_scanner): Check for pending SIGUSR2; interrupt. + (scan_source_paths): Check for pending SIGUSR2; interrupt. + (groom): Report prometheus stats before groom also. Check for + pending SIGUSR1; interrupt. Increment thread_work_total for + each file scanned, not the entire cycle. + 2020-10-29 Frank Ch. Eigler PR26810 diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 9da65d87..8448a501 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -388,7 +388,9 @@ static string db_path; static sqlite3 *db; // single connection, serialized across all our threads! static unsigned verbose; static volatile sig_atomic_t interrupted = 0; +static volatile sig_atomic_t forced_rescan_count = 0; static volatile sig_atomic_t sigusr1 = 0; +static volatile sig_atomic_t forced_groom_count = 0; static volatile sig_atomic_t sigusr2 = 0; static unsigned http_port = 8002; static unsigned rescan_s = 300; @@ -607,6 +609,14 @@ public: cv.notify_all(); } + // clear the workqueue, when scanning is interrupted with USR2 + void clear() { + unique_lock lock(mtx); + q.clear(); + set_metric("thread_work_pending","role","scan", q.size()); + cv.notify_all(); // maybe wake up waiting idlers + } + // block this scanner thread until there is work to do and no active bool wait_front (Payload& p) { @@ -2741,6 +2751,12 @@ thread_main_scanner (void* arg) } inc_metric("thread_work_total", "role","scan"); + + if (sigusr2 != forced_groom_count) // stop early if groom triggered + { + scanq.clear(); + break; + } } add_metric("thread_busy", "role", "scan", -1); @@ -2784,6 +2800,9 @@ scan_source_paths() { if (interrupted) break; + if (sigusr2 != forced_groom_count) // stop early if groom triggered + break; + fts_scanned ++; if (verbose > 2) @@ -2842,7 +2861,6 @@ thread_main_fts_source_paths (void* arg) { (void) arg; // ignore; we operate on global data - sig_atomic_t forced_rescan_count = 0; set_metric("thread_tid", "role","traverse", tid()); add_metric("thread_count", "role", "traverse", 1); @@ -2923,6 +2941,8 @@ void groom() struct timeval tv_start, tv_end; gettimeofday (&tv_start, NULL); + database_stats_report(); + // scan for files that have disappeared sqlite_ps files (db, "check old files", "select s.mtime, s.file, f.name from " BUILDIDS "_file_mtime_scanned s, " BUILDIDS "_files f " @@ -2951,6 +2971,10 @@ void groom() files_del_r_de.reset().bind(1,fileid).bind(2,mtime).step_ok_done(); files_del_scan.reset().bind(1,fileid).bind(2,mtime).step_ok_done(); } + + inc_metric("thread_work_total", "role", "groom"); + if (sigusr1 != forced_rescan_count) // stop early if scan triggered + break; } files.reset(); @@ -2987,7 +3011,6 @@ void groom() static void* thread_main_groom (void* /*arg*/) { - sig_atomic_t forced_groom_count = 0; set_metric("thread_tid", "role", "groom", tid()); add_metric("thread_count", "role", "groom", 1); @@ -3016,7 +3039,6 @@ thread_main_groom (void* /*arg*/) set_metric("thread_busy", "role", "groom", 1); groom (); last_groom = time(NULL); // NB: now was before grooming - inc_metric("thread_work_total", "role", "groom"); set_metric("thread_busy", "role", "groom", 0); } catch (const sqlite_exception& e) diff --git a/doc/ChangeLog b/doc/ChangeLog index bde52c11..8c33f174 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2020-10-29 Frank Ch. Eigler + + PR26775 + * debuginfod.8: Document that SIGUSR1 interrupts the groom + cycle, and SIGUSR2 interrupts rescan. + 2020-10-25 Mark Wielaard * debuginfod_find_debuginfo.3 (ECONNREFUSED): Document that this diff --git a/doc/debuginfod.8 b/doc/debuginfod.8 index a645ceed..152e368c 100644 --- a/doc/debuginfod.8 +++ b/doc/debuginfod.8 @@ -155,7 +155,8 @@ before doing it again. A rescan for unchanged files is fast (because the index also stores the file mtimes). A time of zero is acceptable, and means that only one initial scan should performed. The default rescan time is 300 seconds. Receiving a SIGUSR1 signal triggers a new -scan, independent of the rescan time (including if it was zero). +scan, independent of the rescan time (including if it was zero), +interrupting a groom pass (if any). .TP .B "\-g SECONDS" "\-\-groom\-time=SECONDS" @@ -167,7 +168,8 @@ it can deindex obsolete files. See also the \fIDATA MANAGEMENT\fP section. The default groom time is 86400 seconds (1 day). A time of zero is acceptable, and means that only one initial groom should be performed. Receiving a SIGUSR2 signal triggers a new grooming pass, -independent of the groom time (including if it was zero). +independent of the groom time (including if it was zero), interrupting +a rescan pass (if any).. .TP .B "\-G" diff --git a/tests/ChangeLog b/tests/ChangeLog index 6ea75d25..012e305c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-29 Frank Ch. Eigler + + PR26775 + * run-debuginfod-find.sh: Modify test for different + thread_work_total semantics for grooming. + 2020-10-29 Frank Ch. Eigler PR26810 diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 52def364..3af04c00 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -345,8 +345,9 @@ RPM_BUILDID=d44d42cbd7d915bc938c81333a21e355a6022fb7 # in rhel6/ subdir, for a l rm -r R/debuginfod-rpms/rhel6/* kill -USR2 $PID1 # groom cycle # Expect 3 rpms to be deleted by the groom -# 1 groom already took place at/soon-after startup, so -USR2 makes 2 -wait_ready $PORT1 'thread_work_total{role="groom"}' 2 +# 1 groom cycle already took place at/soon-after startup, so -USR2 makes 2 +# ... times the # of files checked in each cycle +wait_ready $PORT1 'thread_work_total{role="groom"}' 51 wait_ready $PORT1 'groom{statistic="file d/e"}' 3 rm -rf $DEBUGINFOD_CACHE_PATH # clean it from previous tests @@ -363,7 +364,7 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find executable $BUILDID2 # run a groom cycle to force server to drop its fdcache kill -USR2 $PID1 # groom cycle -wait_ready $PORT1 'thread_work_total{role="groom"}' 3 +wait_ready $PORT1 'thread_work_total{role="groom"}' 98 # 3 complete cycles # move it around a couple of times to make it likely to hit a nonexistent entry during iteration mv R/debuginfod-rpms/rhel7 R/debuginfod-rpms/rhel7renamed kill -USR1 $PID1 # scan cycle -- cgit v1.2.1 From 736cd2e2b57bbcb950da8bd255e4aa72302dd78c Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 30 Oct 2020 18:26:04 -0400 Subject: PR26775: restore thread_work_groom metric to cycle count ... and add new metrics about progress of traversal and groom processes. Correct one control flow abnormality that could prematurely end a scanner thread and might have accounted for the inconsistent test results from the previous patch. Signed-off-by: Frank Ch. Eigler --- debuginfod/ChangeLog | 11 +++++++++++ debuginfod/debuginfod.cxx | 43 +++++++++++++++++++++++++++++-------------- tests/ChangeLog | 6 ++++++ tests/run-debuginfod-find.sh | 5 ++--- 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 5af4dc6c..ec791c68 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,14 @@ +2020-10-30 Frank Ch. Eigler + + PR26775 cont'd. + (thread_main_scanner): Ensure control doesn't leave + infinite loop until program exit, even if SIGUSR2. + (scan_source_paths): Have traverser clean scanq on + SIGUSR2. Emit additional traversed_total metrics. + (groom): Emit additional groomed_total metrics. + (thread_main_groom): Restore previous thread_work_total + metric. + 2020-10-29 Frank Ch. Eigler PR26775 diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 8448a501..1020a640 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -2711,7 +2711,8 @@ thread_main_scanner (void* arg) add_metric("thread_busy", "role", "scan", -1); bool gotone = scanq.wait_front(p); add_metric("thread_busy", "role", "scan", 1); - if (! gotone) continue; // or break + + if (! gotone) continue; // go back to waiting try { @@ -2750,13 +2751,9 @@ thread_main_scanner (void* arg) e.report(cerr); } - inc_metric("thread_work_total", "role","scan"); - - if (sigusr2 != forced_groom_count) // stop early if groom triggered - { - scanq.clear(); - break; - } + // finished a scanning step -- not a "loop", because we just + // consume the traversal loop's work, whenever + inc_metric("thread_work_total","role","scan"); } add_metric("thread_busy", "role", "scan", -1); @@ -2801,7 +2798,10 @@ scan_source_paths() if (interrupted) break; if (sigusr2 != forced_groom_count) // stop early if groom triggered - break; + { + scanq.clear(); // clear previously issued work for scanner threads + break; + } fts_scanned ++; @@ -2825,6 +2825,10 @@ scan_source_paths() if (verbose > 3) obatched(clog) << "fts skipped by regex " << (!ri ? "I" : "") << (rx ? "X" : "") << endl; fts_regex ++; + if (!ri) + inc_metric("traversed_total","type","regex-skipped-I"); + if (rx) + inc_metric("traversed_total","type","regex-skipped-X"); continue; } @@ -2832,6 +2836,7 @@ scan_source_paths() { case FTS_F: scanq.push_back (make_pair(rps, *f->fts_statp)); + inc_metric("traversed_total","type","file"); break; case FTS_ERR: @@ -2841,11 +2846,16 @@ scan_source_paths() auto x = libc_exception(f->fts_errno, string("fts traversal ") + string(f->fts_path)); x.report(cerr); } + inc_metric("traversed_total","type","error"); break; - default: - ; - /* ignore */ + case FTS_D: // ignore + inc_metric("traversed_total","type","directory"); + break; + + default: // ignore + inc_metric("traversed_total","type","other"); + break; } } gettimeofday (&tv_end, NULL); @@ -2890,6 +2900,7 @@ thread_main_fts_source_paths (void* arg) set_metric("thread_busy", "role","traverse", 1); scan_source_paths(); last_rescan = time(NULL); // NB: now was before scanning + // finished a traversal loop inc_metric("thread_work_total", "role","traverse"); set_metric("thread_busy", "role","traverse", 0); } @@ -2970,9 +2981,11 @@ void groom() files_del_f_de.reset().bind(1,fileid).bind(2,mtime).step_ok_done(); files_del_r_de.reset().bind(1,fileid).bind(2,mtime).step_ok_done(); files_del_scan.reset().bind(1,fileid).bind(2,mtime).step_ok_done(); + inc_metric("groomed_total", "decision", "stale"); } - - inc_metric("thread_work_total", "role", "groom"); + else + inc_metric("groomed_total", "decision", "fresh"); + if (sigusr1 != forced_rescan_count) // stop early if scan triggered break; } @@ -3039,6 +3052,8 @@ thread_main_groom (void* /*arg*/) set_metric("thread_busy", "role", "groom", 1); groom (); last_groom = time(NULL); // NB: now was before grooming + // finished a grooming loop + inc_metric("thread_work_total", "role", "groom"); set_metric("thread_busy", "role", "groom", 0); } catch (const sqlite_exception& e) diff --git a/tests/ChangeLog b/tests/ChangeLog index 012e305c..13abf89a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2020-10-30 Frank Ch. Eigler + + PR26775 + * run-debuginfod-find.sh: Modify test for restored + thread_work_total semantics for grooming. + 2020-10-29 Frank Ch. Eigler PR26775 diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 3af04c00..0d1fcf1f 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -346,8 +346,7 @@ rm -r R/debuginfod-rpms/rhel6/* kill -USR2 $PID1 # groom cycle # Expect 3 rpms to be deleted by the groom # 1 groom cycle already took place at/soon-after startup, so -USR2 makes 2 -# ... times the # of files checked in each cycle -wait_ready $PORT1 'thread_work_total{role="groom"}' 51 +wait_ready $PORT1 'thread_work_total{role="groom"}' 2 wait_ready $PORT1 'groom{statistic="file d/e"}' 3 rm -rf $DEBUGINFOD_CACHE_PATH # clean it from previous tests @@ -364,7 +363,7 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find executable $BUILDID2 # run a groom cycle to force server to drop its fdcache kill -USR2 $PID1 # groom cycle -wait_ready $PORT1 'thread_work_total{role="groom"}' 98 # 3 complete cycles +wait_ready $PORT1 'thread_work_total{role="groom"}' 3 # move it around a couple of times to make it likely to hit a nonexistent entry during iteration mv R/debuginfod-rpms/rhel7 R/debuginfod-rpms/rhel7renamed kill -USR1 $PID1 # scan cycle -- cgit v1.2.1 From b256093ad9a8b4972ae02bece266adad8a3c6dbd Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 30 Oct 2020 19:14:02 -0400 Subject: elfutils.spec.in: fix debuginfod state/config file flags During a test upgrade of an RPM based on this spec file, it was observed that, er, the /var/cache/.../debuginfod.sqlite file was zeroed. Whoops! We don't want to lose this data. Removed the %verify attributes and added %ghost for the sqlite database. Signed-off-by: Frank Ch. Eigler --- config/ChangeLog | 5 +++++ config/elfutils.spec.in | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/config/ChangeLog b/config/ChangeLog index f93bbfd7..d280511d 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2020-10-30 Frank Ch. Eigler + + * elfutils.spec.in: Fix debuginfod config/state file attributes + for non-lossy updates. + 2020-10-08 Frank Ch. Eigler * Makefile.am (uninstall-local): Uninstall the new profile.d files. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 170c95e5..3caca9a6 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -191,6 +191,8 @@ mkdir -p ${RPM_BUILD_ROOT}%{_prefix} %make_install chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so* +mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod +touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite # XXX Nuke unpackaged files ( cd ${RPM_BUILD_ROOT} @@ -296,7 +298,7 @@ fi %{_libdir}/libdebuginfod.so.* %{_bindir}/debuginfod-find %{_mandir}/man1/debuginfod-find.1* -%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/profile.d/* +%config(noreplace) %{_sysconfdir}/profile.d/* %files debuginfod-client-devel %defattr(-,root,root) @@ -308,13 +310,13 @@ fi %files debuginfod %defattr(-,root,root) %{_bindir}/debuginfod -%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/debuginfod +%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod %{_unitdir}/debuginfod.service %{_sysconfdir}/sysconfig/debuginfod %{_mandir}/man8/debuginfod.8* %dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod -%verify(not md5 size mtime) %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite +%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite %pre debuginfod getent group debuginfod >/dev/null || groupadd -r debuginfod -- cgit v1.2.1 From 70717f8c1fdef3ba5e83508bd3956b2479536534 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 29 Oct 2020 16:43:14 +0100 Subject: tests: Run valgrind also on binary tests. When configuring with --enable-valgrind we were only running valgrind on tests with a shell wrapper script. This patch makes sure to also run valgrind on "pure" binary tests. This found one small issue in libasm where we could be writing some uninitialized padding to an ELF file. And there were a couple tests that didn't clean up all the resources they used. Both issues are also fixed with this patch. Signed-off-by: Mark Wielaard --- libasm/ChangeLog | 5 +++++ libasm/asm_align.c | 4 ++-- tests/ChangeLog | 9 +++++++++ tests/dwfl-bug-fd-leak.c | 9 ++++++++- tests/dwfl-proc-attach.c | 7 +++++++ tests/test-wrapper.sh | 10 +++++++++- tests/vdsosyms.c | 2 ++ 7 files changed, 42 insertions(+), 4 deletions(-) diff --git a/libasm/ChangeLog b/libasm/ChangeLog index 83a65492..d7ab8c42 100644 --- a/libasm/ChangeLog +++ b/libasm/ChangeLog @@ -1,3 +1,8 @@ +2020-10-29 Mark Wielaard + + * asm_align.c (__libasm_ensure_section_space): Use calloc, not + malloc to allocate extra space. + 2020-07-19 Mark Wielaard * libasmP.h: Include libebl.h after libasm.h. diff --git a/libasm/asm_align.c b/libasm/asm_align.c index e59a070e..c8c671b2 100644 --- a/libasm/asm_align.c +++ b/libasm/asm_align.c @@ -143,7 +143,7 @@ __libasm_ensure_section_space (AsmScn_t *asmscn, size_t len) /* This is the first block. */ size = MAX (2 * len, 960); - asmscn->content = (struct AsmData *) malloc (sizeof (struct AsmData) + asmscn->content = (struct AsmData *) calloc (1, sizeof (struct AsmData) + size); if (asmscn->content == NULL) return -1; @@ -160,7 +160,7 @@ __libasm_ensure_section_space (AsmScn_t *asmscn, size_t len) size = MAX (2 *len, MIN (32768, 2 * asmscn->offset)); - newp = (struct AsmData *) malloc (sizeof (struct AsmData) + size); + newp = (struct AsmData *) calloc (1, sizeof (struct AsmData) + size); if (newp == NULL) return -1; diff --git a/tests/ChangeLog b/tests/ChangeLog index 13abf89a..b84f2af0 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,12 @@ +2020-10-29 Mark Wielaard + + * test-wrapper.sh: Determine whether the test is a script or not + and run binaries directly under valgrind. + * dwfl-bug-fd-leak.c (main): Call getrlimit before calling setrlimit. + * dwfl-proc-attach.c (main): Call dwfl_end, pthread_cancel and + pthread_join. + * vdsosyms.c (main): Call dwfl_end. + 2020-10-30 Frank Ch. Eigler PR26775 diff --git a/tests/dwfl-bug-fd-leak.c b/tests/dwfl-bug-fd-leak.c index ee3a916b..b0913361 100644 --- a/tests/dwfl-bug-fd-leak.c +++ b/tests/dwfl-bug-fd-leak.c @@ -101,7 +101,14 @@ main (void) /* Set locale. */ (void) setlocale (LC_ALL, ""); - struct rlimit fd_limit = { .rlim_cur = 32, .rlim_max = 32 }; + /* Get both the soft and hard limits first. The soft limit is what + will be enforced against the process. The hard limit is the max + that can be set for the soft limit. We don't want to lower it + because we might not be able to (under valgrind). */ + struct rlimit fd_limit; + if (getrlimit (RLIMIT_NOFILE, &fd_limit) < 0) + error (2, errno, "getrlimit"); + fd_limit.rlim_cur = 32; if (setrlimit (RLIMIT_NOFILE, &fd_limit) < 0) error (2, errno, "setrlimit"); diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c index 102ba181..b72cc814 100644 --- a/tests/dwfl-proc-attach.c +++ b/tests/dwfl-proc-attach.c @@ -97,6 +97,13 @@ main (int argc __attribute__ ((unused)), if (dwfl_getthreads (dwfl, thread_callback, &threads) != DWARF_CB_OK) error (-1, 0, "dwfl_getthreads failed: %s", dwfl_errmsg (-1)); + dwfl_end (dwfl); + + pthread_cancel (thread1); + pthread_cancel (thread2); + pthread_join (thread1, NULL); + pthread_join (thread2, NULL); + return (threads == 3) ? 0 : -1; } diff --git a/tests/test-wrapper.sh b/tests/test-wrapper.sh index 09b4d49f..db16c591 100755 --- a/tests/test-wrapper.sh +++ b/tests/test-wrapper.sh @@ -44,6 +44,7 @@ case "$1" in *.sh) export built_library_path program_transform_name elfutils_testrun export elfutils_tests_rpath + is_shell_script="yes" ;; *) if [ $elfutils_testrun = built ]; then @@ -55,6 +56,7 @@ case "$1" in LD_LIBRARY_PATH="${libdir}:${libdir}/elfutils$old_path" fi export LD_LIBRARY_PATH + is_shell_script="no" ;; esac @@ -62,4 +64,10 @@ if [ "x$VALGRIND_CMD" != "x" ]; then export VALGRIND_CMD fi -exec "$@" +# When it is a run-*.sh script the VALGRIND_CMD will be passed on +# otherwise we'll need to run the binary explicitly under valgrind. +if [ "x$is_shell_script" == "xyes" ]; then + exec "$@" +else + exec $VALGRIND_CMD "$@" +fi diff --git a/tests/vdsosyms.c b/tests/vdsosyms.c index 7bfa7381..83ab034f 100644 --- a/tests/vdsosyms.c +++ b/tests/vdsosyms.c @@ -103,6 +103,8 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) if (dwfl_getmodules (dwfl, module_callback, NULL, 0) != 0) error (1, 0, "dwfl_getmodules: %s", dwfl_errmsg (-1)); + dwfl_end (dwfl); + /* No symbols is ok, then we haven't seen the vdso at all on this arch. */ return vdso_syms >= 0 ? 0 : -1; } -- cgit v1.2.1 From 92692b817028499111a5446cf1bc8369d0a3b408 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 31 Oct 2020 11:19:23 +0100 Subject: tests: Remove bashism from test-wrapper.sh /bin/sh script. Debian uses dash as /bin/sh which is pretty strict about syntax. It didn't like the == in the test for strings in the test-wrapper.sh. Replace by single =. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/test-wrapper.sh | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/ChangeLog b/tests/ChangeLog index b84f2af0..17c6ba2d 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-10-31 Mark Wielaard + + * test-wrapper.sh: Use =, not == for string compare. + 2020-10-29 Mark Wielaard * test-wrapper.sh: Determine whether the test is a script or not diff --git a/tests/test-wrapper.sh b/tests/test-wrapper.sh index db16c591..c5d3f159 100755 --- a/tests/test-wrapper.sh +++ b/tests/test-wrapper.sh @@ -66,7 +66,7 @@ fi # When it is a run-*.sh script the VALGRIND_CMD will be passed on # otherwise we'll need to run the binary explicitly under valgrind. -if [ "x$is_shell_script" == "xyes" ]; then +if [ "x$is_shell_script" = xyes ]; then exec "$@" else exec $VALGRIND_CMD "$@" -- cgit v1.2.1 From 63719a2c1548f23018d8afa4821067c440045eac Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 31 Oct 2020 13:43:42 +0100 Subject: tests: Add dlopen override to dwfl-proc-attach for old glibc/valgrind. Some combination of old glibc and valgrind create unsuppressable memory leak warnings when the process is run under valgrind, is multi-threaded and uses dlopen. libdw will try to dlopen libdebuginfod be default. So simply override dlopen and always return NULL to make sure libdebuginfod is never loaded. The dwfl-proc-attach test doesn't rely on libdebuginfod anyway. This was seen on the armbian buildbot which uses valgrind 3.14.0 and glibc 2.28. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/dwfl-proc-attach.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/tests/ChangeLog b/tests/ChangeLog index 17c6ba2d..af8ece63 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-10-31 Mark Wielaard + + * dwfl-proc-attach.c (dlopen): New external function override. + 2020-10-31 Mark Wielaard * test-wrapper.sh: Use =, not == for string compare. diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c index b72cc814..d02e9fc0 100644 --- a/tests/dwfl-proc-attach.c +++ b/tests/dwfl-proc-attach.c @@ -107,4 +107,16 @@ main (int argc __attribute__ ((unused)), return (threads == 3) ? 0 : -1; } +/* HACK. This is a simple workaround for a combination of old glibc + and valgrind. libdw will try to dlopen libdebuginfod this causes + some unsuppressable memory leak warnings when the process is + multi-threaded under valgrind because of some bad backtraces. + So simply override dlopen and always return NULL so libdebuginfod + (and libcurl) are never loaded. This test doesn't rely on + libdebuginfod anyway. */ +void *dlopen (void) +{ + return NULL; +} + #endif /* __linux__ */ -- cgit v1.2.1 From 201077456adbe6357f7adc26b24d2e2f161ee7a6 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 31 Oct 2020 09:48:56 -0400 Subject: debuginfod: Accelerate traversal, shutdowns, improve metrics Added new metrics for scanning that allow estimation of its reading bandwidth. Accelerated responsivity to SIGINT shutdown during archive-scanning phase, which previously insisted on completely processing the current archive. Noted in systemd service file that in the worst case, it might still take a long time. Accelerated traversals by moving regex -I/-X handling to apply to file names only (as always documented), so directory traversal metrics are accurate regardless of their name. Signed-off-by: Frank Ch. Eigler --- config/ChangeLog | 4 +++ config/debuginfod.service | 3 +- debuginfod/ChangeLog | 12 +++++-- debuginfod/debuginfod.cxx | 78 ++++++++++++++++++++++++++------------------ tests/ChangeLog | 4 +++ tests/run-debuginfod-find.sh | 12 ++++--- 6 files changed, 74 insertions(+), 39 deletions(-) diff --git a/config/ChangeLog b/config/ChangeLog index d280511d..e5c41bee 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2020-10-31 Frank Ch. Eigler + + * debuginfod.service: Bump up TimeoutStopSec. + 2020-10-30 Frank Ch. Eigler * elfutils.spec.in: Fix debuginfod config/state file attributes diff --git a/config/debuginfod.service b/config/debuginfod.service index 8fca343f..b64d8cb9 100644 --- a/config/debuginfod.service +++ b/config/debuginfod.service @@ -9,7 +9,8 @@ User=debuginfod Group=debuginfod #CacheDirectory=debuginfod ExecStart=/usr/bin/debuginfod -d /var/cache/debuginfod/debuginfod.sqlite -p $DEBUGINFOD_PORT $DEBUGINFOD_VERBOSE $DEBUGINFOD_PRAGMAS $DEBUGINFOD_PATHS -TimeoutStopSec=10 +# Stopping can take a long time if scanning of large archives is in progress +TimeoutStopSec=60 PrivateTmp=yes [Install] diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index ec791c68..34363e7e 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,8 +1,16 @@ +2020-10-31 Frank Ch. Eigler + + * debuginfod.cxx (scan_source_file, scan_archive_file): Add new scanned_bytes_total, + scanned_files_total metrics. + (archive_classify): Exit early if interrupted. + (scan_source_paths): Perform realpath/regex checks only on FTS_F files. + Tweak metrics. + 2020-10-30 Frank Ch. Eigler PR26775 cont'd. - (thread_main_scanner): Ensure control doesn't leave - infinite loop until program exit, even if SIGUSR2. + * debuginfod.cxx (thread_main_scanner): Ensure control doesn't + leave infinite loop until program exit, even if SIGUSR2. (scan_source_paths): Have traverser clean scanq on SIGUSR2. Emit additional traversed_total metrics. (groom): Emit additional groomed_total metrics. diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 1020a640..3085f388 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -1405,7 +1405,8 @@ handle_buildid_r_match (bool internal_req_p, throw libc_exception (errno, "cannot create temporary file"); // NB: don't unlink (tmppath), as fdcache will take charge of it. - rc = archive_read_data_into_fd (a, fd); + // NB: this can take many uninterruptible seconds for a huge file + rc = archive_read_data_into_fd (a, fd); if (rc != ARCHIVE_OK) // e.g. ENOSPC! { close (fd); @@ -2228,7 +2229,9 @@ scan_source_file (const string& rps, const stat_t& st, elf_classify (fd, executable_p, debuginfo_p, buildid, sourcefiles); else throw libc_exception(errno, string("open ") + rps); - inc_metric ("scanned_total","source","file"); + add_metric ("scanned_bytes_total","source","file", + st.st_size); + inc_metric ("scanned_files_total","source","file"); } // NB: we catch exceptions here too, so that we can // cache the corrupt-elf case (!executable_p && @@ -2411,9 +2414,12 @@ archive_classify (const string& rps, string& archive_extension, if (verbose > 3) obatched(clog) << "libarchive scanning " << rps << endl; - while(1) // parse cpio archive entries + while(1) // parse archive entries { - try + if (interrupted) + break; + + try { struct archive_entry *e; rc = archive_read_next_header (a, &e); @@ -2602,7 +2608,9 @@ scan_archive_file (const string& rps, const stat_t& st, st.st_mtime, my_fts_executable, my_fts_debuginfo, my_fts_sref, my_fts_sdef, my_fts_sref_complete_p); - inc_metric ("scanned_total","source",archive_extension + " archive"); + add_metric ("scanned_bytes_total","source",archive_extension + " archive", + st.st_size); + inc_metric ("scanned_files_total","source",archive_extension + " archive"); add_metric("found_debuginfo_total","source",archive_extension + " archive", my_fts_debuginfo); add_metric("found_executable_total","source",archive_extension + " archive", @@ -2808,35 +2816,39 @@ scan_source_paths() if (verbose > 2) obatched(clog) << "fts traversing " << f->fts_path << endl; - /* Found a file. Convert it to an absolute path, so - the buildid database does not have relative path - names that are unresolvable from a subsequent run - in a different cwd. */ - char *rp = realpath(f->fts_path, NULL); - if (rp == NULL) - continue; // ignore dangling symlink or such - string rps = string(rp); - free (rp); - - bool ri = !regexec (&file_include_regex, rps.c_str(), 0, 0, 0); - bool rx = !regexec (&file_exclude_regex, rps.c_str(), 0, 0, 0); - if (!ri || rx) - { - if (verbose > 3) - obatched(clog) << "fts skipped by regex " << (!ri ? "I" : "") << (rx ? "X" : "") << endl; - fts_regex ++; - if (!ri) - inc_metric("traversed_total","type","regex-skipped-I"); - if (rx) - inc_metric("traversed_total","type","regex-skipped-X"); - continue; - } - switch (f->fts_info) { case FTS_F: - scanq.push_back (make_pair(rps, *f->fts_statp)); - inc_metric("traversed_total","type","file"); + { + /* Found a file. Convert it to an absolute path, so + the buildid database does not have relative path + names that are unresolvable from a subsequent run + in a different cwd. */ + char *rp = realpath(f->fts_path, NULL); + if (rp == NULL) + continue; // ignore dangling symlink or such + string rps = string(rp); + free (rp); + + bool ri = !regexec (&file_include_regex, rps.c_str(), 0, 0, 0); + bool rx = !regexec (&file_exclude_regex, rps.c_str(), 0, 0, 0); + if (!ri || rx) + { + if (verbose > 3) + obatched(clog) << "fts skipped by regex " + << (!ri ? "I" : "") << (rx ? "X" : "") << endl; + fts_regex ++; + if (!ri) + inc_metric("traversed_total","type","file-skipped-I"); + if (rx) + inc_metric("traversed_total","type","file-skipped-X"); + } + else + { + scanq.push_back (make_pair(rps, *f->fts_statp)); + inc_metric("traversed_total","type","file"); + } + } break; case FTS_ERR: @@ -2849,6 +2861,10 @@ scan_source_paths() inc_metric("traversed_total","type","error"); break; + case FTS_SL: // ignore, but count because debuginfod -L would traverse these + inc_metric("traversed_total","type","symlink"); + break; + case FTS_D: // ignore inc_metric("traversed_total","type","directory"); break; diff --git a/tests/ChangeLog b/tests/ChangeLog index af8ece63..57fc4c8e 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -15,6 +15,10 @@ pthread_join. * vdsosyms.c (main): Call dwfl_end. +2020-10-31 Frank Ch. Eigler + + * run-debuginfod-find.sh: Modify for tweaked/new metrics. + 2020-10-30 Frank Ch. Eigler PR26775 diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 0d1fcf1f..48dbc7d4 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -246,11 +246,11 @@ cp -rvp ${abs_srcdir}/debuginfod-tars Z kill -USR1 $PID1 # All rpms need to be in the index, except the dummy permission-000 one rpms=$(find R -name \*rpm | grep -v nothing | wc -l) -wait_ready $PORT1 'scanned_total{source=".rpm archive"}' $rpms +wait_ready $PORT1 'scanned_files_total{source=".rpm archive"}' $rpms txz=$(find Z -name \*tar.xz | wc -l) -wait_ready $PORT1 'scanned_total{source=".tar.xz archive"}' $txz +wait_ready $PORT1 'scanned_files_total{source=".tar.xz archive"}' $txz tb2=$(find Z -name \*tar.bz2 | wc -l) -wait_ready $PORT1 'scanned_total{source=".tar.bz2 archive"}' $tb2 +wait_ready $PORT1 'scanned_files_total{source=".tar.bz2 archive"}' $tb2 kill -USR1 $PID1 # two hits of SIGUSR1 may be needed to resolve .debug->dwz->srefs # Expect all source files found in the rpms (they are all called hello.c :) @@ -419,9 +419,9 @@ if type bsdtar 2>/dev/null; then kill -USR1 $PID2 # All debs need to be in the index debs=$(find D -name \*.deb | wc -l) - wait_ready $PORT2 'scanned_total{source=".deb archive"}' `expr $debs` + wait_ready $PORT2 'scanned_files_total{source=".deb archive"}' `expr $debs` ddebs=$(find D -name \*.ddeb | wc -l) - wait_ready $PORT2 'scanned_total{source=".ddeb archive"}' `expr $ddebs` + wait_ready $PORT2 'scanned_files_total{source=".ddeb archive"}' `expr $ddebs` # ubuntu archive_test f17a29b5a25bd4960531d82aa6b07c8abe84fa66 "" "" @@ -478,6 +478,8 @@ curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_transfer_bytes_co curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_transfer_bytes_sum' curl -s http://127.0.0.1:$PORT1/metrics | grep 'fdcache_' curl -s http://127.0.0.1:$PORT1/metrics | grep 'error_count' +curl -s http://127.0.0.1:$PORT1/metrics | grep 'traversed_total' +curl -s http://127.0.0.1:$PORT1/metrics | grep 'scanned_bytes_total' # And generate a few errors into the second debuginfod's logs, for analysis just below curl -s http://127.0.0.1:$PORT2/badapi > /dev/null || true -- cgit v1.2.1 From d4fd08042091f70ead80468be04ba2338b24391b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 31 Oct 2020 17:57:47 +0100 Subject: Prepare for 0.182 Set version to 0.182. Update NEWS and elfutils.spec.in. Regenerate po/*.po files. Signed-off-by: Mark Wielaard --- ChangeLog | 5 + NEWS | 14 ++ config/ChangeLog | 4 + config/elfutils.spec.in | 9 + configure.ac | 2 +- po/ChangeLog | 4 + po/de.po | 591 +++++++++++++++++++++++------------------------ po/es.po | 592 ++++++++++++++++++++++++------------------------ po/ja.po | 591 +++++++++++++++++++++++------------------------ po/pl.po | 592 ++++++++++++++++++++++++------------------------ po/uk.po | 592 ++++++++++++++++++++++++------------------------ 11 files changed, 1540 insertions(+), 1456 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c8699f8..128da6c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-10-28 Mark Wielaard + + * configure.ac: Set version to 0.182. + * NEWS: Add 0.182 section. + 2020-10-28 Tom Tromey * .gitignore: Add /tests/leb128. diff --git a/NEWS b/NEWS index 1bdb4410..4e94f1c1 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,17 @@ +Version 0.182 + +backends: Support for tilegx has been removed. + +config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS. + +debuginfod: More efficient package traversal, tolerate various errors + during scanning, grooming progress is more visible and + interruptible, more prometheus metrics. + +debuginfod-client: Now supports compressed (kernel) ELF images. + +libdwfl: Add ZSTD compression support. + Version 0.181 libelf: elf_update now compensates (fixes up) a bad sh_addralign for diff --git a/config/ChangeLog b/config/ChangeLog index e5c41bee..d3ecd6c6 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2020-10-30 Mark Wielaard + + * elfutils.spec.in: Update for 0.182. + 2020-10-31 Frank Ch. Eigler * debuginfod.service: Bump up TimeoutStopSec. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 3caca9a6..c01b5f88 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -332,6 +332,15 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Sat Oct 31 2020 Mark Wielaard 0.182-1 +- backends: Support for tilegx has been removed. +- config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS. +- debuginfod: More efficient package traversal, tolerate various + errors during scanning, grooming progress is more visible and + interruptible, more prometheus metrics. +- debuginfod-client: Now supports compressed (kernel) ELF images. +- libdwfl: Add ZSTD compression support. + * Tue Sep 8 2020 Mark Wielaard 0.181-1 - libelf: elf_update now compensates (fixes up) a bad sh_addralign for SHF_COMPRESSED sections. diff --git a/configure.ac b/configure.ac index 973409f1..515ac704 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 . -AC_INIT([elfutils],[0.181],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) +AC_INIT([elfutils],[0.182],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/]) dnl Workaround for older autoconf < 2.64 m4_ifndef([AC_PACKAGE_URL], diff --git a/po/ChangeLog b/po/ChangeLog index 1506f343..af3fe34e 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2020-10-31 Mark Wielaard + + * *.po: Update for 0.182. + 2020-09-08 Mark Wielaard * *.po: Update for 0.181. diff --git a/po/de.po b/po/de.po index 4f6e00b4..06692971 100644 --- a/po/de.po +++ b/po/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-09-08 12:51+0200\n" +"POT-Creation-Date: 2020-10-31 17:37+0100\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch \n" "Language-Team: German\n" @@ -55,7 +55,7 @@ msgstr "" "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:3449 -#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 +#: src/readelf.c:11486 src/unstrip.c:316 src/unstrip.c:2401 src/unstrip.c:2606 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr verfügbar" @@ -218,7 +218,7 @@ msgstr "Ungültige DWARF Version" msgid "invalid directory index" msgstr "ungültiger Verzeichnisindex" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:76 msgid "address out of range" msgstr "Außerhalb des Adressbereiches" @@ -249,7 +249,7 @@ msgstr "Ungültiger Zeilenindex" msgid "invalid address range index" msgstr "Ungültiger Adressbereichs Index" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:77 msgid "no matching address range" msgstr "Kein passender Adressbereich" @@ -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:643 src/unstrip.c:2541 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2547 msgid "Input selection options:" msgstr "Eingabeauswahloptionen:" @@ -392,136 +392,140 @@ msgid "LZMA decompression failed" msgstr "" #: libdwfl/libdwflP.h:64 -msgid "no support library found for machine" +msgid "zstd decompression failed" msgstr "" #: libdwfl/libdwflP.h:65 -msgid "Callbacks missing for ET_REL file" +msgid "no support library found for machine" msgstr "" #: libdwfl/libdwflP.h:66 -msgid "Unsupported relocation type" +msgid "Callbacks missing for ET_REL file" msgstr "" #: libdwfl/libdwflP.h:67 +msgid "Unsupported relocation type" +msgstr "" + +#: libdwfl/libdwflP.h:68 msgid "r_offset is bogus" msgstr "" -#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:69 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "Offset ausserhalb des Bereichs" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:70 #, fuzzy msgid "relocation refers to undefined symbol" msgstr "Zeige Grösse der definierten Symbole" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:71 msgid "Callback returned failure" msgstr "" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:72 #, fuzzy msgid "No DWARF information found" msgstr "keine DWARF Information" -#: libdwfl/libdwflP.h:72 +#: libdwfl/libdwflP.h:73 msgid "No symbol table found" msgstr "" -#: libdwfl/libdwflP.h:73 +#: libdwfl/libdwflP.h:74 #, fuzzy msgid "No ELF program headers" msgstr "Programm-Köpfe anzeigen" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:75 msgid "address range overlaps an existing module" msgstr "" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:78 msgid "image truncated" msgstr "" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:79 #, fuzzy msgid "ELF file opened" msgstr "keine ELF Datei" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:80 #, fuzzy msgid "not a valid ELF file" msgstr "Ungültige ELF Datei" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:81 #, fuzzy msgid "cannot handle DWARF type description" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:82 msgid "ELF file does not match build ID" msgstr "" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:83 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:84 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:85 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:86 #, fuzzy msgid "Invalid register" msgstr "ungültiger Parameter" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:87 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:88 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:89 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:90 #, fuzzy msgid "Invalid DWARF" msgstr "DWARF ungültig" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:91 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:92 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:93 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:94 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:94 +#: libdwfl/libdwflP.h:95 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:95 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Invalid argument" msgstr "ungültiger Parameter" -#: libdwfl/libdwflP.h:96 +#: libdwfl/libdwflP.h:97 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "Ungültige ELF Datei" @@ -627,7 +631,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:6172 +#: libelf/elf_error.c:87 src/readelf.c:6197 #, c-format msgid "invalid encoding" msgstr "ungültige Kodierung" @@ -715,8 +719,8 @@ msgstr "data/scn Unterschied" msgid "invalid section header" msgstr "ungültiger Abschnitts-Header" -#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 -#: src/readelf.c:10636 src/readelf.c:10818 +#: libelf/elf_error.c:191 src/readelf.c:9997 src/readelf.c:10597 +#: src/readelf.c:10698 src/readelf.c:10880 #, c-format msgid "invalid data" msgstr "Ungültige Daten" @@ -1375,7 +1379,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2191 src/unstrip.c:2220 +#: src/unstrip.c:2197 src/unstrip.c:2226 #, c-format msgid "cannot open '%s'" msgstr "'%s' kann nicht geöffnet werden" @@ -3490,8 +3494,8 @@ msgstr "Kann Suchbaum nicht erstellen" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 -#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11313 src/readelf.c:12503 +#: src/readelf.c:12714 src/readelf.c:12783 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -3808,11 +3812,11 @@ msgstr "" msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 -#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 -#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 -#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12734 +#: src/unstrip.c:401 src/unstrip.c:432 src/unstrip.c:491 src/unstrip.c:612 +#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1220 +#: src/unstrip.c:1347 src/unstrip.c:1371 src/unstrip.c:1427 src/unstrip.c:1491 +#: src/unstrip.c:1666 src/unstrip.c:1817 src/unstrip.c:1960 src/unstrip.c:2059 #, c-format msgid "cannot get section header: %s" msgstr "" @@ -3822,8 +3826,8 @@ msgstr "" msgid "cannot get section name" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 -#: src/readelf.c:10803 +#: src/readelf.c:670 src/readelf.c:6610 src/readelf.c:10585 src/readelf.c:10687 +#: src/readelf.c:10865 #, c-format msgid "cannot get %s content: %s" msgstr "" @@ -4145,7 +4149,7 @@ msgid "" " Segment Sections..." msgstr "" -#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 +#: src/readelf.c:1460 src/unstrip.c:2118 src/unstrip.c:2160 src/unstrip.c:2167 #, c-format msgid "cannot get program header: %s" msgstr "" @@ -4180,8 +4184,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 -#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12605 +#: src/readelf.c:12612 src/readelf.c:12656 src/readelf.c:12663 msgid "Couldn't uncompress section" msgstr "" @@ -4191,7 +4195,7 @@ msgid "cannot get section [%zd] header: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" #: src/readelf.c:1805 src/readelf.c:2455 src/readelf.c:2713 src/readelf.c:2789 -#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5364 +#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5389 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ungültige .debug_line Sektion" @@ -4603,7 +4607,7 @@ msgstr "" msgid " [%6tx] ... % bytes ...\n" msgstr "" -#: src/readelf.c:5054 +#: src/readelf.c:5079 #, c-format msgid "" "\n" @@ -4611,79 +4615,79 @@ msgid "" " [ Code]\n" msgstr "" -#: src/readelf.c:5062 +#: src/readelf.c:5087 #, c-format msgid "" "\n" "Abbreviation section at offset %:\n" msgstr "" -#: src/readelf.c:5075 +#: src/readelf.c:5100 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr "" -#: src/readelf.c:5091 +#: src/readelf.c:5116 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr "" -#: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 -#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 -#: src/readelf.c:10324 +#: src/readelf.c:5149 src/readelf.c:5458 src/readelf.c:5625 src/readelf.c:6010 +#: src/readelf.c:6620 src/readelf.c:8357 src/readelf.c:9049 src/readelf.c:9522 +#: src/readelf.c:9773 src/readelf.c:9939 src/readelf.c:10326 +#: src/readelf.c:10386 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#:\n" msgstr "" -#: src/readelf.c:5137 +#: src/readelf.c:5162 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 +#: src/readelf.c:5262 src/readelf.c:5286 src/readelf.c:5670 src/readelf.c:9094 #, fuzzy, c-format msgid " Length: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 +#: src/readelf.c:5264 src/readelf.c:5301 src/readelf.c:5683 src/readelf.c:9107 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 +#: src/readelf.c:5265 src/readelf.c:5310 src/readelf.c:5692 src/readelf.c:9116 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 +#: src/readelf.c:5267 src/readelf.c:5320 src/readelf.c:5702 src/readelf.c:9126 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 +#: src/readelf.c:5305 src/readelf.c:5687 src/readelf.c:9111 src/readelf.c:10518 #, fuzzy, c-format msgid "Unknown version" msgstr "unbekannte Version" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 +#: src/readelf.c:5315 src/readelf.c:5528 src/readelf.c:5697 src/readelf.c:9121 #, fuzzy, c-format msgid "unsupported address size" msgstr "Kein Adress-Wert" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 +#: src/readelf.c:5326 src/readelf.c:5539 src/readelf.c:5707 src/readelf.c:9131 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5354 src/readelf.c:5428 +#: src/readelf.c:5379 src/readelf.c:5453 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "" -#: src/readelf.c:5369 +#: src/readelf.c:5394 #, c-format msgid "" "\n" @@ -4694,239 +4698,239 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:5400 +#: src/readelf.c:5425 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5402 +#: src/readelf.c:5427 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" msgstr "" -#: src/readelf.c:5446 src/readelf.c:8359 +#: src/readelf.c:5471 src/readelf.c:8384 #, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 -#: src/readelf.c:9050 +#: src/readelf.c:5475 src/readelf.c:5651 src/readelf.c:6644 src/readelf.c:8395 +#: src/readelf.c:9075 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" -#: src/readelf.c:5466 +#: src/readelf.c:5491 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " %s: %\n" -#: src/readelf.c:5478 +#: src/readelf.c:5503 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:5482 +#: src/readelf.c:5507 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5493 +#: src/readelf.c:5518 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " %s: %\n" -#: src/readelf.c:5499 +#: src/readelf.c:5524 #, c-format msgid " Address size: %6\n" msgstr "" -#: src/readelf.c:5510 +#: src/readelf.c:5535 #, c-format msgid "" " Segment size: %6\n" "\n" msgstr "" -#: src/readelf.c:5565 +#: src/readelf.c:5590 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5634 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:5632 src/readelf.c:9056 +#: src/readelf.c:5657 src/readelf.c:9081 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " %s: %\n" -#: src/readelf.c:5687 src/readelf.c:9111 +#: src/readelf.c:5712 src/readelf.c:9136 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5703 src/readelf.c:9127 +#: src/readelf.c:5728 src/readelf.c:9152 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9129 +#: src/readelf.c:5730 src/readelf.c:9154 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9135 +#: src/readelf.c:5736 src/readelf.c:9160 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9146 +#: src/readelf.c:5747 src/readelf.c:9171 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9150 +#: src/readelf.c:5751 src/readelf.c:9175 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " %s: %\n" -#: src/readelf.c:5778 +#: src/readelf.c:5803 #, fuzzy, c-format msgid "invalid range list data" msgstr "Ungültige Daten" -#: src/readelf.c:5963 src/readelf.c:9438 +#: src/readelf.c:5988 src/readelf.c:9500 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5980 +#: src/readelf.c:6005 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "" -#: src/readelf.c:6016 src/readelf.c:9493 +#: src/readelf.c:6041 src/readelf.c:9555 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9495 +#: src/readelf.c:6043 src/readelf.c:9557 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 +#: src/readelf.c:6052 src/readelf.c:9583 src/readelf.c:9609 #, c-format msgid " [%6tx] \n" msgstr "" -#: src/readelf.c:6052 src/readelf.c:9631 +#: src/readelf.c:6077 src/readelf.c:9693 #, fuzzy msgid "base address" msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:6062 src/readelf.c:9641 +#: src/readelf.c:6087 src/readelf.c:9703 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:6317 +#: src/readelf.c:6342 msgid " \n" msgstr "" -#: src/readelf.c:6573 +#: src/readelf.c:6598 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:6591 +#: src/readelf.c:6616 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#:\n" msgstr "" -#: src/readelf.c:6641 +#: src/readelf.c:6666 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:6742 src/readelf.c:6896 +#: src/readelf.c:6767 src/readelf.c:6921 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:6757 +#: src/readelf.c:6782 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:6763 +#: src/readelf.c:6788 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:6873 +#: src/readelf.c:6898 #, c-format msgid " (offset: %#)" msgstr "" -#: src/readelf.c:6880 +#: src/readelf.c:6905 #, c-format msgid " (end offset: %#)" msgstr "" -#: src/readelf.c:6917 +#: src/readelf.c:6942 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "" -#: src/readelf.c:7002 +#: src/readelf.c:7027 #, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "" -#: src/readelf.c:7012 +#: src/readelf.c:7037 #, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "" -#: src/readelf.c:7034 +#: src/readelf.c:7059 #, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "" -#: src/readelf.c:7364 +#: src/readelf.c:7389 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "Ungültige Datei" -#: src/readelf.c:7368 +#: src/readelf.c:7393 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr "unbekannte Form %" -#: src/readelf.c:7372 +#: src/readelf.c:7397 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:7685 +#: src/readelf.c:7710 #, c-format msgid "" "\n" @@ -4934,12 +4938,12 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:7735 +#: src/readelf.c:7760 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:7754 +#: src/readelf.c:7779 #, c-format msgid "" " Type unit at offset %:\n" @@ -4948,7 +4952,7 @@ msgid "" " Type signature: %#, Type offset: %# [%]\n" msgstr "" -#: src/readelf.c:7766 +#: src/readelf.c:7791 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -4956,37 +4960,37 @@ msgid "" "%, Offset size: %\n" msgstr "" -#: src/readelf.c:7776 src/readelf.c:7939 +#: src/readelf.c:7801 src/readelf.c:7964 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7803 +#: src/readelf.c:7828 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7832 +#: src/readelf.c:7857 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:7841 +#: src/readelf.c:7866 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:7879 +#: src/readelf.c:7904 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:7887 +#: src/readelf.c:7912 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:7931 +#: src/readelf.c:7956 #, c-format msgid "" " Split compilation unit at offset %:\n" @@ -4994,7 +4998,7 @@ msgid "" "%, Offset size: %\n" msgstr "" -#: src/readelf.c:7983 +#: src/readelf.c:8008 #, c-format msgid "" "\n" @@ -5002,18 +5006,18 @@ msgid "" "\n" msgstr "" -#: src/readelf.c:8315 +#: src/readelf.c:8340 #, fuzzy, c-format msgid "unknown form: %s" msgstr "unbekannte Form %" -#: src/readelf.c:8346 +#: src/readelf.c:8371 #, c-format msgid "cannot get line data section data: %s" msgstr "" #. Print what we got so far. -#: src/readelf.c:8448 +#: src/readelf.c:8473 #, c-format msgid "" "\n" @@ -5032,177 +5036,177 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:8470 +#: src/readelf.c:8495 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:8478 +#: src/readelf.c:8503 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "Kein Adress-Wert" -#: src/readelf.c:8486 +#: src/readelf.c:8511 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "" -#: src/readelf.c:8496 +#: src/readelf.c:8521 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:8511 +#: src/readelf.c:8536 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:8522 +#: src/readelf.c:8547 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:8528 src/readelf.c:8605 +#: src/readelf.c:8553 src/readelf.c:8630 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8599 +#: src/readelf.c:8624 msgid "" "\n" "File name table:" msgstr "" -#: src/readelf.c:8660 +#: src/readelf.c:8685 msgid " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:8699 +#: src/readelf.c:8724 msgid "" "\n" "No line number statements." msgstr "" -#: src/readelf.c:8703 +#: src/readelf.c:8728 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:8726 +#: src/readelf.c:8751 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8760 +#: src/readelf.c:8785 #, c-format msgid " special opcode %u: address+%u = " msgstr "" -#: src/readelf.c:8764 +#: src/readelf.c:8789 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr "" -#: src/readelf.c:8767 +#: src/readelf.c:8792 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8785 +#: src/readelf.c:8810 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:8790 +#: src/readelf.c:8815 msgid " end of sequence" msgstr "" -#: src/readelf.c:8808 +#: src/readelf.c:8833 #, fuzzy, c-format msgid " set address to " msgstr "Außerhalb des Adressbereiches" -#: src/readelf.c:8836 +#: src/readelf.c:8861 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" -#: src/readelf.c:8850 +#: src/readelf.c:8875 #, c-format msgid " set discriminator to %u\n" msgstr "" #. Unknown, ignore it. -#: src/readelf.c:8855 +#: src/readelf.c:8880 #, fuzzy msgid " unknown opcode" msgstr "unbekannter Typ" #. Takes no argument. -#: src/readelf.c:8867 +#: src/readelf.c:8892 msgid " copy" msgstr "" -#: src/readelf.c:8878 +#: src/readelf.c:8903 #, c-format msgid " advance address by %u to " msgstr "" -#: src/readelf.c:8882 src/readelf.c:8943 +#: src/readelf.c:8907 src/readelf.c:8968 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8894 +#: src/readelf.c:8919 #, c-format msgid " advance line by constant %d to %\n" msgstr "" -#: src/readelf.c:8904 +#: src/readelf.c:8929 #, c-format msgid " set file to %\n" msgstr "" -#: src/readelf.c:8915 +#: src/readelf.c:8940 #, c-format msgid " set column to %\n" msgstr "" -#: src/readelf.c:8922 +#: src/readelf.c:8947 #, c-format msgid " set '%s' to %\n" msgstr "" #. Takes no argument. -#: src/readelf.c:8928 +#: src/readelf.c:8953 msgid " set basic block flag" msgstr "" -#: src/readelf.c:8939 +#: src/readelf.c:8964 #, c-format msgid " advance address by constant %u to " msgstr "" -#: src/readelf.c:8959 +#: src/readelf.c:8984 #, c-format msgid " advance address by fixed value %u to \n" msgstr "" #. Takes no argument. -#: src/readelf.c:8969 +#: src/readelf.c:8994 msgid " set prologue end flag" msgstr "" #. Takes no argument. -#: src/readelf.c:8974 +#: src/readelf.c:8999 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:8984 +#: src/readelf.c:9009 #, c-format msgid " set isa to %u\n" msgstr "" @@ -5210,103 +5214,108 @@ 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:8993 +#: src/readelf.c:9018 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:9033 +#: src/readelf.c:9058 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/readelf.c:9202 +#: src/readelf.c:9224 +#, c-format +msgid " \n" +msgstr "" + +#: src/readelf.c:9264 #, fuzzy, c-format msgid "invalid loclists data" msgstr "Ungültige Daten" -#: src/readelf.c:9455 +#: src/readelf.c:9517 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "" -#: src/readelf.c:9668 src/readelf.c:10712 +#: src/readelf.c:9730 src/readelf.c:10774 msgid " \n" msgstr "" -#: src/readelf.c:9723 src/readelf.c:9886 +#: src/readelf.c:9785 src/readelf.c:9948 #, c-format msgid "cannot get macro information section data: %s" msgstr "" -#: src/readelf.c:9803 +#: src/readelf.c:9865 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:9826 +#: src/readelf.c:9888 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "" -#: src/readelf.c:9927 +#: src/readelf.c:9989 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " %s: %\n" -#: src/readelf.c:9939 +#: src/readelf.c:10001 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9945 src/readelf.c:10832 +#: src/readelf.c:10007 src/readelf.c:10894 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9952 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " %s: %\n" -#: src/readelf.c:9981 +#: src/readelf.c:10043 #, c-format msgid " Offset length: %\n" msgstr "" -#: src/readelf.c:9989 +#: src/readelf.c:10051 #, c-format msgid " .debug_line offset: 0x%\n" msgstr "" -#: src/readelf.c:10014 +#: src/readelf.c:10076 #, c-format msgid " extension opcode table, % items:\n" msgstr "" -#: src/readelf.c:10021 +#: src/readelf.c:10083 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10033 +#: src/readelf.c:10095 #, c-format msgid " % arguments:" msgstr "" -#: src/readelf.c:10048 +#: src/readelf.c:10110 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10249 +#: src/readelf.c:10311 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" -#: src/readelf.c:10293 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5314,72 +5323,72 @@ msgid "" " %*s String\n" msgstr "" -#: src/readelf.c:10308 +#: src/readelf.c:10370 #, c-format msgid " *** error, missing string terminator\n" msgstr "" -#: src/readelf.c:10337 +#: src/readelf.c:10399 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:10436 +#: src/readelf.c:10498 #, fuzzy, c-format msgid " Length: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10438 +#: src/readelf.c:10500 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10452 +#: src/readelf.c:10514 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10461 +#: src/readelf.c:10523 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10515 +#: src/readelf.c:10577 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:10617 +#: src/readelf.c:10679 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:10640 +#: src/readelf.c:10702 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:10652 +#: src/readelf.c:10714 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:10667 +#: src/readelf.c:10729 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:10680 +#: src/readelf.c:10742 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:10694 +#: src/readelf.c:10756 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5388,142 +5397,142 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:10767 +#: src/readelf.c:10829 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:10794 +#: src/readelf.c:10856 #, c-format msgid "" "\n" "GDB section [%2zu] '%s' at offset %# contains % bytes :\n" msgstr "" -#: src/readelf.c:10823 +#: src/readelf.c:10885 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10841 +#: src/readelf.c:10903 #, c-format msgid " CU offset: %#\n" msgstr "" -#: src/readelf.c:10848 +#: src/readelf.c:10910 #, c-format msgid " TU offset: %#\n" msgstr "" -#: src/readelf.c:10855 +#: src/readelf.c:10917 #, c-format msgid " address offset: %#\n" msgstr "" -#: src/readelf.c:10862 +#: src/readelf.c:10924 #, c-format msgid " symbol offset: %#\n" msgstr "" -#: src/readelf.c:10869 +#: src/readelf.c:10931 #, c-format msgid " constant offset: %#\n" msgstr "" -#: src/readelf.c:10883 +#: src/readelf.c:10945 #, c-format msgid "" "\n" " CU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10908 +#: src/readelf.c:10970 #, c-format msgid "" "\n" " TU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10937 +#: src/readelf.c:10999 #, c-format msgid "" "\n" " Address list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:10969 +#: src/readelf.c:11031 #, c-format msgid "" "\n" " Symbol table at offset %# contains %zu slots:\n" msgstr "" -#: src/readelf.c:11107 +#: src/readelf.c:11169 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 -#: src/readelf.c:12266 +#: src/readelf.c:11537 src/readelf.c:12159 src/readelf.c:12270 +#: src/readelf.c:12328 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:11838 +#: src/readelf.c:11900 #, c-format msgid "" "\n" "%*s... ..." msgstr "" -#: src/readelf.c:12345 +#: src/readelf.c:12407 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:12374 +#: src/readelf.c:12436 #, c-format msgid " %-13.*s %9 %s\n" msgstr "" -#: src/readelf.c:12426 +#: src/readelf.c:12488 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "Konnte Inhalt von %s: %s nicht lesen" -#: src/readelf.c:12460 +#: src/readelf.c:12522 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12483 +#: src/readelf.c:12545 #, c-format msgid "" "\n" "Note segment of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12530 +#: src/readelf.c:12592 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12557 src/readelf.c:12608 +#: src/readelf.c:12619 src/readelf.c:12670 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12562 +#: src/readelf.c:12624 #, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12567 +#: src/readelf.c:12629 #, c-format msgid "" "\n" @@ -5531,21 +5540,21 @@ msgid "" "%#0:\n" msgstr "" -#: src/readelf.c:12581 +#: src/readelf.c:12643 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:12613 +#: src/readelf.c:12675 #, c-format msgid "" "\n" "String section [%zu] '%s' contains % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:12618 +#: src/readelf.c:12680 #, c-format msgid "" "\n" @@ -5553,45 +5562,45 @@ msgid "" "offset %#0:\n" msgstr "" -#: src/readelf.c:12667 +#: src/readelf.c:12729 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:12697 +#: src/readelf.c:12759 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:12754 +#: src/readelf.c:12816 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:12757 +#: src/readelf.c:12819 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:12761 +#: src/readelf.c:12823 #, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" -#: src/readelf.c:12779 +#: src/readelf.c:12841 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:12784 +#: src/readelf.c:12846 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -6179,7 +6188,7 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:248 src/unstrip.c:2083 +#: src/unstrip.c:248 src/unstrip.c:2089 #, c-format msgid "cannot get ELF header: %s" msgstr "" @@ -6199,12 +6208,12 @@ msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 +#: src/unstrip.c:269 src/unstrip.c:2107 src/unstrip.c:2150 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:274 src/unstrip.c:2105 +#: src/unstrip.c:274 src/unstrip.c:2111 #, c-format msgid "cannot create program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" @@ -6219,275 +6228,275 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:293 src/unstrip.c:1705 +#: src/unstrip.c:293 src/unstrip.c:1711 #, c-format msgid "cannot get section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:295 src/unstrip.c:1707 +#: src/unstrip.c:295 src/unstrip.c:1713 #, c-format msgid "cannot copy section data: %s" msgstr "konnte Abschnittsdaten nicht kopieren: %s" -#: src/unstrip.c:319 +#: src/unstrip.c:323 #, c-format msgid "cannot create directory '%s'" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 -#: src/unstrip.c:1747 +#: src/unstrip.c:397 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861 +#: src/unstrip.c:1753 #, c-format msgid "cannot get symbol table entry: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 -#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 +#: src/unstrip.c:413 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696 +#: src/unstrip.c:1774 src/unstrip.c:1969 src/unstrip.c:1993 #, c-format msgid "cannot update symbol table: %s" msgstr "konnte Symboltabelle nicht aktualisieren: %s" -#: src/unstrip.c:417 +#: src/unstrip.c:423 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:463 src/unstrip.c:477 +#: src/unstrip.c:469 src/unstrip.c:483 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:576 +#: src/unstrip.c:582 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:589 +#: src/unstrip.c:595 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:844 +#: src/unstrip.c:850 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:846 +#: src/unstrip.c:852 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:863 +#: src/unstrip.c:869 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "ungültiger Offset %zu für Symbol %s" -#: src/unstrip.c:1021 src/unstrip.c:1425 +#: src/unstrip.c:1027 src/unstrip.c:1431 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1036 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "ungültige .debug_line Sektion" -#: src/unstrip.c:1042 +#: src/unstrip.c:1048 #, fuzzy, c-format msgid "couldn't get shdr for group section: %s" msgstr "konnte Versionierungsabschnitt nicht erstellen: %s" -#: src/unstrip.c:1047 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "ungültige .debug_line Sektion" -#: src/unstrip.c:1053 +#: src/unstrip.c:1059 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:1058 +#: src/unstrip.c:1064 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 +#: src/unstrip.c:1106 src/unstrip.c:1125 src/unstrip.c:1163 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1137 +#: src/unstrip.c:1143 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1148 +#: src/unstrip.c:1154 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1204 src/unstrip.c:1551 +#: src/unstrip.c:1210 src/unstrip.c:1557 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 +#: src/unstrip.c:1335 src/unstrip.c:1351 src/unstrip.c:1637 src/unstrip.c:1928 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1354 +#: src/unstrip.c:1360 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1383 src/unstrip.c:1387 +#: src/unstrip.c:1389 src/unstrip.c:1393 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 +#: src/unstrip.c:1397 src/unstrip.c:1401 src/unstrip.c:1652 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1398 +#: src/unstrip.c:1404 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1402 +#: src/unstrip.c:1408 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1473 src/unstrip.c:1566 +#: src/unstrip.c:1479 src/unstrip.c:1572 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1625 +#: src/unstrip.c:1631 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1755 +#: src/unstrip.c:1761 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:1787 +#: src/unstrip.c:1793 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:2062 +#: src/unstrip.c:2068 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:2091 +#: src/unstrip.c:2097 #, c-format msgid "cannot update ELF header: %s" msgstr "" -#: src/unstrip.c:2115 +#: src/unstrip.c:2121 #, c-format msgid "cannot update program header: %s" msgstr "konnte Programm-Kopf nicht aktualisieren: %s" -#: src/unstrip.c:2120 src/unstrip.c:2202 +#: src/unstrip.c:2126 src/unstrip.c:2208 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2171 +#: src/unstrip.c:2177 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2174 +#: src/unstrip.c:2180 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 +#: src/unstrip.c:2199 src/unstrip.c:2250 src/unstrip.c:2262 src/unstrip.c:2348 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2235 +#: src/unstrip.c:2241 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2237 +#: src/unstrip.c:2243 msgid ", use --force" msgstr "" -#: src/unstrip.c:2260 +#: src/unstrip.c:2266 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2263 +#: src/unstrip.c:2269 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2266 +#: src/unstrip.c:2272 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2269 +#: src/unstrip.c:2275 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2299 +#: src/unstrip.c:2305 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2303 +#: src/unstrip.c:2309 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2318 +#: src/unstrip.c:2324 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2322 +#: src/unstrip.c:2328 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2335 +#: src/unstrip.c:2341 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2366 +#: src/unstrip.c:2372 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2498 +#: src/unstrip.c:2504 #, c-format msgid "no matching modules found" msgstr "kein passendes Modul gefunden" -#: src/unstrip.c:2507 +#: src/unstrip.c:2513 #, c-format msgid "matched more than one module" msgstr "mehr als ein passendes Modul" -#: src/unstrip.c:2551 +#: src/unstrip.c:2557 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2552 +#: src/unstrip.c:2558 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" diff --git a/po/es.po b/po/es.po index c3b5e2c8..36c9513a 100644 --- a/po/es.po +++ b/po/es.po @@ -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: 2020-09-08 12:51+0200\n" +"POT-Creation-Date: 2020-10-31 17:37+0100\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz \n" @@ -58,7 +58,7 @@ msgstr "" "DETERMINADO.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 +#: src/readelf.c:11486 src/unstrip.c:316 src/unstrip.c:2401 src/unstrip.c:2606 #, c-format msgid "memory exhausted" msgstr "memoria agotada" @@ -221,7 +221,7 @@ msgstr "versión DWARF inválida" msgid "invalid directory index" msgstr "Índice de directorio inválido" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:76 msgid "address out of range" msgstr "dirección fuera de rango" @@ -252,7 +252,7 @@ msgstr "Índice de línea inválido" msgid "invalid address range index" msgstr "Índice de dirección de rango inválido" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:77 msgid "no matching address range" msgstr "dirección de rango no coincidente" @@ -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:643 src/unstrip.c:2541 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2547 msgid "Input selection options:" msgstr "Opciones de selección de entrada:" @@ -396,130 +396,135 @@ msgid "LZMA decompression failed" msgstr "falló la descompresión LZMA" #: libdwfl/libdwflP.h:64 +#, fuzzy +msgid "zstd decompression failed" +msgstr "falló la descompresión gzip" + +#: libdwfl/libdwflP.h:65 msgid "no support library found for machine" msgstr "no se ha encontrado una biblioteca de soporte para la máquina" -#: libdwfl/libdwflP.h:65 +#: libdwfl/libdwflP.h:66 msgid "Callbacks missing for ET_REL file" msgstr "No se encuentran rellamadas para el archivo ET_REL" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:67 msgid "Unsupported relocation type" msgstr "Tipo de reubicación no soportada" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:68 msgid "r_offset is bogus" msgstr "r_offset se encuentra inutilizable" -#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:69 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "desplazamiento fuera de rango" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:70 msgid "relocation refers to undefined symbol" msgstr "la reubicación hace referencia a un símbolo no definido" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:71 msgid "Callback returned failure" msgstr "La rellamada devolvió un fallo" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:72 msgid "No DWARF information found" msgstr "No se ha encontrado una información DWARF" -#: libdwfl/libdwflP.h:72 +#: libdwfl/libdwflP.h:73 msgid "No symbol table found" msgstr "No se ha encontrado una tabla simbólica" -#: libdwfl/libdwflP.h:73 +#: libdwfl/libdwflP.h:74 msgid "No ELF program headers" msgstr "No existen encabezados de programa ELF" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:75 msgid "address range overlaps an existing module" msgstr "el rango de dirección se superpone con un módulo existente" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:78 msgid "image truncated" msgstr "imagen truncada" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:79 msgid "ELF file opened" msgstr "Archivo ELF abierto" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:80 msgid "not a valid ELF file" msgstr "no es un archivo ELF válido" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:81 msgid "cannot handle DWARF type description" msgstr "no es posible manipular tipo de descripción DWARF" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:82 msgid "ELF file does not match build ID" msgstr "El archivo ELF no coincide con el ID construido" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:83 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:84 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:85 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:86 #, fuzzy msgid "Invalid register" msgstr "Parámetro inválido" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:87 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:88 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:89 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:90 #, fuzzy msgid "Invalid DWARF" msgstr "DWARF inválido" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:91 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:92 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:93 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:94 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:94 +#: libdwfl/libdwflP.h:95 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:95 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Invalid argument" msgstr "Parámetro inválido" -#: libdwfl/libdwflP.h:96 +#: libdwfl/libdwflP.h:97 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "no es un archivo ELF válido" @@ -625,7 +630,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:6172 +#: libelf/elf_error.c:87 src/readelf.c:6197 #, c-format msgid "invalid encoding" msgstr "codificación inválida" @@ -711,8 +716,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:9935 src/readelf.c:10535 -#: src/readelf.c:10636 src/readelf.c:10818 +#: libelf/elf_error.c:191 src/readelf.c:9997 src/readelf.c:10597 +#: src/readelf.c:10698 src/readelf.c:10880 #, c-format msgid "invalid data" msgstr "datos inválidos" @@ -1382,7 +1387,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2191 src/unstrip.c:2220 +#: src/unstrip.c:2197 src/unstrip.c:2226 #, c-format msgid "cannot open '%s'" msgstr "Imposible abrir '%s'" @@ -3792,8 +3797,8 @@ msgstr "No se puede crear el árbol de búsqueda" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 -#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11313 src/readelf.c:12503 +#: src/readelf.c:12714 src/readelf.c:12783 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4121,11 +4126,11 @@ msgstr "no se pudieron determinar el número de secciones: %s" msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 -#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 -#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 -#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12734 +#: src/unstrip.c:401 src/unstrip.c:432 src/unstrip.c:491 src/unstrip.c:612 +#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1220 +#: src/unstrip.c:1347 src/unstrip.c:1371 src/unstrip.c:1427 src/unstrip.c:1491 +#: src/unstrip.c:1666 src/unstrip.c:1817 src/unstrip.c:1960 src/unstrip.c:2059 #, c-format msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" @@ -4135,8 +4140,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:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 -#: src/readelf.c:10803 +#: src/readelf.c:670 src/readelf.c:6610 src/readelf.c:10585 src/readelf.c:10687 +#: src/readelf.c:10865 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" @@ -4479,7 +4484,7 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 +#: src/readelf.c:1460 src/unstrip.c:2118 src/unstrip.c:2160 src/unstrip.c:2167 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" @@ -4522,8 +4527,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 -#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12605 +#: src/readelf.c:12612 src/readelf.c:12656 src/readelf.c:12663 msgid "Couldn't uncompress section" msgstr "" @@ -4533,7 +4538,7 @@ msgid "cannot get section [%zd] header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" #: src/readelf.c:1805 src/readelf.c:2455 src/readelf.c:2713 src/readelf.c:2789 -#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5364 +#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5389 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr ".debug_line section inválida" @@ -5022,7 +5027,7 @@ msgstr " [%6tx] \n" msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] ... % bytes ...\n" -#: src/readelf.c:5054 +#: src/readelf.c:5079 #, c-format msgid "" "\n" @@ -5033,7 +5038,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " [ Código]\n" -#: src/readelf.c:5062 +#: src/readelf.c:5087 #, c-format msgid "" "\n" @@ -5042,20 +5047,20 @@ msgstr "" "\n" "Sección de abreviatura en compensación %:\n" -#: src/readelf.c:5075 +#: src/readelf.c:5100 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** error en lectura de abreviatura: %s\n" -#: src/readelf.c:5091 +#: src/readelf.c:5116 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] compensación: %, hijos: %s, etiqueta: %s\n" -#: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 -#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 -#: src/readelf.c:10324 +#: src/readelf.c:5149 src/readelf.c:5458 src/readelf.c:5625 src/readelf.c:6010 +#: src/readelf.c:6620 src/readelf.c:8357 src/readelf.c:9049 src/readelf.c:9522 +#: src/readelf.c:9773 src/readelf.c:9939 src/readelf.c:10326 +#: src/readelf.c:10386 #, c-format msgid "" "\n" @@ -5064,52 +5069,52 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#:\n" -#: src/readelf.c:5137 +#: src/readelf.c:5162 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 +#: src/readelf.c:5262 src/readelf.c:5286 src/readelf.c:5670 src/readelf.c:9094 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 +#: src/readelf.c:5264 src/readelf.c:5301 src/readelf.c:5683 src/readelf.c:9107 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 +#: src/readelf.c:5265 src/readelf.c:5310 src/readelf.c:5692 src/readelf.c:9116 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 +#: src/readelf.c:5267 src/readelf.c:5320 src/readelf.c:5702 src/readelf.c:9126 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 +#: src/readelf.c:5305 src/readelf.c:5687 src/readelf.c:9111 src/readelf.c:10518 #, fuzzy, c-format msgid "Unknown version" msgstr "versión desconocida" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 +#: src/readelf.c:5315 src/readelf.c:5528 src/readelf.c:5697 src/readelf.c:9121 #, fuzzy, c-format msgid "unsupported address size" msgstr "no hay valor de dirección" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 +#: src/readelf.c:5326 src/readelf.c:5539 src/readelf.c:5707 src/readelf.c:9131 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5354 src/readelf.c:5428 +#: src/readelf.c:5379 src/readelf.c:5453 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "no se ha podido obtener contenido de .debug_aranges: %s" -#: src/readelf.c:5369 +#: src/readelf.c:5394 #, c-format msgid "" "\n" @@ -5124,12 +5129,12 @@ msgstr[1] "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entradas %zu:\n" -#: src/readelf.c:5400 +#: src/readelf.c:5425 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5402 +#: src/readelf.c:5427 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5137,7 +5142,7 @@ msgstr "" " Inicio [%*zu]: %0#*, longitud: %5, compensación CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8359 +#: src/readelf.c:5471 src/readelf.c:8384 #, fuzzy, c-format msgid "" "\n" @@ -5146,150 +5151,150 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 -#: src/readelf.c:9050 +#: src/readelf.c:5475 src/readelf.c:5651 src/readelf.c:6644 src/readelf.c:8395 +#: src/readelf.c:9075 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:5466 +#: src/readelf.c:5491 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " (compensación: %#)" -#: src/readelf.c:5478 +#: src/readelf.c:5503 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:5482 +#: src/readelf.c:5507 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5493 +#: src/readelf.c:5518 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " (compensación: %#)" -#: src/readelf.c:5499 +#: src/readelf.c:5524 #, fuzzy, c-format msgid " Address size: %6\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5510 +#: src/readelf.c:5535 #, fuzzy, c-format msgid "" " Segment size: %6\n" "\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:5565 +#: src/readelf.c:5590 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5634 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:5632 src/readelf.c:9056 +#: src/readelf.c:5657 src/readelf.c:9081 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5687 src/readelf.c:9111 +#: src/readelf.c:5712 src/readelf.c:9136 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:5703 src/readelf.c:9127 +#: src/readelf.c:5728 src/readelf.c:9152 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9129 +#: src/readelf.c:5730 src/readelf.c:9154 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9135 +#: src/readelf.c:5736 src/readelf.c:9160 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9146 +#: src/readelf.c:5747 src/readelf.c:9171 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9150 +#: src/readelf.c:5751 src/readelf.c:9175 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:5778 +#: src/readelf.c:5803 #, fuzzy, c-format msgid "invalid range list data" msgstr "datos inválidos" -#: src/readelf.c:5963 src/readelf.c:9438 +#: src/readelf.c:5988 src/readelf.c:9500 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5980 +#: src/readelf.c:6005 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9493 +#: src/readelf.c:6041 src/readelf.c:9555 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9495 +#: src/readelf.c:6043 src/readelf.c:9557 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 +#: src/readelf.c:6052 src/readelf.c:9583 src/readelf.c:9609 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:6052 src/readelf.c:9631 +#: src/readelf.c:6077 src/readelf.c:9693 #, fuzzy msgid "base address" msgstr "Establecer dirección a %s\n" -#: src/readelf.c:6062 src/readelf.c:9641 +#: src/readelf.c:6087 src/readelf.c:9703 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] lista vacía\n" -#: src/readelf.c:6317 +#: src/readelf.c:6342 #, fuzzy msgid " \n" msgstr " \n" -#: src/readelf.c:6573 +#: src/readelf.c:6598 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:6591 +#: src/readelf.c:6616 #, c-format msgid "" "\n" @@ -5299,7 +5304,7 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación " "%#:\n" -#: src/readelf.c:6641 +#: src/readelf.c:6666 #, c-format msgid "" "\n" @@ -5308,65 +5313,65 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:6742 src/readelf.c:6896 +#: src/readelf.c:6767 src/readelf.c:6921 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:6757 +#: src/readelf.c:6782 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:6763 +#: src/readelf.c:6788 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:6873 +#: src/readelf.c:6898 #, c-format msgid " (offset: %#)" msgstr " (compensación: %#)" -#: src/readelf.c:6880 +#: src/readelf.c:6905 #, c-format msgid " (end offset: %#)" msgstr " (fin de compensación: %#)" -#: src/readelf.c:6917 +#: src/readelf.c:6942 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "Puntero %-26sLSDA: %#\n" -#: src/readelf.c:7002 +#: src/readelf.c:7027 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:7012 +#: src/readelf.c:7037 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:7034 +#: src/readelf.c:7059 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:7364 +#: src/readelf.c:7389 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "Archivo inválido" -#: src/readelf.c:7368 +#: src/readelf.c:7393 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " establecer archivo a %\n" -#: src/readelf.c:7372 +#: src/readelf.c:7397 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:7685 +#: src/readelf.c:7710 #, c-format msgid "" "\n" @@ -5377,12 +5382,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " [Offset]\n" -#: src/readelf.c:7735 +#: src/readelf.c:7760 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7754 +#: src/readelf.c:7779 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5395,7 +5400,7 @@ msgstr "" "Tamaño de dirección: %, Tamaño de compensación: %\n" " Tipo de firma: %#, Tipo de compensación: %#\n" -#: src/readelf.c:7766 +#: src/readelf.c:7791 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5406,39 +5411,39 @@ msgstr "" " Versión: %, Compensación de sección de abreviatura: %, " "Tamaño de dirección: %, Tamaño de compensación: %\n" -#: src/readelf.c:7776 src/readelf.c:7939 +#: src/readelf.c:7801 src/readelf.c:7964 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7803 +#: src/readelf.c:7828 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7832 +#: src/readelf.c:7857 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:7841 +#: src/readelf.c:7866 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "no se ha podido obtener etiqueta de DIE en compensación% en sección " "'%s': %s" -#: src/readelf.c:7879 +#: src/readelf.c:7904 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:7887 +#: src/readelf.c:7912 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:7931 +#: src/readelf.c:7956 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5449,7 +5454,7 @@ msgstr "" " Versión: %, Compensación de sección de abreviatura: %, " "Tamaño de dirección: %, Tamaño de compensación: %\n" -#: src/readelf.c:7983 +#: src/readelf.c:8008 #, fuzzy, c-format msgid "" "\n" @@ -5459,18 +5464,18 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#:\n" -#: src/readelf.c:8315 +#: src/readelf.c:8340 #, fuzzy, c-format msgid "unknown form: %s" msgstr "Forma % desconocida" -#: src/readelf.c:8346 +#: src/readelf.c:8371 #, 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:8448 +#: src/readelf.c:8473 #, fuzzy, c-format msgid "" "\n" @@ -5501,34 +5506,34 @@ msgstr "" "\n" "Códigos operativos:\n" -#: src/readelf.c:8470 +#: src/readelf.c:8495 #, 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:8478 +#: src/readelf.c:8503 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "no hay valor de dirección" -#: src/readelf.c:8486 +#: src/readelf.c:8511 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:8496 +#: src/readelf.c:8521 #, 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:8511 +#: src/readelf.c:8536 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] argumento %hhu \n" msgstr[1] " [%*] argumento %hhu\n" -#: src/readelf.c:8522 +#: src/readelf.c:8547 msgid "" "\n" "Directory table:" @@ -5536,12 +5541,12 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:8528 src/readelf.c:8605 +#: src/readelf.c:8553 src/readelf.c:8630 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8599 +#: src/readelf.c:8624 #, fuzzy msgid "" "\n" @@ -5550,7 +5555,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:8660 +#: src/readelf.c:8685 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5558,7 +5563,7 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:8699 +#: src/readelf.c:8724 #, fuzzy msgid "" "\n" @@ -5567,7 +5572,7 @@ msgstr "" "\n" " Declaraciones de número de Línea:" -#: src/readelf.c:8703 +#: src/readelf.c:8728 msgid "" "\n" "Line number statements:" @@ -5575,121 +5580,121 @@ msgstr "" "\n" " Declaraciones de número de Línea:" -#: src/readelf.c:8726 +#: src/readelf.c:8751 #, 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:8760 +#: src/readelf.c:8785 #, 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:8764 +#: src/readelf.c:8789 #, 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:8767 +#: src/readelf.c:8792 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8785 +#: src/readelf.c:8810 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:8790 +#: src/readelf.c:8815 #, fuzzy msgid " end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:8808 +#: src/readelf.c:8833 #, fuzzy, c-format msgid " set address to " msgstr "Establecer dirección a %s\n" -#: src/readelf.c:8836 +#: src/readelf.c:8861 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "definir nuevo archivo: dir=%u, mtime=%, longitud=%, nombre=" "%s\n" -#: src/readelf.c:8850 +#: src/readelf.c:8875 #, c-format msgid " set discriminator to %u\n" msgstr " establecer discriminador a %u\n" #. Unknown, ignore it. -#: src/readelf.c:8855 +#: src/readelf.c:8880 #, fuzzy msgid " unknown opcode" msgstr "código operativo desconocido " #. Takes no argument. -#: src/readelf.c:8867 +#: src/readelf.c:8892 msgid " copy" msgstr "Copiar" -#: src/readelf.c:8878 +#: src/readelf.c:8903 #, fuzzy, c-format msgid " advance address by %u to " msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:8882 src/readelf.c:8943 +#: src/readelf.c:8907 src/readelf.c:8968 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8894 +#: src/readelf.c:8919 #, c-format msgid " advance line by constant %d to %\n" msgstr " línea de avance por la constante %d a %\n" -#: src/readelf.c:8904 +#: src/readelf.c:8929 #, c-format msgid " set file to %\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:8915 +#: src/readelf.c:8940 #, c-format msgid " set column to %\n" msgstr " Establecer columna a %\n" -#: src/readelf.c:8922 +#: src/readelf.c:8947 #, c-format msgid " set '%s' to %\n" msgstr "Establecer '%s' a %\n" #. Takes no argument. -#: src/readelf.c:8928 +#: src/readelf.c:8953 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:8939 +#: src/readelf.c:8964 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:8959 +#: src/readelf.c:8984 #, 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:8969 +#: src/readelf.c:8994 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" #. Takes no argument. -#: src/readelf.c:8974 +#: src/readelf.c:8999 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:8984 +#: src/readelf.c:9009 #, c-format msgid " set isa to %u\n" msgstr " establecer isa para %u\n" @@ -5697,105 +5702,110 @@ 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:8993 +#: src/readelf.c:9018 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " opcódigo con parámetro % desconocido:" msgstr[1] " opcódigo con parámetros % desconocido:" -#: src/readelf.c:9033 +#: src/readelf.c:9058 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9202 +#: src/readelf.c:9224 +#, fuzzy, c-format +msgid " \n" +msgstr " \n" + +#: src/readelf.c:9264 #, fuzzy, c-format msgid "invalid loclists data" msgstr "datos inválidos" -#: src/readelf.c:9455 +#: src/readelf.c:9517 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:9668 src/readelf.c:10712 +#: src/readelf.c:9730 src/readelf.c:10774 msgid " \n" msgstr " \n" -#: src/readelf.c:9723 src/readelf.c:9886 +#: src/readelf.c:9785 src/readelf.c:9948 #, 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:9803 +#: src/readelf.c:9865 #, 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:9826 +#: src/readelf.c:9888 #, 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:9927 +#: src/readelf.c:9989 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:9939 +#: src/readelf.c:10001 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9945 src/readelf.c:10832 +#: src/readelf.c:10007 src/readelf.c:10894 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9952 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " Dirección de punto de entrada: %#\n" -#: src/readelf.c:9981 +#: src/readelf.c:10043 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (compensación: %#)" -#: src/readelf.c:9989 +#: src/readelf.c:10051 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:10014 +#: src/readelf.c:10076 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " opcódigo con parámetro % desconocido:" -#: src/readelf.c:10021 +#: src/readelf.c:10083 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10033 +#: src/readelf.c:10095 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] argumento %hhu \n" -#: src/readelf.c:10048 +#: src/readelf.c:10110 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10249 +#: src/readelf.c:10311 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " Compensación [%5d] DIE: %6, Compensación CU DIE: %6, " "nombre: %s\n" -#: src/readelf.c:10293 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5806,37 +5816,37 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " %*s String\n" -#: src/readelf.c:10308 +#: src/readelf.c:10370 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:10337 +#: src/readelf.c:10399 #, 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:10436 +#: src/readelf.c:10498 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10438 +#: src/readelf.c:10500 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10452 +#: src/readelf.c:10514 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10461 +#: src/readelf.c:10523 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " (compensación: %#)" -#: src/readelf.c:10515 +#: src/readelf.c:10577 #, c-format msgid "" "\n" @@ -5845,7 +5855,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10617 +#: src/readelf.c:10679 #, c-format msgid "" "\n" @@ -5854,22 +5864,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10640 +#: src/readelf.c:10702 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:10652 +#: src/readelf.c:10714 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:10667 +#: src/readelf.c:10729 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:10680 +#: src/readelf.c:10742 msgid "" "\n" " Call site table:" @@ -5877,7 +5887,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:10694 +#: src/readelf.c:10756 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5890,12 +5900,12 @@ msgstr "" " Landing pad: %#\n" " Action: %u\n" -#: src/readelf.c:10767 +#: src/readelf.c:10829 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:10794 +#: src/readelf.c:10856 #, fuzzy, c-format msgid "" "\n" @@ -5904,37 +5914,37 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10823 +#: src/readelf.c:10885 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10841 +#: src/readelf.c:10903 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10848 +#: src/readelf.c:10910 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10855 +#: src/readelf.c:10917 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:10862 +#: src/readelf.c:10924 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:10869 +#: src/readelf.c:10931 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:10883 +#: src/readelf.c:10945 #, fuzzy, c-format msgid "" "\n" @@ -5943,7 +5953,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10908 +#: src/readelf.c:10970 #, fuzzy, c-format msgid "" "\n" @@ -5952,7 +5962,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10937 +#: src/readelf.c:10999 #, fuzzy, c-format msgid "" "\n" @@ -5961,7 +5971,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:10969 +#: src/readelf.c:11031 #, fuzzy, c-format msgid "" "\n" @@ -5970,18 +5980,18 @@ msgstr "" "\n" "Tabla de símbolos inválida en compensación %#0\n" -#: src/readelf.c:11107 +#: src/readelf.c:11169 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 -#: src/readelf.c:12266 +#: src/readelf.c:11537 src/readelf.c:12159 src/readelf.c:12270 +#: src/readelf.c:12328 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:11838 +#: src/readelf.c:11900 #, c-format msgid "" "\n" @@ -5990,21 +6000,21 @@ msgstr "" "\n" "%*s... ..." -#: src/readelf.c:12345 +#: src/readelf.c:12407 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:12374 +#: src/readelf.c:12436 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12426 +#: src/readelf.c:12488 #, 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:12460 +#: src/readelf.c:12522 #, c-format msgid "" "\n" @@ -6013,7 +6023,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de % bytes en compensación %#0:\n" -#: src/readelf.c:12483 +#: src/readelf.c:12545 #, c-format msgid "" "\n" @@ -6022,7 +6032,7 @@ msgstr "" "\n" "Segmento de nota de % bytes en compensación %#0:\n" -#: src/readelf.c:12530 +#: src/readelf.c:12592 #, fuzzy, c-format msgid "" "\n" @@ -6031,12 +6041,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12557 src/readelf.c:12608 +#: src/readelf.c:12619 src/readelf.c:12670 #, 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:12562 +#: src/readelf.c:12624 #, fuzzy, c-format msgid "" "\n" @@ -6046,7 +6056,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', % bytes en compensación " "%#0:\n" -#: src/readelf.c:12567 +#: src/readelf.c:12629 #, fuzzy, c-format msgid "" "\n" @@ -6057,7 +6067,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', % bytes en compensación " "%#0:\n" -#: src/readelf.c:12581 +#: src/readelf.c:12643 #, fuzzy, c-format msgid "" "\n" @@ -6066,7 +6076,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:12613 +#: src/readelf.c:12675 #, fuzzy, c-format msgid "" "\n" @@ -6076,7 +6086,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene % bytes en compensación " "%#0:\n" -#: src/readelf.c:12618 +#: src/readelf.c:12680 #, fuzzy, c-format msgid "" "\n" @@ -6087,7 +6097,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene % bytes en compensación " "%#0:\n" -#: src/readelf.c:12667 +#: src/readelf.c:12729 #, c-format msgid "" "\n" @@ -6096,7 +6106,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:12697 +#: src/readelf.c:12759 #, c-format msgid "" "\n" @@ -6105,12 +6115,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:12754 +#: src/readelf.c:12816 #, 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:12757 +#: src/readelf.c:12819 #, c-format msgid "" "\n" @@ -6119,7 +6129,7 @@ msgstr "" "\n" "Archivo '%s' no tiene índice de símbolo\n" -#: src/readelf.c:12761 +#: src/readelf.c:12823 #, fuzzy, c-format msgid "" "\n" @@ -6128,12 +6138,12 @@ msgstr "" "\n" "Índice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:12779 +#: src/readelf.c:12841 #, 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:12784 +#: src/readelf.c:12846 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6730,7 +6740,7 @@ 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:248 src/unstrip.c:2083 +#: src/unstrip.c:248 src/unstrip.c:2089 #, c-format msgid "cannot get ELF header: %s" msgstr "no se puede leer encabezamiento ELF: %s" @@ -6750,12 +6760,12 @@ msgstr "no se puede actualizar reubicación: %s" msgid "cannot copy ELF header: %s" msgstr "no se puede copiar encabezamiento ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 +#: src/unstrip.c:269 src/unstrip.c:2107 src/unstrip.c:2150 #, 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:274 src/unstrip.c:2105 +#: src/unstrip.c:274 src/unstrip.c:2111 #, c-format msgid "cannot create program headers: %s" msgstr "No pueden crear encabezamientos de programa: %s" @@ -6770,202 +6780,202 @@ msgstr "no puede copiar encabezamiento de programa: %s" msgid "cannot copy section header: %s" msgstr "no se puede copiar encabezamiento de sección: %s" -#: src/unstrip.c:293 src/unstrip.c:1705 +#: src/unstrip.c:293 src/unstrip.c:1711 #, c-format msgid "cannot get section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:295 src/unstrip.c:1707 +#: src/unstrip.c:295 src/unstrip.c:1713 #, c-format msgid "cannot copy section data: %s" msgstr "no pueden copiar datos de sección: %s" -#: src/unstrip.c:319 +#: src/unstrip.c:323 #, c-format msgid "cannot create directory '%s'" msgstr "no se puede crear el directorio '%s'" -#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 -#: src/unstrip.c:1747 +#: src/unstrip.c:397 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861 +#: src/unstrip.c:1753 #, c-format msgid "cannot get symbol table entry: %s" msgstr "no se puede obtener entrada de tabla de símbolos: %s" -#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 -#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 +#: src/unstrip.c:413 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696 +#: src/unstrip.c:1774 src/unstrip.c:1969 src/unstrip.c:1993 #, c-format msgid "cannot update symbol table: %s" msgstr "no se puede actualizar tabla de símbolos: %s" -#: src/unstrip.c:417 +#: src/unstrip.c:423 #, c-format msgid "cannot update section header: %s" msgstr "no se puede actualizar encabezamiento de sección: %s" -#: src/unstrip.c:463 src/unstrip.c:477 +#: src/unstrip.c:469 src/unstrip.c:483 #, c-format msgid "cannot update relocation: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:576 +#: src/unstrip.c:582 #, c-format msgid "cannot get symbol version: %s" msgstr "no se puede obtener versión de símbolo: %s" -#: src/unstrip.c:589 +#: src/unstrip.c:595 #, 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:844 +#: src/unstrip.c:850 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:846 +#: src/unstrip.c:852 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:863 +#: src/unstrip.c:869 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "compensación de cadena inválida en símbolo [%Zu]" -#: src/unstrip.c:1021 src/unstrip.c:1425 +#: src/unstrip.c:1027 src/unstrip.c:1431 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "no se puede leer nombre [%Zu]: %s" -#: src/unstrip.c:1036 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr ".debug_line section inválida" -#: src/unstrip.c:1042 +#: src/unstrip.c:1048 #, 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:1047 +#: src/unstrip.c:1053 #, 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:1053 +#: src/unstrip.c:1059 #, 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:1058 +#: src/unstrip.c:1064 #, 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:1100 src/unstrip.c:1119 src/unstrip.c:1157 +#: src/unstrip.c:1106 src/unstrip.c:1125 src/unstrip.c:1163 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: src/unstrip.c:1137 +#: src/unstrip.c:1143 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1148 +#: src/unstrip.c:1154 #, c-format msgid "invalid contents in '%s' section" msgstr "contenido inválido en sección '%s'" -#: src/unstrip.c:1204 src/unstrip.c:1551 +#: src/unstrip.c:1210 src/unstrip.c:1557 #, 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:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 +#: src/unstrip.c:1335 src/unstrip.c:1351 src/unstrip.c:1637 src/unstrip.c:1928 #, 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:1354 +#: src/unstrip.c:1360 #, 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:1383 src/unstrip.c:1387 +#: src/unstrip.c:1389 src/unstrip.c:1393 #, 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:1391 src/unstrip.c:1395 src/unstrip.c:1646 +#: src/unstrip.c:1397 src/unstrip.c:1401 src/unstrip.c:1652 #, c-format msgid "cannot get section count: %s" msgstr "No se puede obtener cuenta de sección: %s" -#: src/unstrip.c:1398 +#: src/unstrip.c:1404 #, 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:1402 +#: src/unstrip.c:1408 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1473 src/unstrip.c:1566 +#: src/unstrip.c:1479 src/unstrip.c:1572 #, 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:1625 +#: src/unstrip.c:1631 #, c-format msgid "cannot add new section: %s" msgstr "No se puede añadir nueva sección: %s" -#: src/unstrip.c:1755 +#: src/unstrip.c:1761 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:1787 +#: src/unstrip.c:1793 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:2062 +#: src/unstrip.c:2068 #, c-format msgid "cannot read section data: %s" msgstr "no se puede leer la sección de datos: %s" -#: src/unstrip.c:2091 +#: src/unstrip.c:2097 #, c-format msgid "cannot update ELF header: %s" msgstr "No se puede actualizar encabezamiento ELF: %s" -#: src/unstrip.c:2115 +#: src/unstrip.c:2121 #, c-format msgid "cannot update program header: %s" msgstr "no se puede actualizar encabezamiento de programa: %s" -#: src/unstrip.c:2120 src/unstrip.c:2202 +#: src/unstrip.c:2126 src/unstrip.c:2208 #, c-format msgid "cannot write output file: %s" msgstr "no se puede escribir al archivo de salida: %s" -#: src/unstrip.c:2171 +#: src/unstrip.c:2177 #, 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:2174 +#: src/unstrip.c:2180 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6973,77 +6983,77 @@ msgstr "" "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere " "prelink -u" -#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 +#: src/unstrip.c:2199 src/unstrip.c:2250 src/unstrip.c:2262 src/unstrip.c:2348 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "no se puede crear un descriptor ELF: %s" -#: src/unstrip.c:2235 +#: src/unstrip.c:2241 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2237 +#: src/unstrip.c:2243 msgid ", use --force" msgstr "" -#: src/unstrip.c:2260 +#: src/unstrip.c:2266 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2263 +#: src/unstrip.c:2269 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2266 +#: src/unstrip.c:2272 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2269 +#: src/unstrip.c:2275 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2299 +#: src/unstrip.c:2305 #, 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:2303 +#: src/unstrip.c:2309 #, 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:2318 +#: src/unstrip.c:2324 #, 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:2322 +#: src/unstrip.c:2328 #, 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:2335 +#: src/unstrip.c:2341 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "No se obtuvo el archivo '%s' de módulo '%s' " -#: src/unstrip.c:2366 +#: src/unstrip.c:2372 #, 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:2498 +#: src/unstrip.c:2504 #, c-format msgid "no matching modules found" msgstr "No se encontraron módulos coincidentes" -#: src/unstrip.c:2507 +#: src/unstrip.c:2513 #, c-format msgid "matched more than one module" msgstr "coincidió con más de un módulo" -#: src/unstrip.c:2551 +#: src/unstrip.c:2557 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7051,7 +7061,7 @@ msgstr "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" -#: src/unstrip.c:2552 +#: src/unstrip.c:2558 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" diff --git a/po/ja.po b/po/ja.po index d1f05ca8..3c22d37a 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-09-08 12:51+0200\n" +"POT-Creation-Date: 2020-10-31 17:37+0100\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi \n" "Language-Team: Japanese \n" @@ -51,7 +51,7 @@ msgstr "" "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:3449 -#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 +#: src/readelf.c:11486 src/unstrip.c:316 src/unstrip.c:2401 src/unstrip.c:2606 #, c-format msgid "memory exhausted" msgstr "メモリー消費済み" @@ -214,7 +214,7 @@ msgstr "不当な DWARF バージョン" msgid "invalid directory index" msgstr "不当なディレクトリー索引" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:76 msgid "address out of range" msgstr "アドレスが範囲外です" @@ -245,7 +245,7 @@ msgstr "不当な行索引" msgid "invalid address range index" msgstr "不当なアドレス範囲索引" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:77 msgid "no matching address range" msgstr "アドレス範囲に対応しません" @@ -293,7 +293,7 @@ msgstr "不明な命令コード" msgid ".debug_addr section missing" msgstr ".debug_ranges セクションがありません" -#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2547 msgid "Input selection options:" msgstr "選択オプションを入力してください:" @@ -389,136 +389,140 @@ msgid "LZMA decompression failed" msgstr "" #: libdwfl/libdwflP.h:64 -msgid "no support library found for machine" +msgid "zstd decompression failed" msgstr "" #: libdwfl/libdwflP.h:65 -msgid "Callbacks missing for ET_REL file" +msgid "no support library found for machine" msgstr "" #: libdwfl/libdwflP.h:66 -msgid "Unsupported relocation type" +msgid "Callbacks missing for ET_REL file" msgstr "" #: libdwfl/libdwflP.h:67 +msgid "Unsupported relocation type" +msgstr "" + +#: libdwfl/libdwflP.h:68 msgid "r_offset is bogus" msgstr "" -#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:69 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "オフセットが範囲を越えている" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:70 #, fuzzy msgid "relocation refers to undefined symbol" msgstr "定義されたシンボルの印刷サイズ" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:71 msgid "Callback returned failure" msgstr "" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:72 #, fuzzy msgid "No DWARF information found" msgstr "DWARF 情報がありません" -#: libdwfl/libdwflP.h:72 +#: libdwfl/libdwflP.h:73 msgid "No symbol table found" msgstr "" -#: libdwfl/libdwflP.h:73 +#: libdwfl/libdwflP.h:74 #, fuzzy msgid "No ELF program headers" msgstr "プログラムヘッダーを得られません: %s" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:75 msgid "address range overlaps an existing module" msgstr "" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:78 msgid "image truncated" msgstr "" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:79 #, fuzzy msgid "ELF file opened" msgstr "ファイルのオープンを追跡します。" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:80 #, fuzzy msgid "not a valid ELF file" msgstr "不当な ELF ファイル" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:81 #, fuzzy msgid "cannot handle DWARF type description" msgstr "Elf 記述子を生成できません: %s" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:82 msgid "ELF file does not match build ID" msgstr "" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:83 #, fuzzy msgid "corrupt .gnu.prelink_undo section data" msgstr "ラインデータセクションデータを得られません: %s" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:84 msgid "Internal error due to ebl" msgstr "" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:85 msgid "Missing data in core file" msgstr "" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:86 #, fuzzy msgid "Invalid register" msgstr "不当なパラメーター" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:87 msgid "Error reading process memory" msgstr "" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:88 msgid "Couldn't find architecture of any ELF" msgstr "" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:89 msgid "Error parsing /proc filesystem" msgstr "" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:90 #, fuzzy msgid "Invalid DWARF" msgstr "不当な DWARF" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:91 msgid "Unsupported DWARF" msgstr "" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:92 msgid "Unable to find more threads" msgstr "" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:93 msgid "Dwfl already has attached state" msgstr "" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:94 msgid "Dwfl has no attached state" msgstr "" -#: libdwfl/libdwflP.h:94 +#: libdwfl/libdwflP.h:95 msgid "Unwinding not supported for this architecture" msgstr "" -#: libdwfl/libdwflP.h:95 +#: libdwfl/libdwflP.h:96 #, fuzzy msgid "Invalid argument" msgstr "不当なパラメーター" -#: libdwfl/libdwflP.h:96 +#: libdwfl/libdwflP.h:97 #, fuzzy msgid "Not an ET_CORE ELF file" msgstr "不当な ELF ファイル" @@ -624,7 +628,7 @@ msgstr "ソース演算子の大きさが無効" msgid "invalid size of destination operand" msgstr "宛先演算子の大きさが無効" -#: libelf/elf_error.c:87 src/readelf.c:6172 +#: libelf/elf_error.c:87 src/readelf.c:6197 #, c-format msgid "invalid encoding" msgstr "無効なエンコード" @@ -711,8 +715,8 @@ msgstr "データ/scnが不整合です" msgid "invalid section header" msgstr "不当なセクションヘッダー" -#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 -#: src/readelf.c:10636 src/readelf.c:10818 +#: libelf/elf_error.c:191 src/readelf.c:9997 src/readelf.c:10597 +#: src/readelf.c:10698 src/readelf.c:10880 #, c-format msgid "invalid data" msgstr "不当なデータ" @@ -1374,7 +1378,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2191 src/unstrip.c:2220 +#: src/unstrip.c:2197 src/unstrip.c:2226 #, c-format msgid "cannot open '%s'" msgstr "'%s' を開けません" @@ -3569,8 +3573,8 @@ msgstr "検索ツリーを生成できません" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 -#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11313 src/readelf.c:12503 +#: src/readelf.c:12714 src/readelf.c:12783 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -3893,11 +3897,11 @@ msgstr "セクション数を決定できません: %s" msgid "cannot get section: %s" msgstr "セクションを得られません: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 -#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 -#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 -#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12734 +#: src/unstrip.c:401 src/unstrip.c:432 src/unstrip.c:491 src/unstrip.c:612 +#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1220 +#: src/unstrip.c:1347 src/unstrip.c:1371 src/unstrip.c:1427 src/unstrip.c:1491 +#: src/unstrip.c:1666 src/unstrip.c:1817 src/unstrip.c:1960 src/unstrip.c:2059 #, c-format msgid "cannot get section header: %s" msgstr "セクションヘッダーを得られません: %s" @@ -3907,8 +3911,8 @@ msgstr "セクションヘッダーを得られません: %s" msgid "cannot get section name" msgstr "セクションを得られません: %s" -#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 -#: src/readelf.c:10803 +#: src/readelf.c:670 src/readelf.c:6610 src/readelf.c:10585 src/readelf.c:10687 +#: src/readelf.c:10865 #, c-format msgid "cannot get %s content: %s" msgstr "%s の内容を得られません: %s" @@ -4250,7 +4254,7 @@ msgstr "" " セクションからセグメントへのマッビング:\n" " セグメント セクション..." -#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 +#: src/readelf.c:1460 src/unstrip.c:2118 src/unstrip.c:2160 src/unstrip.c:2167 #, c-format msgid "cannot get program header: %s" msgstr "プログラムヘッダーを得られません: %s" @@ -4289,8 +4293,8 @@ msgstr "<不当なシンボル>" msgid "" msgstr "<不当なセクション>" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 -#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12605 +#: src/readelf.c:12612 src/readelf.c:12656 src/readelf.c:12663 msgid "Couldn't uncompress section" msgstr "" @@ -4300,7 +4304,7 @@ msgid "cannot get section [%zd] header: %s" msgstr "セクションヘッダーを得られません: %s" #: src/readelf.c:1805 src/readelf.c:2455 src/readelf.c:2713 src/readelf.c:2789 -#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5364 +#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5389 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "不当な .debug_line セクション" @@ -4745,7 +4749,7 @@ msgstr "" msgid " [%6tx] ... % bytes ...\n" msgstr "" -#: src/readelf.c:5054 +#: src/readelf.c:5079 #, c-format msgid "" "\n" @@ -4756,7 +4760,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " [ コード]\n" -#: src/readelf.c:5062 +#: src/readelf.c:5087 #, c-format msgid "" "\n" @@ -4765,20 +4769,20 @@ msgstr "" "\n" "オフセット % の略語セクション:\n" -#: src/readelf.c:5075 +#: src/readelf.c:5100 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** 略語を読んでいる間にエラー: %s\n" -#: src/readelf.c:5091 +#: src/readelf.c:5116 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %、子: %s、タグ: %s\n" -#: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 -#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 -#: src/readelf.c:10324 +#: src/readelf.c:5149 src/readelf.c:5458 src/readelf.c:5625 src/readelf.c:6010 +#: src/readelf.c:6620 src/readelf.c:8357 src/readelf.c:9049 src/readelf.c:9522 +#: src/readelf.c:9773 src/readelf.c:9939 src/readelf.c:10326 +#: src/readelf.c:10386 #, c-format msgid "" "\n" @@ -4787,52 +4791,52 @@ msgstr "" "\n" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:5137 +#: src/readelf.c:5162 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 +#: src/readelf.c:5262 src/readelf.c:5286 src/readelf.c:5670 src/readelf.c:9094 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 +#: src/readelf.c:5264 src/readelf.c:5301 src/readelf.c:5683 src/readelf.c:9107 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 +#: src/readelf.c:5265 src/readelf.c:5310 src/readelf.c:5692 src/readelf.c:9116 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 +#: src/readelf.c:5267 src/readelf.c:5320 src/readelf.c:5702 src/readelf.c:9126 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 +#: src/readelf.c:5305 src/readelf.c:5687 src/readelf.c:9111 src/readelf.c:10518 #, fuzzy, c-format msgid "Unknown version" msgstr "不明なバージョン" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 +#: src/readelf.c:5315 src/readelf.c:5528 src/readelf.c:5697 src/readelf.c:9121 #, fuzzy, c-format msgid "unsupported address size" msgstr "アドレス値ではありません" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 +#: src/readelf.c:5326 src/readelf.c:5539 src/readelf.c:5707 src/readelf.c:9131 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:5354 src/readelf.c:5428 +#: src/readelf.c:5379 src/readelf.c:5453 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr ".debug_aragnes の内容を得られません: %s" -#: src/readelf.c:5369 +#: src/readelf.c:5394 #, c-format msgid "" "\n" @@ -4845,19 +4849,19 @@ msgstr[0] "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:5400 +#: src/readelf.c:5425 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5402 +#: src/readelf.c:5427 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" msgstr "" " [%*zu] 開始: %0#*、長さ: %5、CU DIE オフセット: %6\n" -#: src/readelf.c:5446 src/readelf.c:8359 +#: src/readelf.c:5471 src/readelf.c:8384 #, fuzzy, c-format msgid "" "\n" @@ -4866,152 +4870,152 @@ msgstr "" "\n" "オフセット %Zu のテーブル:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 -#: src/readelf.c:9050 +#: src/readelf.c:5475 src/readelf.c:5651 src/readelf.c:6644 src/readelf.c:8395 +#: src/readelf.c:9075 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:5466 +#: src/readelf.c:5491 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5478 +#: src/readelf.c:5503 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:5482 +#: src/readelf.c:5507 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:5493 +#: src/readelf.c:5518 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5499 +#: src/readelf.c:5524 #, fuzzy, c-format msgid " Address size: %6\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5510 +#: src/readelf.c:5535 #, fuzzy, c-format msgid "" " Segment size: %6\n" "\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:5565 +#: src/readelf.c:5590 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:5609 +#: src/readelf.c:5634 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:5632 src/readelf.c:9056 +#: src/readelf.c:5657 src/readelf.c:9081 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5687 src/readelf.c:9111 +#: src/readelf.c:5712 src/readelf.c:9136 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:5703 src/readelf.c:9127 +#: src/readelf.c:5728 src/readelf.c:9152 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9129 +#: src/readelf.c:5730 src/readelf.c:9154 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9135 +#: src/readelf.c:5736 src/readelf.c:9160 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9146 +#: src/readelf.c:5747 src/readelf.c:9171 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9150 +#: src/readelf.c:5751 src/readelf.c:9175 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:5778 +#: src/readelf.c:5803 #, fuzzy, c-format msgid "invalid range list data" msgstr "不当なデータ" -#: src/readelf.c:5963 src/readelf.c:9438 +#: src/readelf.c:5988 src/readelf.c:9500 #, c-format msgid "" " %zu padding bytes\n" "\n" msgstr "" -#: src/readelf.c:5980 +#: src/readelf.c:6005 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:6016 src/readelf.c:9493 +#: src/readelf.c:6041 src/readelf.c:9555 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9495 +#: src/readelf.c:6043 src/readelf.c:9557 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 +#: src/readelf.c:6052 src/readelf.c:9583 src/readelf.c:9609 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:6052 src/readelf.c:9631 +#: src/readelf.c:6077 src/readelf.c:9693 #, fuzzy msgid "base address" msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:6062 src/readelf.c:9641 +#: src/readelf.c:6087 src/readelf.c:9703 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:6317 +#: src/readelf.c:6342 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:6573 +#: src/readelf.c:6598 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:6591 +#: src/readelf.c:6616 #, c-format msgid "" "\n" @@ -5020,7 +5024,7 @@ msgstr "" "\n" "オフセット %3$# の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:6641 +#: src/readelf.c:6666 #, c-format msgid "" "\n" @@ -5029,65 +5033,65 @@ msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:6742 src/readelf.c:6896 +#: src/readelf.c:6767 src/readelf.c:6921 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "不当な拡大エンコード" -#: src/readelf.c:6757 +#: src/readelf.c:6782 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:6763 +#: src/readelf.c:6788 msgid "LSDA pointer encoding: " msgstr "LSDA ポインターエンコード:" -#: src/readelf.c:6873 +#: src/readelf.c:6898 #, c-format msgid " (offset: %#)" msgstr " (オフセット: %#)" -#: src/readelf.c:6880 +#: src/readelf.c:6905 #, c-format msgid " (end offset: %#)" msgstr " (終了オフセット: %#)" -#: src/readelf.c:6917 +#: src/readelf.c:6942 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sLSDA ポインター: %#\n" -#: src/readelf.c:7002 +#: src/readelf.c:7027 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "属性コードを得られません: %s" -#: src/readelf.c:7012 +#: src/readelf.c:7037 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "属性様式を得られません: %s" -#: src/readelf.c:7034 +#: src/readelf.c:7059 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "属性値を得られません: %s" -#: src/readelf.c:7364 +#: src/readelf.c:7389 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "不当なファイル" -#: src/readelf.c:7368 +#: src/readelf.c:7393 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:7372 +#: src/readelf.c:7397 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7685 +#: src/readelf.c:7710 #, c-format msgid "" "\n" @@ -5098,12 +5102,12 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:7735 +#: src/readelf.c:7760 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7754 +#: src/readelf.c:7779 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5115,7 +5119,7 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7766 +#: src/readelf.c:7791 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5126,39 +5130,39 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7776 src/readelf.c:7939 +#: src/readelf.c:7801 src/readelf.c:7964 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7803 +#: src/readelf.c:7828 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7832 +#: src/readelf.c:7857 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られません: %s" -#: src/readelf.c:7841 +#: src/readelf.c:7866 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "セクション '%2$s' 中のオフセット %1$ の DIE のタグを得られません: " "%3$s" -#: src/readelf.c:7879 +#: src/readelf.c:7904 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次の DIE を得られません: %s\n" -#: src/readelf.c:7887 +#: src/readelf.c:7912 #, c-format msgid "cannot get next DIE: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:7931 +#: src/readelf.c:7956 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5169,7 +5173,7 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:7983 +#: src/readelf.c:8008 #, fuzzy, c-format msgid "" "\n" @@ -5179,18 +5183,18 @@ msgstr "" "\n" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:8315 +#: src/readelf.c:8340 #, fuzzy, c-format msgid "unknown form: %s" msgstr "不明な様式 %" -#: src/readelf.c:8346 +#: src/readelf.c:8371 #, c-format msgid "cannot get line data section data: %s" msgstr "ラインデータセクションデータを得られません: %s" #. Print what we got so far. -#: src/readelf.c:8448 +#: src/readelf.c:8473 #, fuzzy, c-format msgid "" "\n" @@ -5220,33 +5224,33 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:8470 +#: src/readelf.c:8495 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:8478 +#: src/readelf.c:8503 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "アドレス値ではありません" -#: src/readelf.c:8486 +#: src/readelf.c:8511 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "セクションを得られません: %s" -#: src/readelf.c:8496 +#: src/readelf.c:8521 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ" -#: src/readelf.c:8511 +#: src/readelf.c:8536 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] %hhu パラメーター\n" -#: src/readelf.c:8522 +#: src/readelf.c:8547 msgid "" "\n" "Directory table:" @@ -5254,12 +5258,12 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:8528 src/readelf.c:8605 +#: src/readelf.c:8553 src/readelf.c:8630 #, fuzzy, c-format msgid " [" msgstr " %s: %s\n" -#: src/readelf.c:8599 +#: src/readelf.c:8624 #, fuzzy msgid "" "\n" @@ -5268,7 +5272,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:8660 +#: src/readelf.c:8685 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5276,7 +5280,7 @@ msgstr "" "ファイル名テーブル:\n" " Entry Dir 時刻 大きさ 名前" -#: src/readelf.c:8699 +#: src/readelf.c:8724 #, fuzzy msgid "" "\n" @@ -5285,7 +5289,7 @@ msgstr "" "\n" "行 番号 文:" -#: src/readelf.c:8703 +#: src/readelf.c:8728 msgid "" "\n" "Line number statements:" @@ -5293,119 +5297,119 @@ msgstr "" "\n" "行 番号 文:" -#: src/readelf.c:8726 +#: src/readelf.c:8751 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:8760 +#: src/readelf.c:8785 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:8764 +#: src/readelf.c:8789 #, fuzzy, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:8767 +#: src/readelf.c:8792 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8785 +#: src/readelf.c:8810 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:8790 +#: src/readelf.c:8815 #, fuzzy msgid " end of sequence" msgstr "列の終わり" -#: src/readelf.c:8808 +#: src/readelf.c:8833 #, fuzzy, c-format msgid " set address to " msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:8836 +#: src/readelf.c:8861 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "新ファイルを定義する: dir=%u、mtime=%、長さh=%、名前=%s\n" -#: src/readelf.c:8850 +#: src/readelf.c:8875 #, fuzzy, c-format msgid " set discriminator to %u\n" msgstr "カラムを % に設定する\n" #. Unknown, ignore it. -#: src/readelf.c:8855 +#: src/readelf.c:8880 #, fuzzy msgid " unknown opcode" msgstr "不明な命令コード" #. Takes no argument. -#: src/readelf.c:8867 +#: src/readelf.c:8892 msgid " copy" msgstr "複写" -#: src/readelf.c:8878 +#: src/readelf.c:8903 #, fuzzy, c-format msgid " advance address by %u to " msgstr "アドレスを %u だけ進めて %s にする\n" -#: src/readelf.c:8882 src/readelf.c:8943 +#: src/readelf.c:8907 src/readelf.c:8968 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8894 +#: src/readelf.c:8919 #, c-format msgid " advance line by constant %d to %\n" msgstr "行を定数 %d だけ進めて % にする\n" -#: src/readelf.c:8904 +#: src/readelf.c:8929 #, c-format msgid " set file to %\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:8915 +#: src/readelf.c:8940 #, c-format msgid " set column to %\n" msgstr "カラムを % に設定する\n" -#: src/readelf.c:8922 +#: src/readelf.c:8947 #, c-format msgid " set '%s' to %\n" msgstr " '%s' を % に設定する\n" #. Takes no argument. -#: src/readelf.c:8928 +#: src/readelf.c:8953 msgid " set basic block flag" msgstr "基本ブロックフラグを設定する" -#: src/readelf.c:8939 +#: src/readelf.c:8964 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr "アドレスを定数 %u だけ済めて %s にする\n" -#: src/readelf.c:8959 +#: src/readelf.c:8984 #, fuzzy, c-format msgid " advance address by fixed value %u to \n" msgstr "アドレスを固定値 %u だけ進めて %s にする\n" #. Takes no argument. -#: src/readelf.c:8969 +#: src/readelf.c:8994 msgid " set prologue end flag" msgstr "プロローグ終了フラグを設定する" #. Takes no argument. -#: src/readelf.c:8974 +#: src/readelf.c:8999 msgid " set epilogue begin flag" msgstr "エピローグ開始フラグを設定する" -#: src/readelf.c:8984 +#: src/readelf.c:9009 #, fuzzy, c-format msgid " set isa to %u\n" msgstr " ファイルを % に設定する\n" @@ -5413,98 +5417,103 @@ msgstr " ファイルを % に設定する\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:8993 +#: src/readelf.c:9018 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:9033 +#: src/readelf.c:9058 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:9202 +#: src/readelf.c:9224 +#, fuzzy, c-format +msgid " \n" +msgstr " [%6tx] <不当なデータ>\n" + +#: src/readelf.c:9264 #, fuzzy, c-format msgid "invalid loclists data" msgstr "不当なデータ" -#: src/readelf.c:9455 +#: src/readelf.c:9517 #, c-format msgid "cannot get .debug_loc content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:9668 src/readelf.c:10712 +#: src/readelf.c:9730 src/readelf.c:10774 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:9723 src/readelf.c:9886 +#: src/readelf.c:9785 src/readelf.c:9948 #, c-format msgid "cannot get macro information section data: %s" msgstr "マクロ情報セクションのデータを得られません: %s" -#: src/readelf.c:9803 +#: src/readelf.c:9865 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:9826 +#: src/readelf.c:9888 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:9927 +#: src/readelf.c:9989 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:9939 +#: src/readelf.c:10001 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:9945 src/readelf.c:10832 +#: src/readelf.c:10007 src/readelf.c:10894 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:9952 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " 入口点アドレス : %#\n" -#: src/readelf.c:9981 +#: src/readelf.c:10043 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (オフセット: %#)" -#: src/readelf.c:9989 +#: src/readelf.c:10051 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:10014 +#: src/readelf.c:10076 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:10021 +#: src/readelf.c:10083 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:10033 +#: src/readelf.c:10095 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] %hhu パラメーター\n" -#: src/readelf.c:10048 +#: src/readelf.c:10110 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:10249 +#: src/readelf.c:10311 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" @@ -5512,7 +5521,7 @@ msgstr "" # # "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い -#: src/readelf.c:10293 +#: src/readelf.c:10355 #, fuzzy, c-format msgid "" "\n" @@ -5523,37 +5532,37 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " %4$*s 文字列\n" -#: src/readelf.c:10308 +#: src/readelf.c:10370 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** 文字列の読込み中にエラー: %s\n" -#: src/readelf.c:10337 +#: src/readelf.c:10399 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:10436 +#: src/readelf.c:10498 #, fuzzy, c-format msgid " Length: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10438 +#: src/readelf.c:10500 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10452 +#: src/readelf.c:10514 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " %s: %\n" -#: src/readelf.c:10461 +#: src/readelf.c:10523 #, fuzzy, c-format msgid " Padding: %8\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10515 +#: src/readelf.c:10577 #, c-format msgid "" "\n" @@ -5562,7 +5571,7 @@ msgstr "" "\n" "呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10617 +#: src/readelf.c:10679 #, c-format msgid "" "\n" @@ -5571,22 +5580,22 @@ msgstr "" "\n" "例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10640 +#: src/readelf.c:10702 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:10652 +#: src/readelf.c:10714 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:10667 +#: src/readelf.c:10729 #, c-format msgid " Call site encoding: %#x " msgstr "呼出しサイトコード化: %#x " -#: src/readelf.c:10680 +#: src/readelf.c:10742 msgid "" "\n" " Call site table:" @@ -5594,7 +5603,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:10694 +#: src/readelf.c:10756 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5607,12 +5616,12 @@ msgstr "" " 離着陸場: %#\n" " 行動: %u\n" -#: src/readelf.c:10767 +#: src/readelf.c:10829 #, c-format msgid "invalid TType encoding" msgstr "不当な TType コード化" -#: src/readelf.c:10794 +#: src/readelf.c:10856 #, fuzzy, c-format msgid "" "\n" @@ -5622,37 +5631,37 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10823 +#: src/readelf.c:10885 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:10841 +#: src/readelf.c:10903 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10848 +#: src/readelf.c:10910 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10855 +#: src/readelf.c:10917 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:10862 +#: src/readelf.c:10924 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:10869 +#: src/readelf.c:10931 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:10883 +#: src/readelf.c:10945 #, fuzzy, c-format msgid "" "\n" @@ -5662,7 +5671,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10908 +#: src/readelf.c:10970 #, fuzzy, c-format msgid "" "\n" @@ -5672,7 +5681,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10937 +#: src/readelf.c:10999 #, fuzzy, c-format msgid "" "\n" @@ -5682,7 +5691,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:10969 +#: src/readelf.c:11031 #, fuzzy, c-format msgid "" "\n" @@ -5691,18 +5700,18 @@ msgstr "" "\n" "オフセット %#0 に不当なシンボルテーブル\n" -#: src/readelf.c:11107 +#: src/readelf.c:11169 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デバッグ内容記述子を得られません: %s" -#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 -#: src/readelf.c:12266 +#: src/readelf.c:11537 src/readelf.c:12159 src/readelf.c:12270 +#: src/readelf.c:12328 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータの変換ができません: %s" -#: src/readelf.c:11838 +#: src/readelf.c:11900 #, c-format msgid "" "\n" @@ -5711,21 +5720,21 @@ msgstr "" "\n" "%*s... < %u 回の繰返し> ..." -#: src/readelf.c:12345 +#: src/readelf.c:12407 msgid " Owner Data size Type\n" msgstr " 所有者 データ大きさタイプ\n" -#: src/readelf.c:12374 +#: src/readelf.c:12436 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12426 +#: src/readelf.c:12488 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "ノートセクションの内容を得られません: %s" -#: src/readelf.c:12460 +#: src/readelf.c:12522 #, c-format msgid "" "\n" @@ -5735,7 +5744,7 @@ msgstr "" "オフセット %4$#0 の %3$ バイトのノートセクション [%1$2zu] " "'%2$s':\n" -#: src/readelf.c:12483 +#: src/readelf.c:12545 #, c-format msgid "" "\n" @@ -5744,7 +5753,7 @@ msgstr "" "\n" "オフセット %2$#0 の %1$ バイトのノートセグメント:\n" -#: src/readelf.c:12530 +#: src/readelf.c:12592 #, fuzzy, c-format msgid "" "\n" @@ -5753,12 +5762,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:12557 src/readelf.c:12608 +#: src/readelf.c:12619 src/readelf.c:12670 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "セクション [%Zu] '%s' からデータが得られません: %s" -#: src/readelf.c:12562 +#: src/readelf.c:12624 #, fuzzy, c-format msgid "" "\n" @@ -5768,7 +5777,7 @@ msgstr "" "オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" "プ、%3$ バイト:\n" -#: src/readelf.c:12567 +#: src/readelf.c:12629 #, fuzzy, c-format msgid "" "\n" @@ -5779,7 +5788,7 @@ msgstr "" "オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" "プ、%3$ バイト:\n" -#: src/readelf.c:12581 +#: src/readelf.c:12643 #, fuzzy, c-format msgid "" "\n" @@ -5788,7 +5797,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:12613 +#: src/readelf.c:12675 #, fuzzy, c-format msgid "" "\n" @@ -5798,7 +5807,7 @@ msgstr "" "オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" "イトあります:\n" -#: src/readelf.c:12618 +#: src/readelf.c:12680 #, fuzzy, c-format msgid "" "\n" @@ -5809,7 +5818,7 @@ msgstr "" "オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" "イトあります:\n" -#: src/readelf.c:12667 +#: src/readelf.c:12729 #, c-format msgid "" "\n" @@ -5818,7 +5827,7 @@ msgstr "" "\n" "セクション [%lu] がありません" -#: src/readelf.c:12697 +#: src/readelf.c:12759 #, c-format msgid "" "\n" @@ -5827,12 +5836,12 @@ msgstr "" "\n" "セクション '%s' がありません" -#: src/readelf.c:12754 +#: src/readelf.c:12816 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブのシンボル索引 '%s' を得られません: %s" -#: src/readelf.c:12757 +#: src/readelf.c:12819 #, c-format msgid "" "\n" @@ -5841,7 +5850,7 @@ msgstr "" "\n" "アーカイブ '%s' にはシンボル索引がありません\n" -#: src/readelf.c:12761 +#: src/readelf.c:12823 #, fuzzy, c-format msgid "" "\n" @@ -5850,12 +5859,12 @@ msgstr "" "\n" "アーカイブ '%s' の索引には %Zu 項目あります:\n" -#: src/readelf.c:12779 +#: src/readelf.c:12841 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s" -#: src/readelf.c:12784 +#: src/readelf.c:12846 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンバー '%s' には以下があります:\n" @@ -6447,7 +6456,7 @@ msgstr "" msgid "cannot get shdrstrndx:%s" msgstr "セクションを得られません: %s" -#: src/unstrip.c:248 src/unstrip.c:2083 +#: src/unstrip.c:248 src/unstrip.c:2089 #, c-format msgid "cannot get ELF header: %s" msgstr "" @@ -6467,12 +6476,12 @@ msgstr "セクション数を決定できません: %s" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 +#: src/unstrip.c:269 src/unstrip.c:2107 src/unstrip.c:2150 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "セクション数を決定できません: %s" -#: src/unstrip.c:274 src/unstrip.c:2105 +#: src/unstrip.c:274 src/unstrip.c:2111 #, c-format msgid "cannot create program headers: %s" msgstr "" @@ -6487,275 +6496,275 @@ msgstr "" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:293 src/unstrip.c:1705 +#: src/unstrip.c:293 src/unstrip.c:1711 #, c-format msgid "cannot get section data: %s" msgstr "" -#: src/unstrip.c:295 src/unstrip.c:1707 +#: src/unstrip.c:295 src/unstrip.c:1713 #, c-format msgid "cannot copy section data: %s" msgstr "" -#: src/unstrip.c:319 +#: src/unstrip.c:323 #, c-format msgid "cannot create directory '%s'" msgstr "" -#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 -#: src/unstrip.c:1747 +#: src/unstrip.c:397 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861 +#: src/unstrip.c:1753 #, c-format msgid "cannot get symbol table entry: %s" msgstr "" -#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 -#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 +#: src/unstrip.c:413 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696 +#: src/unstrip.c:1774 src/unstrip.c:1969 src/unstrip.c:1993 #, c-format msgid "cannot update symbol table: %s" msgstr "" -#: src/unstrip.c:417 +#: src/unstrip.c:423 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:463 src/unstrip.c:477 +#: src/unstrip.c:469 src/unstrip.c:483 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:576 +#: src/unstrip.c:582 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:589 +#: src/unstrip.c:595 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:844 +#: src/unstrip.c:850 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/unstrip.c:846 +#: src/unstrip.c:852 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/unstrip.c:863 +#: src/unstrip.c:869 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "シンボル %2$sの不正なオフセット %1$zu " -#: src/unstrip.c:1021 src/unstrip.c:1425 +#: src/unstrip.c:1027 src/unstrip.c:1431 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:1036 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "不当な .debug_line セクション" -#: src/unstrip.c:1042 +#: src/unstrip.c:1048 #, fuzzy, c-format msgid "couldn't get shdr for group section: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/unstrip.c:1047 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/unstrip.c:1053 +#: src/unstrip.c:1059 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "セクション数を決定できません: %s" -#: src/unstrip.c:1058 +#: src/unstrip.c:1064 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "セクションヘッダー文字列セクションを生成できません: %s" -#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 +#: src/unstrip.c:1106 src/unstrip.c:1125 src/unstrip.c:1163 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1137 +#: src/unstrip.c:1143 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1148 +#: src/unstrip.c:1154 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1204 src/unstrip.c:1551 +#: src/unstrip.c:1210 src/unstrip.c:1557 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 +#: src/unstrip.c:1335 src/unstrip.c:1351 src/unstrip.c:1637 src/unstrip.c:1928 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1354 +#: src/unstrip.c:1360 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1383 src/unstrip.c:1387 +#: src/unstrip.c:1389 src/unstrip.c:1393 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 +#: src/unstrip.c:1397 src/unstrip.c:1401 src/unstrip.c:1652 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1398 +#: src/unstrip.c:1404 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1402 +#: src/unstrip.c:1408 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1473 src/unstrip.c:1566 +#: src/unstrip.c:1479 src/unstrip.c:1572 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1625 +#: src/unstrip.c:1631 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1755 +#: src/unstrip.c:1761 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "不当なセクション索引" -#: src/unstrip.c:1787 +#: src/unstrip.c:1793 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "不当なセクション索引" -#: src/unstrip.c:2062 +#: src/unstrip.c:2068 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:2091 +#: src/unstrip.c:2097 #, c-format msgid "cannot update ELF header: %s" msgstr "ELF ヘッダーを更新できません: %s" -#: src/unstrip.c:2115 +#: src/unstrip.c:2121 #, c-format msgid "cannot update program header: %s" msgstr "" -#: src/unstrip.c:2120 src/unstrip.c:2202 +#: src/unstrip.c:2126 src/unstrip.c:2208 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:2171 +#: src/unstrip.c:2177 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2174 +#: src/unstrip.c:2180 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 +#: src/unstrip.c:2199 src/unstrip.c:2250 src/unstrip.c:2262 src/unstrip.c:2348 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2235 +#: src/unstrip.c:2241 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2237 +#: src/unstrip.c:2243 msgid ", use --force" msgstr "" -#: src/unstrip.c:2260 +#: src/unstrip.c:2266 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2263 +#: src/unstrip.c:2269 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2266 +#: src/unstrip.c:2272 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2269 +#: src/unstrip.c:2275 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2299 +#: src/unstrip.c:2305 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2303 +#: src/unstrip.c:2309 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2318 +#: src/unstrip.c:2324 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2322 +#: src/unstrip.c:2328 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2335 +#: src/unstrip.c:2341 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2366 +#: src/unstrip.c:2372 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2498 +#: src/unstrip.c:2504 #, c-format msgid "no matching modules found" msgstr "" -#: src/unstrip.c:2507 +#: src/unstrip.c:2513 #, c-format msgid "matched more than one module" msgstr "" -#: src/unstrip.c:2551 +#: src/unstrip.c:2557 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2552 +#: src/unstrip.c:2558 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" diff --git a/po/pl.po b/po/pl.po index 2206e842..2cdc58ec 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-09-08 12:51+0200\n" +"POT-Creation-Date: 2020-10-31 17:37+0100\n" "PO-Revision-Date: 2016-12-29 17:48+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" @@ -60,7 +60,7 @@ msgstr "" "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 +#: src/readelf.c:11486 src/unstrip.c:316 src/unstrip.c:2401 src/unstrip.c:2606 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -223,7 +223,7 @@ msgstr "nieprawidłowa wersja DWARF" msgid "invalid directory index" msgstr "nieprawidłowy indeks katalogu" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:76 msgid "address out of range" msgstr "adres jest spoza zakresu" @@ -254,7 +254,7 @@ msgstr "nieprawidłowy indeks wiersza" msgid "invalid address range index" msgstr "nieprawidłowy indeks zakresu adresów" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:77 msgid "no matching address range" msgstr "brak pasującego zakresu adresów" @@ -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:643 src/unstrip.c:2541 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2547 msgid "Input selection options:" msgstr "Opcje wyboru wejścia:" @@ -396,126 +396,131 @@ msgid "LZMA decompression failed" msgstr "dekompresja LZMA się nie powiodła" #: libdwfl/libdwflP.h:64 +#, fuzzy +msgid "zstd decompression failed" +msgstr "dekompresja gzip się nie powiodła" + +#: libdwfl/libdwflP.h:65 msgid "no support library found for machine" msgstr "nie odnaleziono biblioteki obsługi dla komputera" -#: libdwfl/libdwflP.h:65 +#: libdwfl/libdwflP.h:66 msgid "Callbacks missing for ET_REL file" msgstr "Brak wywołań zwrotnych dla pliku ET_REL" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:67 msgid "Unsupported relocation type" msgstr "Nieobsługiwany typ relokacji" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:68 msgid "r_offset is bogus" msgstr "r_offset jest fałszywe" -#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:69 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "offset spoza zakresu" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:70 msgid "relocation refers to undefined symbol" msgstr "relokacja odnosi się do nieokreślonego symbolu" -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:71 msgid "Callback returned failure" msgstr "Wywołanie zwrotne zwróciło niepowodzenie" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:72 msgid "No DWARF information found" msgstr "Nie odnaleziono informacji DWARF" -#: libdwfl/libdwflP.h:72 +#: libdwfl/libdwflP.h:73 msgid "No symbol table found" msgstr "Nie odnaleziono tabeli symboli" -#: libdwfl/libdwflP.h:73 +#: libdwfl/libdwflP.h:74 msgid "No ELF program headers" msgstr "Brak nagłówków programu ELF" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:75 msgid "address range overlaps an existing module" msgstr "zakres adresów pokrywa się z istniejącym modułem" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:78 msgid "image truncated" msgstr "skrócono obraz" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:79 msgid "ELF file opened" msgstr "otwarto plik ELF" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:80 msgid "not a valid ELF file" msgstr "nie jest prawidłowym plikiem ELF" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:81 msgid "cannot handle DWARF type description" msgstr "nie można obsłużyć opisu typu DWARF" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:82 msgid "ELF file does not match build ID" msgstr "plik ELF nie ma pasującego identyfikatora kopii" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:83 msgid "corrupt .gnu.prelink_undo section data" msgstr "uszkodzone dane sekcji .gnu.prelink_undo" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:84 msgid "Internal error due to ebl" msgstr "Wewnętrzny błąd z powodu ebl" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:85 msgid "Missing data in core file" msgstr "Brak danych w pliku core" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:86 msgid "Invalid register" msgstr "Nieprawidłowy rejestr" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:87 msgid "Error reading process memory" msgstr "Błąd podczas odczytywania pamięci procesu" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:88 msgid "Couldn't find architecture of any ELF" msgstr "Nie można odnaleźć architektury żadnego ELF" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:89 msgid "Error parsing /proc filesystem" msgstr "Błąd podczas przetwarzania systemu plików /proc" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:90 msgid "Invalid DWARF" msgstr "Nieprawidłowy DWARF" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:91 msgid "Unsupported DWARF" msgstr "Nieobsługiwany DWARF" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:92 msgid "Unable to find more threads" msgstr "Nie można odnaleźć więcej wątków" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:93 msgid "Dwfl already has attached state" msgstr "Dwfl już ma załączony stan" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:94 msgid "Dwfl has no attached state" msgstr "Dwfl nie ma załączonego stanu" -#: libdwfl/libdwflP.h:94 +#: libdwfl/libdwflP.h:95 msgid "Unwinding not supported for this architecture" msgstr "Odwijanie nie jest obsługiwane dla tej architektury" -#: libdwfl/libdwflP.h:95 +#: libdwfl/libdwflP.h:96 msgid "Invalid argument" msgstr "Nieprawidłowy parametr" -#: libdwfl/libdwflP.h:96 +#: libdwfl/libdwflP.h:97 msgid "Not an ET_CORE ELF file" msgstr "Nie jest plikiem ELF ET_CORE" @@ -620,7 +625,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:6172 +#: libelf/elf_error.c:87 src/readelf.c:6197 #, c-format msgid "invalid encoding" msgstr "nieprawidłowe kodowanie" @@ -706,8 +711,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:9935 src/readelf.c:10535 -#: src/readelf.c:10636 src/readelf.c:10818 +#: libelf/elf_error.c:191 src/readelf.c:9997 src/readelf.c:10597 +#: src/readelf.c:10698 src/readelf.c:10880 #, c-format msgid "invalid data" msgstr "nieprawidłowe dane" @@ -1366,7 +1371,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2191 src/unstrip.c:2220 +#: src/unstrip.c:2197 src/unstrip.c:2226 #, c-format msgid "cannot open '%s'" msgstr "nie można otworzyć „%s”" @@ -3708,8 +3713,8 @@ msgstr "nie można utworzyć drzewa wyszukiwania" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 -#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11313 src/readelf.c:12503 +#: src/readelf.c:12714 src/readelf.c:12783 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4034,11 +4039,11 @@ msgstr "nie można określić liczby sekcji: %s" msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 -#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 -#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 -#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12734 +#: src/unstrip.c:401 src/unstrip.c:432 src/unstrip.c:491 src/unstrip.c:612 +#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1220 +#: src/unstrip.c:1347 src/unstrip.c:1371 src/unstrip.c:1427 src/unstrip.c:1491 +#: src/unstrip.c:1666 src/unstrip.c:1817 src/unstrip.c:1960 src/unstrip.c:2059 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" @@ -4048,8 +4053,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:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 -#: src/readelf.c:10803 +#: src/readelf.c:670 src/readelf.c:6610 src/readelf.c:10585 src/readelf.c:10687 +#: src/readelf.c:10865 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartości %s: %s" @@ -4392,7 +4397,7 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 +#: src/readelf.c:1460 src/unstrip.c:2118 src/unstrip.c:2160 src/unstrip.c:2167 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" @@ -4441,8 +4446,8 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 -#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12605 +#: src/readelf.c:12612 src/readelf.c:12656 src/readelf.c:12663 msgid "Couldn't uncompress section" msgstr "Nie można dekompresować sekcji" @@ -4452,7 +4457,7 @@ msgid "cannot get section [%zd] header: %s" msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s" #: src/readelf.c:1805 src/readelf.c:2455 src/readelf.c:2713 src/readelf.c:2789 -#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5364 +#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5389 #, c-format msgid "invalid sh_link value in section %zu" msgstr "nieprawidłowa wartość sh_link w sekcji %zu" @@ -4978,7 +4983,7 @@ msgstr " [%6tx] \n" msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] … % bajtów…\n" -#: src/readelf.c:5054 +#: src/readelf.c:5079 #, c-format msgid "" "\n" @@ -4989,7 +4994,7 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [ Kod]\n" -#: src/readelf.c:5062 +#: src/readelf.c:5087 #, c-format msgid "" "\n" @@ -4998,20 +5003,20 @@ msgstr "" "\n" "Sekcja skrótów pod offsetem %:\n" -#: src/readelf.c:5075 +#: src/readelf.c:5100 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** błąd podczas odczytywania skrótu: %s\n" -#: src/readelf.c:5091 +#: src/readelf.c:5116 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] offset: %, potomek: %s, znacznik: %s\n" -#: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 -#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 -#: src/readelf.c:10324 +#: src/readelf.c:5149 src/readelf.c:5458 src/readelf.c:5625 src/readelf.c:6010 +#: src/readelf.c:6620 src/readelf.c:8357 src/readelf.c:9049 src/readelf.c:9522 +#: src/readelf.c:9773 src/readelf.c:9939 src/readelf.c:10326 +#: src/readelf.c:10386 #, c-format msgid "" "\n" @@ -5020,56 +5025,56 @@ msgstr "" "\n" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" -#: src/readelf.c:5137 +#: src/readelf.c:5162 #, fuzzy, c-format msgid "cannot get .debug_addr section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 +#: src/readelf.c:5262 src/readelf.c:5286 src/readelf.c:5670 src/readelf.c:9094 #, fuzzy, c-format msgid " Length: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 +#: src/readelf.c:5264 src/readelf.c:5301 src/readelf.c:5683 src/readelf.c:9107 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 +#: src/readelf.c:5265 src/readelf.c:5310 src/readelf.c:5692 src/readelf.c:9116 #, fuzzy, c-format msgid " Address size: %8\n" msgstr " Offset adresu: %6\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 +#: src/readelf.c:5267 src/readelf.c:5320 src/readelf.c:5702 src/readelf.c:9126 #, fuzzy, c-format msgid " Segment size: %8\n" msgstr "" " Rozmiar segmentu: %6\n" "\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 +#: src/readelf.c:5305 src/readelf.c:5687 src/readelf.c:9111 src/readelf.c:10518 #, fuzzy, c-format msgid "Unknown version" msgstr "nieznana wersja" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 +#: src/readelf.c:5315 src/readelf.c:5528 src/readelf.c:5697 src/readelf.c:9121 #, c-format msgid "unsupported address size" msgstr "nieobsługiwany rozmiar adresu" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 +#: src/readelf.c:5326 src/readelf.c:5539 src/readelf.c:5707 src/readelf.c:9131 #, c-format msgid "unsupported segment size" msgstr "nieobsługiwany rozmiar segmentu" -#: src/readelf.c:5354 src/readelf.c:5428 +#: src/readelf.c:5379 src/readelf.c:5453 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "nie można uzyskać zawartości .debug_aranges: %s" -#: src/readelf.c:5369 +#: src/readelf.c:5394 #, c-format msgid "" "\n" @@ -5087,12 +5092,12 @@ msgstr[2] "" "\n" "Sekcja DWARF [%2zu] „%s” pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:5400 +#: src/readelf.c:5425 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5402 +#: src/readelf.c:5427 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5100,7 +5105,7 @@ msgstr "" " [%*zu] początek: %0#*, długość: %5, offset CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8359 +#: src/readelf.c:5471 src/readelf.c:8384 #, c-format msgid "" "\n" @@ -5109,13 +5114,13 @@ msgstr "" "\n" "Tabela pod offsetem %zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 -#: src/readelf.c:9050 +#: src/readelf.c:5475 src/readelf.c:5651 src/readelf.c:6644 src/readelf.c:8395 +#: src/readelf.c:9075 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "nieprawidłowe dane w sekcji [%zu] „%s”" -#: src/readelf.c:5466 +#: src/readelf.c:5491 #, c-format msgid "" "\n" @@ -5124,27 +5129,27 @@ msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:5478 +#: src/readelf.c:5503 #, c-format msgid " DWARF version: %6\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:5482 +#: src/readelf.c:5507 #, c-format msgid "unsupported aranges version" msgstr "nieobsługiwana wersja aranges" -#: src/readelf.c:5493 +#: src/readelf.c:5518 #, c-format msgid " CU offset: %6\n" msgstr " Offset CU: %6\n" -#: src/readelf.c:5499 +#: src/readelf.c:5524 #, c-format msgid " Address size: %6\n" msgstr " Offset adresu: %6\n" -#: src/readelf.c:5510 +#: src/readelf.c:5535 #, c-format msgid "" " Segment size: %6\n" @@ -5153,109 +5158,109 @@ msgstr "" " Rozmiar segmentu: %6\n" "\n" -#: src/readelf.c:5565 +#: src/readelf.c:5590 #, c-format msgid " %zu padding bytes\n" msgstr " bajty wypełnienia: %zu\n" -#: src/readelf.c:5609 +#: src/readelf.c:5634 #, fuzzy, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "nie można uzyskać zawartości .debug_ranges: %s" -#: src/readelf.c:5632 src/readelf.c:9056 +#: src/readelf.c:5657 src/readelf.c:9081 #, fuzzy, c-format msgid "" "Table at Offset 0x%:\n" "\n" msgstr " Offset .debug_line: 0x%\n" -#: src/readelf.c:5687 src/readelf.c:9111 +#: src/readelf.c:5712 src/readelf.c:9136 #, fuzzy, c-format msgid " Offset entries: %8\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:5703 src/readelf.c:9127 +#: src/readelf.c:5728 src/readelf.c:9152 #, c-format msgid " Unknown CU base: " msgstr "" -#: src/readelf.c:5705 src/readelf.c:9129 +#: src/readelf.c:5730 src/readelf.c:9154 #, c-format msgid " CU [%6] base: " msgstr "" -#: src/readelf.c:5711 src/readelf.c:9135 +#: src/readelf.c:5736 src/readelf.c:9160 #, c-format msgid " Not associated with a CU.\n" msgstr "" -#: src/readelf.c:5722 src/readelf.c:9146 +#: src/readelf.c:5747 src/readelf.c:9171 #, c-format msgid "too many offset entries for unit length" msgstr "" -#: src/readelf.c:5726 src/readelf.c:9150 +#: src/readelf.c:5751 src/readelf.c:9175 #, fuzzy, c-format msgid " Offsets starting at 0x%:\n" msgstr " Offset: 0x%\n" -#: src/readelf.c:5778 +#: src/readelf.c:5803 #, fuzzy, c-format msgid "invalid range list data" msgstr "nieprawidłowe dane" -#: src/readelf.c:5963 src/readelf.c:9438 +#: src/readelf.c:5988 src/readelf.c:9500 #, fuzzy, c-format msgid "" " %zu padding bytes\n" "\n" msgstr " bajty wypełnienia: %zu\n" -#: src/readelf.c:5980 +#: src/readelf.c:6005 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "nie można uzyskać zawartości .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9493 +#: src/readelf.c:6041 src/readelf.c:9555 #, c-format msgid "" "\n" " Unknown CU base: " msgstr "" -#: src/readelf.c:6018 src/readelf.c:9495 +#: src/readelf.c:6043 src/readelf.c:9557 #, c-format msgid "" "\n" " CU [%6] base: " msgstr "" -#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 +#: src/readelf.c:6052 src/readelf.c:9583 src/readelf.c:9609 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:6052 src/readelf.c:9631 +#: src/readelf.c:6077 src/readelf.c:9693 #, fuzzy msgid "base address" msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:6062 src/readelf.c:9641 +#: src/readelf.c:6087 src/readelf.c:9703 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" -#: src/readelf.c:6317 +#: src/readelf.c:6342 msgid " \n" msgstr " \n" -#: src/readelf.c:6573 +#: src/readelf.c:6598 #, c-format msgid "cannot get ELF: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:6591 +#: src/readelf.c:6616 #, c-format msgid "" "\n" @@ -5264,7 +5269,7 @@ msgstr "" "\n" "Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#:\n" -#: src/readelf.c:6641 +#: src/readelf.c:6666 #, c-format msgid "" "\n" @@ -5273,65 +5278,65 @@ msgstr "" "\n" " [%6tx] Zerowy koniec\n" -#: src/readelf.c:6742 src/readelf.c:6896 +#: src/readelf.c:6767 src/readelf.c:6921 #, c-format msgid "invalid augmentation length" msgstr "nieprawidłowa długość powiększenia" -#: src/readelf.c:6757 +#: src/readelf.c:6782 msgid "FDE address encoding: " msgstr "Kodowanie adresu FDE: " -#: src/readelf.c:6763 +#: src/readelf.c:6788 msgid "LSDA pointer encoding: " msgstr "Kodowanie wskaźnika LSDA: " -#: src/readelf.c:6873 +#: src/readelf.c:6898 #, c-format msgid " (offset: %#)" msgstr " (offset: %#)" -#: src/readelf.c:6880 +#: src/readelf.c:6905 #, c-format msgid " (end offset: %#)" msgstr " (kończący offset: %#)" -#: src/readelf.c:6917 +#: src/readelf.c:6942 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sWskaźnik LSDA: %#\n" -#: src/readelf.c:7002 +#: src/readelf.c:7027 #, fuzzy, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "nie można uzyskać kodu atrybutu: %s" -#: src/readelf.c:7012 +#: src/readelf.c:7037 #, fuzzy, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "nie można uzyskać formy atrybutu: %s" -#: src/readelf.c:7034 +#: src/readelf.c:7059 #, fuzzy, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "nie można uzyskać wartości atrybutu: %s" -#: src/readelf.c:7364 +#: src/readelf.c:7389 #, fuzzy, c-format msgid "invalid file (%): %s" msgstr "nieprawidłowy plik" -#: src/readelf.c:7368 +#: src/readelf.c:7393 #, fuzzy, c-format msgid "no srcfiles for CU [%]" msgstr " ustawienie pliku na %\n" -#: src/readelf.c:7372 +#: src/readelf.c:7397 #, fuzzy, c-format msgid "couldn't get DWARF CU: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:7685 +#: src/readelf.c:7710 #, c-format msgid "" "\n" @@ -5342,12 +5347,12 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [Offset]\n" -#: src/readelf.c:7735 +#: src/readelf.c:7760 #, fuzzy, c-format msgid "cannot get next unit: %s" msgstr "nie można uzyskać następnego DIE: %s" -#: src/readelf.c:7754 +#: src/readelf.c:7779 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5360,7 +5365,7 @@ msgstr "" "%, rozmiar offsetu: %\n" " Podpis typu: %#, offset typu: %#\n" -#: src/readelf.c:7766 +#: src/readelf.c:7791 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5371,38 +5376,38 @@ msgstr "" " Wersja: %, offset sekcji skrótów: %, rozmiar adresu: " "%, rozmiar offsetu: %\n" -#: src/readelf.c:7776 src/readelf.c:7939 +#: src/readelf.c:7801 src/readelf.c:7964 #, c-format msgid " Unit type: %s (%)" msgstr "" -#: src/readelf.c:7803 +#: src/readelf.c:7828 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "" -#: src/readelf.c:7832 +#: src/readelf.c:7857 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można uzyskać offsetu DIE: %s" -#: src/readelf.c:7841 +#: src/readelf.c:7866 #, fuzzy, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "nie można uzyskać znacznika DIE pod offsetem % w sekcji „%s”: %s" -#: src/readelf.c:7879 +#: src/readelf.c:7904 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można uzyskać następnego DIE: %s\n" -#: src/readelf.c:7887 +#: src/readelf.c:7912 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można uzyskać następnego DIE: %s" -#: src/readelf.c:7931 +#: src/readelf.c:7956 #, fuzzy, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5413,7 +5418,7 @@ msgstr "" " Wersja: %, offset sekcji skrótów: %, rozmiar adresu: " "%, rozmiar offsetu: %\n" -#: src/readelf.c:7983 +#: src/readelf.c:8008 #, c-format msgid "" "\n" @@ -5424,18 +5429,18 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" "\n" -#: src/readelf.c:8315 +#: src/readelf.c:8340 #, fuzzy, c-format msgid "unknown form: %s" msgstr "nieznany błąd" -#: src/readelf.c:8346 +#: src/readelf.c:8371 #, 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:8448 +#: src/readelf.c:8473 #, fuzzy, c-format msgid "" "\n" @@ -5466,27 +5471,27 @@ msgstr "" "\n" "Instrukcje:\n" -#: src/readelf.c:8470 +#: src/readelf.c:8495 #, fuzzy, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/readelf.c:8478 +#: src/readelf.c:8503 #, fuzzy, c-format msgid "cannot handle address size: %u\n" msgstr "nieobsługiwany rozmiar adresu" -#: src/readelf.c:8486 +#: src/readelf.c:8511 #, fuzzy, c-format msgid "cannot handle segment selector size: %u\n" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:8496 +#: src/readelf.c:8521 #, 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:8511 +#: src/readelf.c:8536 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5494,7 +5499,7 @@ msgstr[0] " [%*] %hhu parametr\n" msgstr[1] " [%*] %hhu parametry\n" msgstr[2] " [%*] %hhu parametrów\n" -#: src/readelf.c:8522 +#: src/readelf.c:8547 msgid "" "\n" "Directory table:" @@ -5502,12 +5507,12 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:8528 src/readelf.c:8605 +#: src/readelf.c:8553 src/readelf.c:8630 #, fuzzy, c-format msgid " [" msgstr " PC: " -#: src/readelf.c:8599 +#: src/readelf.c:8624 #, fuzzy msgid "" "\n" @@ -5516,7 +5521,7 @@ msgstr "" "\n" " Tabela strony wywołania:" -#: src/readelf.c:8660 +#: src/readelf.c:8685 #, fuzzy msgid " Entry Dir Time Size Name" msgstr "" @@ -5524,7 +5529,7 @@ msgstr "" "Tabela nazw plików:\n" " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:8699 +#: src/readelf.c:8724 #, fuzzy msgid "" "\n" @@ -5533,7 +5538,7 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:8703 +#: src/readelf.c:8728 msgid "" "\n" "Line number statements:" @@ -5541,119 +5546,119 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:8726 +#: src/readelf.c:8751 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero" -#: src/readelf.c:8760 +#: src/readelf.c:8785 #, fuzzy, c-format msgid " special opcode %u: address+%u = " msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n" -#: src/readelf.c:8764 +#: src/readelf.c:8789 #, 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:8767 +#: src/readelf.c:8792 #, c-format msgid ", line%+d = %zu\n" msgstr "" -#: src/readelf.c:8785 +#: src/readelf.c:8810 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:8790 +#: src/readelf.c:8815 msgid " end of sequence" msgstr " koniec sekwencji" -#: src/readelf.c:8808 +#: src/readelf.c:8833 #, fuzzy, c-format msgid " set address to " msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:8836 +#: src/readelf.c:8861 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " definicja nowego pliku: dir=%u, mtime=%, długość=%, nazwa=" "%s\n" -#: src/readelf.c:8850 +#: src/readelf.c:8875 #, c-format msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" #. Unknown, ignore it. -#: src/readelf.c:8855 +#: src/readelf.c:8880 msgid " unknown opcode" msgstr " nieznana instrukcja" #. Takes no argument. -#: src/readelf.c:8867 +#: src/readelf.c:8892 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:8878 +#: src/readelf.c:8903 #, fuzzy, c-format msgid " advance address by %u to " msgstr " zwiększenie adresu o %u do %s\n" -#: src/readelf.c:8882 src/readelf.c:8943 +#: src/readelf.c:8907 src/readelf.c:8968 #, c-format msgid ", op_index to %u" msgstr "" -#: src/readelf.c:8894 +#: src/readelf.c:8919 #, c-format msgid " advance line by constant %d to %\n" msgstr " zwiększenie wiersza o stałą %d do %\n" -#: src/readelf.c:8904 +#: src/readelf.c:8929 #, c-format msgid " set file to %\n" msgstr " ustawienie pliku na %\n" -#: src/readelf.c:8915 +#: src/readelf.c:8940 #, c-format msgid " set column to %\n" msgstr " ustawienie kolumny na %\n" -#: src/readelf.c:8922 +#: src/readelf.c:8947 #, c-format msgid " set '%s' to %\n" msgstr " ustawienie „%s” na %\n" #. Takes no argument. -#: src/readelf.c:8928 +#: src/readelf.c:8953 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:8939 +#: src/readelf.c:8964 #, fuzzy, c-format msgid " advance address by constant %u to " msgstr " zwiększenie adresu o stałą %u do %s\n" -#: src/readelf.c:8959 +#: src/readelf.c:8984 #, 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:8969 +#: src/readelf.c:8994 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" #. Takes no argument. -#: src/readelf.c:8974 +#: src/readelf.c:8999 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" -#: src/readelf.c:8984 +#: src/readelf.c:9009 #, c-format msgid " set isa to %u\n" msgstr " ustawienie isa na %u\n" @@ -5661,7 +5666,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:8993 +#: src/readelf.c:9018 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5669,96 +5674,101 @@ msgstr[0] " nieznana instrukcja z % parametrem:" msgstr[1] " nieznana instrukcja z % parametrami:" msgstr[2] " nieznana instrukcja z % parametrami:" -#: src/readelf.c:9033 +#: src/readelf.c:9058 #, fuzzy, c-format msgid "cannot get .debug_loclists content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" -#: src/readelf.c:9202 +#: src/readelf.c:9224 +#, fuzzy, c-format +msgid " \n" +msgstr " \n" + +#: src/readelf.c:9264 #, fuzzy, c-format msgid "invalid loclists data" msgstr "nieprawidłowe dane" -#: src/readelf.c:9455 +#: src/readelf.c:9517 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" -#: src/readelf.c:9668 src/readelf.c:10712 +#: src/readelf.c:9730 src/readelf.c:10774 msgid " \n" msgstr " \n" -#: src/readelf.c:9723 src/readelf.c:9886 +#: src/readelf.c:9785 src/readelf.c:9948 #, c-format msgid "cannot get macro information section data: %s" msgstr "nie można uzyskać danych sekcji informacji o makrach: %s" -#: src/readelf.c:9803 +#: src/readelf.c:9865 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakończony ciąg na końcu sekcji" -#: src/readelf.c:9826 +#: src/readelf.c:9888 #, 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:9927 +#: src/readelf.c:9989 #, c-format msgid " Offset: 0x%\n" msgstr " Offset: 0x%\n" -#: src/readelf.c:9939 +#: src/readelf.c:10001 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:9945 src/readelf.c:10832 +#: src/readelf.c:10007 src/readelf.c:10894 #, c-format msgid " unknown version, cannot parse section\n" msgstr " nieznana wersja, nie można przetworzyć sekcji\n" -#: src/readelf.c:9952 +#: src/readelf.c:10014 #, fuzzy, c-format msgid " Flag: 0x%" msgstr " Flaga: 0x%\n" -#: src/readelf.c:9981 +#: src/readelf.c:10043 #, c-format msgid " Offset length: %\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:9989 +#: src/readelf.c:10051 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " Offset .debug_line: 0x%\n" -#: src/readelf.c:10014 +#: src/readelf.c:10076 #, c-format msgid " extension opcode table, % items:\n" msgstr " tabela instrukcji rozszerzenia, % elementów:\n" -#: src/readelf.c:10021 +#: src/readelf.c:10083 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:10033 +#: src/readelf.c:10095 #, c-format msgid " % arguments:" msgstr " Parametry %:" -#: src/readelf.c:10048 +#: src/readelf.c:10110 #, c-format msgid " no arguments." msgstr " brak parametrów." -#: src/readelf.c:10249 +#: src/readelf.c:10311 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr " [%5d] offset DIE: %6, offset CU DIE: %6, nazwa: %s\n" -#: src/readelf.c:10293 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5769,41 +5779,41 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " %*s Ciąg\n" -#: src/readelf.c:10308 +#: src/readelf.c:10370 #, fuzzy, c-format msgid " *** error, missing string terminator\n" msgstr " *** błąd podczas odczytywania ciągów: %s\n" -#: src/readelf.c:10337 +#: src/readelf.c:10399 #, fuzzy, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/readelf.c:10436 +#: src/readelf.c:10498 #, fuzzy, c-format msgid " Length: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:10438 +#: src/readelf.c:10500 #, fuzzy, c-format msgid " Offset size: %8\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:10452 +#: src/readelf.c:10514 #, fuzzy, c-format msgid " DWARF version: %8\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:10461 +#: src/readelf.c:10523 #, fuzzy, c-format msgid " Padding: %8\n" msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:10515 +#: src/readelf.c:10577 #, c-format msgid "" "\n" @@ -5812,7 +5822,7 @@ msgstr "" "\n" "Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n" -#: src/readelf.c:10617 +#: src/readelf.c:10679 #, c-format msgid "" "\n" @@ -5821,22 +5831,22 @@ msgstr "" "\n" "Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n" -#: src/readelf.c:10640 +#: src/readelf.c:10702 #, c-format msgid " LPStart encoding: %#x " msgstr " Kodowanie LPStart: %#x " -#: src/readelf.c:10652 +#: src/readelf.c:10714 #, c-format msgid " TType encoding: %#x " msgstr " Kodowanie TType: %#x " -#: src/readelf.c:10667 +#: src/readelf.c:10729 #, c-format msgid " Call site encoding: %#x " msgstr " Kodowanie strony wywołania: %#x " -#: src/readelf.c:10680 +#: src/readelf.c:10742 msgid "" "\n" " Call site table:" @@ -5844,7 +5854,7 @@ msgstr "" "\n" " Tabela strony wywołania:" -#: src/readelf.c:10694 +#: src/readelf.c:10756 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5857,12 +5867,12 @@ msgstr "" " Lądowisko: %#\n" " Działanie: %u\n" -#: src/readelf.c:10767 +#: src/readelf.c:10829 #, c-format msgid "invalid TType encoding" msgstr "nieprawidłowe kodowanie TType" -#: src/readelf.c:10794 +#: src/readelf.c:10856 #, c-format msgid "" "\n" @@ -5871,37 +5881,37 @@ msgstr "" "\n" "Sekcja GDB [%2zu] „%s” pod offsetem %# zawiera % bajtów:\n" -#: src/readelf.c:10823 +#: src/readelf.c:10885 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:10841 +#: src/readelf.c:10903 #, c-format msgid " CU offset: %#\n" msgstr " offset CU: %#\n" -#: src/readelf.c:10848 +#: src/readelf.c:10910 #, c-format msgid " TU offset: %#\n" msgstr " offset TU: %#\n" -#: src/readelf.c:10855 +#: src/readelf.c:10917 #, c-format msgid " address offset: %#\n" msgstr " offset adresu: %#\n" -#: src/readelf.c:10862 +#: src/readelf.c:10924 #, c-format msgid " symbol offset: %#\n" msgstr " offset symbolu: %#\n" -#: src/readelf.c:10869 +#: src/readelf.c:10931 #, c-format msgid " constant offset: %#\n" msgstr " offset stałej: %#\n" -#: src/readelf.c:10883 +#: src/readelf.c:10945 #, c-format msgid "" "\n" @@ -5910,7 +5920,7 @@ msgstr "" "\n" " Lista CU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10908 +#: src/readelf.c:10970 #, c-format msgid "" "\n" @@ -5919,7 +5929,7 @@ msgstr "" "\n" " Lista TU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10937 +#: src/readelf.c:10999 #, c-format msgid "" "\n" @@ -5928,7 +5938,7 @@ msgstr "" "\n" " Lista adresów pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:10969 +#: src/readelf.c:11031 #, c-format msgid "" "\n" @@ -5937,18 +5947,18 @@ msgstr "" "\n" " Tabela symboli pod offsetem %# zawiera %zu gniazd:\n" -#: src/readelf.c:11107 +#: src/readelf.c:11169 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 -#: src/readelf.c:12266 +#: src/readelf.c:11537 src/readelf.c:12159 src/readelf.c:12270 +#: src/readelf.c:12328 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można konwertować danych notatki core: %s" -#: src/readelf.c:11838 +#: src/readelf.c:11900 #, c-format msgid "" "\n" @@ -5957,21 +5967,21 @@ msgstr "" "\n" "%*s… …" -#: src/readelf.c:12345 +#: src/readelf.c:12407 msgid " Owner Data size Type\n" msgstr " Właściciel Rozmiar danych Typ\n" -#: src/readelf.c:12374 +#: src/readelf.c:12436 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12426 +#: src/readelf.c:12488 #, fuzzy, c-format msgid "cannot get content of note: %s" msgstr "nie można uzyskać zawartości sekcji notatki: %s" -#: src/readelf.c:12460 +#: src/readelf.c:12522 #, c-format msgid "" "\n" @@ -5981,7 +5991,7 @@ msgstr "" "Segment notatki [%2zu] „%s” o długości % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:12483 +#: src/readelf.c:12545 #, c-format msgid "" "\n" @@ -5990,7 +6000,7 @@ msgstr "" "\n" "Segment notatki o długości % bajtów pod offsetem %#0:\n" -#: src/readelf.c:12530 +#: src/readelf.c:12592 #, c-format msgid "" "\n" @@ -5999,12 +6009,12 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie ma danych do zrzucenia.\n" -#: src/readelf.c:12557 src/readelf.c:12608 +#: src/readelf.c:12619 src/readelf.c:12670 #, 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:12562 +#: src/readelf.c:12624 #, c-format msgid "" "\n" @@ -6014,7 +6024,7 @@ msgstr "" "Segment zrzutu szesnastkowego [%zu] „%s”, % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:12567 +#: src/readelf.c:12629 #, c-format msgid "" "\n" @@ -6025,7 +6035,7 @@ msgstr "" "Zrzut szesnastkowy sekcji [%zu] „%s”, % bajtów (%zd " "nieskompresowanych) pod offsetem %#0:\n" -#: src/readelf.c:12581 +#: src/readelf.c:12643 #, c-format msgid "" "\n" @@ -6034,7 +6044,7 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie ma ciągów do zrzucenia.\n" -#: src/readelf.c:12613 +#: src/readelf.c:12675 #, c-format msgid "" "\n" @@ -6043,7 +6053,7 @@ msgstr "" "\n" "Sekcja ciągów [%zu] „%s” zawiera % bajtów pod offsetem %#0:\n" -#: src/readelf.c:12618 +#: src/readelf.c:12680 #, c-format msgid "" "\n" @@ -6054,7 +6064,7 @@ msgstr "" "Sekcja ciągów [%zu] „%s” zawiera % bajtów (%zd nieskompresowanych) " "pod offsetem %#0:\n" -#: src/readelf.c:12667 +#: src/readelf.c:12729 #, c-format msgid "" "\n" @@ -6063,7 +6073,7 @@ msgstr "" "\n" "sekcja [%lu] nie istnieje" -#: src/readelf.c:12697 +#: src/readelf.c:12759 #, c-format msgid "" "\n" @@ -6072,12 +6082,12 @@ msgstr "" "\n" "sekcja „%s” nie istnieje" -#: src/readelf.c:12754 +#: src/readelf.c:12816 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s" -#: src/readelf.c:12757 +#: src/readelf.c:12819 #, c-format msgid "" "\n" @@ -6086,7 +6096,7 @@ msgstr "" "\n" "Archiwum „%s” nie ma indeksu symboli\n" -#: src/readelf.c:12761 +#: src/readelf.c:12823 #, c-format msgid "" "\n" @@ -6095,12 +6105,12 @@ msgstr "" "\n" "Indeks archiwum „%s” ma %zu wpisów:\n" -#: src/readelf.c:12779 +#: src/readelf.c:12841 #, 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:12784 +#: src/readelf.c:12846 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Element archiwum „%s” zawiera:\n" @@ -6715,7 +6725,7 @@ msgstr "nie można utworzyć nagłówka ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "nie można uzyskać sekcji: %s" -#: src/unstrip.c:248 src/unstrip.c:2083 +#: src/unstrip.c:248 src/unstrip.c:2089 #, c-format msgid "cannot get ELF header: %s" msgstr "nie można uzyskać nagłówka ELF: %s" @@ -6735,12 +6745,12 @@ msgstr "nie można zaktualizować relokacji: %s" msgid "cannot copy ELF header: %s" msgstr "nie można skopiować nagłówka ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 +#: src/unstrip.c:269 src/unstrip.c:2107 src/unstrip.c:2150 #, c-format msgid "cannot get number of program headers: %s" msgstr "nie można uzyskać liczby nagłówków programu: %s" -#: src/unstrip.c:274 src/unstrip.c:2105 +#: src/unstrip.c:274 src/unstrip.c:2111 #, c-format msgid "cannot create program headers: %s" msgstr "nie można utworzyć nagłówków programu: %s" @@ -6755,198 +6765,198 @@ msgstr "nie można skopiować nagłówka programu: %s" msgid "cannot copy section header: %s" msgstr "nie można skopiować nagłówka sekcji: %s" -#: src/unstrip.c:293 src/unstrip.c:1705 +#: src/unstrip.c:293 src/unstrip.c:1711 #, c-format msgid "cannot get section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:295 src/unstrip.c:1707 +#: src/unstrip.c:295 src/unstrip.c:1713 #, c-format msgid "cannot copy section data: %s" msgstr "nie można skopiować danych sekcji: %s" -#: src/unstrip.c:319 +#: src/unstrip.c:323 #, c-format msgid "cannot create directory '%s'" msgstr "nie można utworzyć katalogu „%s”" -#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 -#: src/unstrip.c:1747 +#: src/unstrip.c:397 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861 +#: src/unstrip.c:1753 #, c-format msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 -#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 +#: src/unstrip.c:413 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696 +#: src/unstrip.c:1774 src/unstrip.c:1969 src/unstrip.c:1993 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" -#: src/unstrip.c:417 +#: src/unstrip.c:423 #, c-format msgid "cannot update section header: %s" msgstr "nie można zaktualizować nagłówka sekcji: %s" -#: src/unstrip.c:463 src/unstrip.c:477 +#: src/unstrip.c:469 src/unstrip.c:483 #, c-format msgid "cannot update relocation: %s" msgstr "nie można zaktualizować relokacji: %s" -#: src/unstrip.c:576 +#: src/unstrip.c:582 #, c-format msgid "cannot get symbol version: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:589 +#: src/unstrip.c:595 #, 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:844 +#: src/unstrip.c:850 #, fuzzy, c-format msgid "cannot get symbol section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:846 +#: src/unstrip.c:852 #, fuzzy, c-format msgid "cannot get string section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:863 +#: src/unstrip.c:869 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "nieprawidłowy offset ciągu w symbolu [%zu]" -#: src/unstrip.c:1021 src/unstrip.c:1425 +#: src/unstrip.c:1027 src/unstrip.c:1431 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "nie można odczytać nazwy sekcji [%zu]: %s" -#: src/unstrip.c:1036 +#: src/unstrip.c:1042 #, fuzzy, c-format msgid "bad sh_link for group section: %s" msgstr "nieprawidłowa wartość sh_link w sekcji %zu" -#: src/unstrip.c:1042 +#: src/unstrip.c:1048 #, 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:1047 +#: src/unstrip.c:1053 #, fuzzy, c-format msgid "bad data for group symbol section: %s" msgstr "nie można uzyskać danych dla sekcji symboli\n" -#: src/unstrip.c:1053 +#: src/unstrip.c:1059 #, fuzzy, c-format msgid "couldn't get symbol for group section: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:1058 +#: src/unstrip.c:1064 #, fuzzy, c-format msgid "bad symbol name for group section: %s" msgstr "błędny nagłówek kompresji dla sekcji %zd: %s" -#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 +#: src/unstrip.c:1106 src/unstrip.c:1125 src/unstrip.c:1163 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "nie można odczytać sekcji „.gnu.prelink_undo”: %s" -#: src/unstrip.c:1137 +#: src/unstrip.c:1143 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "przepełnienie z shnum = %zu w sekcji „%s”" -#: src/unstrip.c:1148 +#: src/unstrip.c:1154 #, c-format msgid "invalid contents in '%s' section" msgstr "nieprawidłowa zawartość w sekcji „%s”" -#: src/unstrip.c:1204 src/unstrip.c:1551 +#: src/unstrip.c:1210 src/unstrip.c:1557 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”" -#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 +#: src/unstrip.c:1335 src/unstrip.c:1351 src/unstrip.c:1637 src/unstrip.c:1928 #, 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:1354 +#: src/unstrip.c:1360 #, 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:1383 src/unstrip.c:1387 +#: src/unstrip.c:1389 src/unstrip.c:1393 #, 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:1391 src/unstrip.c:1395 src/unstrip.c:1646 +#: src/unstrip.c:1397 src/unstrip.c:1401 src/unstrip.c:1652 #, c-format msgid "cannot get section count: %s" msgstr "nie można uzyskać licznika sekcji: %s" -#: src/unstrip.c:1398 +#: src/unstrip.c:1404 #, 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:1402 +#: src/unstrip.c:1408 #, c-format msgid "no sections in stripped file" msgstr "" -#: src/unstrip.c:1473 src/unstrip.c:1566 +#: src/unstrip.c:1479 src/unstrip.c:1572 #, 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:1625 +#: src/unstrip.c:1631 #, c-format msgid "cannot add new section: %s" msgstr "nie można dodać nowej sekcji: %s" -#: src/unstrip.c:1755 +#: src/unstrip.c:1761 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji" -#: src/unstrip.c:1787 +#: src/unstrip.c:1793 #, fuzzy, c-format msgid "group has invalid section index [%zd]" msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji" -#: src/unstrip.c:2062 +#: src/unstrip.c:2068 #, c-format msgid "cannot read section data: %s" msgstr "nie można odczytać danych sekcji: %s" -#: src/unstrip.c:2091 +#: src/unstrip.c:2097 #, c-format msgid "cannot update ELF header: %s" msgstr "nie można zaktualizować nagłówka ELF: %s" -#: src/unstrip.c:2115 +#: src/unstrip.c:2121 #, c-format msgid "cannot update program header: %s" msgstr "nie można zaktualizować nagłówka programu: %s" -#: src/unstrip.c:2120 src/unstrip.c:2202 +#: src/unstrip.c:2126 src/unstrip.c:2208 #, c-format msgid "cannot write output file: %s" msgstr "nie można zapisać pliku wyjściowego: %s" -#: src/unstrip.c:2171 +#: src/unstrip.c:2177 #, 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:2174 +#: src/unstrip.c:2180 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6954,77 +6964,77 @@ msgstr "" "Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego " "konsolidowania; proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 +#: src/unstrip.c:2199 src/unstrip.c:2250 src/unstrip.c:2262 src/unstrip.c:2348 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/unstrip.c:2235 +#: src/unstrip.c:2241 msgid "WARNING: " msgstr "OSTRZEŻENIE: " -#: src/unstrip.c:2237 +#: src/unstrip.c:2243 msgid ", use --force" msgstr ", należy użyć opcji --force" -#: src/unstrip.c:2260 +#: src/unstrip.c:2266 msgid "ELF header identification (e_ident) different" msgstr "Różna identyfikacja nagłówka ELF (e_ident)" -#: src/unstrip.c:2263 +#: src/unstrip.c:2269 msgid "ELF header type (e_type) different" msgstr "Różne typy nagłówka ELF (e_type)" -#: src/unstrip.c:2266 +#: src/unstrip.c:2272 msgid "ELF header machine type (e_machine) different" msgstr "Różne typy maszyny nagłówka ELF (e_machine)" -#: src/unstrip.c:2269 +#: src/unstrip.c:2275 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony" -#: src/unstrip.c:2299 +#: src/unstrip.c:2305 #, 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:2303 +#: src/unstrip.c:2309 #, 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:2318 +#: src/unstrip.c:2324 #, 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:2322 +#: src/unstrip.c:2328 #, 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:2335 +#: src/unstrip.c:2341 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "moduł „%s” pliku „%s” nie został okrojony" -#: src/unstrip.c:2366 +#: src/unstrip.c:2372 #, 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:2498 +#: src/unstrip.c:2504 #, c-format msgid "no matching modules found" msgstr "nie odnaleziono pasujących modułów" -#: src/unstrip.c:2507 +#: src/unstrip.c:2513 #, c-format msgid "matched more than one module" msgstr "pasuje więcej niż jeden moduł" -#: src/unstrip.c:2551 +#: src/unstrip.c:2557 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7032,7 +7042,7 @@ msgstr "" "OKROJONY-PLIK PLIK-DEBUGOWANIA\n" "[MODUŁ…]" -#: src/unstrip.c:2552 +#: src/unstrip.c:2558 #, fuzzy msgid "" "Combine stripped files with separate symbols and debug information.\n" diff --git a/po/uk.po b/po/uk.po index ce3f60f8..1f183a01 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2020-09-08 12:51+0200\n" +"POT-Creation-Date: 2020-10-31 17:37+0100\n" "PO-Revision-Date: 2020-03-28 14:59+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -59,7 +59,7 @@ msgstr "" "гарантій, зокрема гарантій працездатності або придатності для певної мети.\n" #: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3449 -#: src/readelf.c:11424 src/unstrip.c:2395 src/unstrip.c:2600 +#: src/readelf.c:11486 src/unstrip.c:316 src/unstrip.c:2401 src/unstrip.c:2606 #, c-format msgid "memory exhausted" msgstr "пам’ять вичерпано" @@ -219,7 +219,7 @@ msgstr "некоректна версія DWARF" msgid "invalid directory index" msgstr "некоректний покажчик каталогу" -#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:75 +#: libdw/dwarf_error.c:87 libdwfl/libdwflP.h:76 msgid "address out of range" msgstr "некоректна адреса" @@ -247,7 +247,7 @@ msgstr "некоректний номер рядка" msgid "invalid address range index" msgstr "некоректний індекс діапазону адрес" -#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:76 +#: libdw/dwarf_error.c:94 libdwfl/libdwflP.h:77 msgid "no matching address range" msgstr "не виявлено відповідного діапазону адрес" @@ -291,7 +291,7 @@ msgstr "невідомий код мови" msgid ".debug_addr section missing" msgstr "пропущено розділ .debug_addr" -#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2541 +#: libdwfl/argp-std.c:50 src/stack.c:643 src/unstrip.c:2547 msgid "Input selection options:" msgstr "Вибір параметрів виведення даних:" @@ -387,126 +387,131 @@ msgid "LZMA decompression failed" msgstr "Помилка під час спроби видобування з LZMA" #: libdwfl/libdwflP.h:64 +#, fuzzy +msgid "zstd decompression failed" +msgstr "Помилка під час спроби видобування з gzip" + +#: libdwfl/libdwflP.h:65 msgid "no support library found for machine" msgstr "у системі не виявлено бібліотеки підтримки" -#: libdwfl/libdwflP.h:65 +#: libdwfl/libdwflP.h:66 msgid "Callbacks missing for ET_REL file" msgstr "Немає зворотних викликів для файла ET_REL" -#: libdwfl/libdwflP.h:66 +#: libdwfl/libdwflP.h:67 msgid "Unsupported relocation type" msgstr "Непідтримуваний тип пересування" -#: libdwfl/libdwflP.h:67 +#: libdwfl/libdwflP.h:68 msgid "r_offset is bogus" msgstr "r_offset є фіктивним" -#: libdwfl/libdwflP.h:68 libelf/elf_error.c:115 libelf/elf_error.c:175 +#: libdwfl/libdwflP.h:69 libelf/elf_error.c:115 libelf/elf_error.c:175 msgid "offset out of range" msgstr "перевищення можливого зміщення" -#: libdwfl/libdwflP.h:69 +#: libdwfl/libdwflP.h:70 msgid "relocation refers to undefined symbol" msgstr "пересування посилається на невизначений символ." -#: libdwfl/libdwflP.h:70 +#: libdwfl/libdwflP.h:71 msgid "Callback returned failure" msgstr "Зворотним викликом повернуто помилку" -#: libdwfl/libdwflP.h:71 +#: libdwfl/libdwflP.h:72 msgid "No DWARF information found" msgstr "Не виявлено відомостей DWARF" -#: libdwfl/libdwflP.h:72 +#: libdwfl/libdwflP.h:73 msgid "No symbol table found" msgstr "Не виявлено таблиці символів" -#: libdwfl/libdwflP.h:73 +#: libdwfl/libdwflP.h:74 msgid "No ELF program headers" msgstr "Немає заголовків програми ELF" -#: libdwfl/libdwflP.h:74 +#: libdwfl/libdwflP.h:75 msgid "address range overlaps an existing module" msgstr "діапазон адрес перекриває існуючий модуль" -#: libdwfl/libdwflP.h:77 +#: libdwfl/libdwflP.h:78 msgid "image truncated" msgstr "образ обрізано" -#: libdwfl/libdwflP.h:78 +#: libdwfl/libdwflP.h:79 msgid "ELF file opened" msgstr "Відкритий файл ELF" -#: libdwfl/libdwflP.h:79 +#: libdwfl/libdwflP.h:80 msgid "not a valid ELF file" msgstr "не є коректним файлом ELF" -#: libdwfl/libdwflP.h:80 +#: libdwfl/libdwflP.h:81 msgid "cannot handle DWARF type description" msgstr "не вдалося обробити опис типу DWARF" -#: libdwfl/libdwflP.h:81 +#: libdwfl/libdwflP.h:82 msgid "ELF file does not match build ID" msgstr "Файл ELF не відповідає ідентифікатору збирання" -#: libdwfl/libdwflP.h:82 +#: libdwfl/libdwflP.h:83 msgid "corrupt .gnu.prelink_undo section data" msgstr "дані розділу «.gnu.prelink_undo» пошкоджено" -#: libdwfl/libdwflP.h:83 +#: libdwfl/libdwflP.h:84 msgid "Internal error due to ebl" msgstr "Внутрішня помилка через ebl" -#: libdwfl/libdwflP.h:84 +#: libdwfl/libdwflP.h:85 msgid "Missing data in core file" msgstr "У файлі ядра не вистачає даних" -#: libdwfl/libdwflP.h:85 +#: libdwfl/libdwflP.h:86 msgid "Invalid register" msgstr "Некоректний регістр" -#: libdwfl/libdwflP.h:86 +#: libdwfl/libdwflP.h:87 msgid "Error reading process memory" msgstr "Помилка під час спроби читання пам’яті процесу" -#: libdwfl/libdwflP.h:87 +#: libdwfl/libdwflP.h:88 msgid "Couldn't find architecture of any ELF" msgstr "Не вдалося знайти хоч якусь архітектуру ELF" -#: libdwfl/libdwflP.h:88 +#: libdwfl/libdwflP.h:89 msgid "Error parsing /proc filesystem" msgstr "Помилка під час спроби обробки файлової системи /proc" -#: libdwfl/libdwflP.h:89 +#: libdwfl/libdwflP.h:90 msgid "Invalid DWARF" msgstr "Некоректний запис DWARF" -#: libdwfl/libdwflP.h:90 +#: libdwfl/libdwflP.h:91 msgid "Unsupported DWARF" msgstr "Непідтримуваний запис DWARF" -#: libdwfl/libdwflP.h:91 +#: libdwfl/libdwflP.h:92 msgid "Unable to find more threads" msgstr "Не вдалося знайти додаткові потоки" -#: libdwfl/libdwflP.h:92 +#: libdwfl/libdwflP.h:93 msgid "Dwfl already has attached state" msgstr "Dwfl уже перебуває у стані долучення до процесу" -#: libdwfl/libdwflP.h:93 +#: libdwfl/libdwflP.h:94 msgid "Dwfl has no attached state" msgstr "Dwfl не перебуває у стані долучення до процесу" -#: libdwfl/libdwflP.h:94 +#: libdwfl/libdwflP.h:95 msgid "Unwinding not supported for this architecture" msgstr "Для цієї архітектури розгортання не передбачено" -#: libdwfl/libdwflP.h:95 +#: libdwfl/libdwflP.h:96 msgid "Invalid argument" msgstr "Некоректний аргумент" -#: libdwfl/libdwflP.h:96 +#: libdwfl/libdwflP.h:97 msgid "Not an ET_CORE ELF file" msgstr "Не є файлом ET_CORE ELF" @@ -611,7 +616,7 @@ msgstr "некоректна розмірність вхідного парам msgid "invalid size of destination operand" msgstr "некоректна розмірність вихідного параметра" -#: libelf/elf_error.c:87 src/readelf.c:6172 +#: libelf/elf_error.c:87 src/readelf.c:6197 #, c-format msgid "invalid encoding" msgstr "некоректне кодування" @@ -696,8 +701,8 @@ msgstr "невідповідність полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:191 src/readelf.c:9935 src/readelf.c:10535 -#: src/readelf.c:10636 src/readelf.c:10818 +#: libelf/elf_error.c:191 src/readelf.c:9997 src/readelf.c:10597 +#: src/readelf.c:10698 src/readelf.c:10880 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -1359,7 +1364,7 @@ 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:984 src/strip.c:1021 -#: src/unstrip.c:2191 src/unstrip.c:2220 +#: src/unstrip.c:2197 src/unstrip.c:2226 #, c-format msgid "cannot open '%s'" msgstr "не вдалося відкрити «%s»" @@ -3757,8 +3762,8 @@ msgstr "не вдалося створити дерево пошуку" #: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005 #: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707 #: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518 -#: src/readelf.c:3581 src/readelf.c:11251 src/readelf.c:12441 -#: src/readelf.c:12652 src/readelf.c:12721 src/size.c:398 src/size.c:470 +#: src/readelf.c:3581 src/readelf.c:11313 src/readelf.c:12503 +#: src/readelf.c:12714 src/readelf.c:12783 src/size.c:398 src/size.c:470 #: src/strip.c:1038 #, c-format msgid "cannot get section header string table index" @@ -4081,11 +4086,11 @@ msgstr "не вдалося визначити кількість розділі msgid "cannot get section: %s" msgstr "не вдалося отримати розділ: %s" -#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12672 -#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:606 -#: src/unstrip.c:627 src/unstrip.c:667 src/unstrip.c:883 src/unstrip.c:1214 -#: src/unstrip.c:1341 src/unstrip.c:1365 src/unstrip.c:1421 src/unstrip.c:1485 -#: src/unstrip.c:1660 src/unstrip.c:1811 src/unstrip.c:1954 src/unstrip.c:2053 +#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12734 +#: src/unstrip.c:401 src/unstrip.c:432 src/unstrip.c:491 src/unstrip.c:612 +#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1220 +#: src/unstrip.c:1347 src/unstrip.c:1371 src/unstrip.c:1427 src/unstrip.c:1491 +#: src/unstrip.c:1666 src/unstrip.c:1817 src/unstrip.c:1960 src/unstrip.c:2059 #, c-format msgid "cannot get section header: %s" msgstr "не вдалося отримати заголовок розділу: %s" @@ -4095,8 +4100,8 @@ msgstr "не вдалося отримати заголовок розділу: msgid "cannot get section name" msgstr "не вдалося отримати назву розділу" -#: src/readelf.c:670 src/readelf.c:6585 src/readelf.c:10523 src/readelf.c:10625 -#: src/readelf.c:10803 +#: src/readelf.c:670 src/readelf.c:6610 src/readelf.c:10585 src/readelf.c:10687 +#: src/readelf.c:10865 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалося отримати дані %s: %s" @@ -4438,7 +4443,7 @@ msgstr "" " Відображення розділів на сегмент:\n" " Розділи сегмента..." -#: src/readelf.c:1460 src/unstrip.c:2112 src/unstrip.c:2154 src/unstrip.c:2161 +#: src/readelf.c:1460 src/unstrip.c:2118 src/unstrip.c:2160 src/unstrip.c:2167 #, c-format msgid "cannot get program header: %s" msgstr "не вдалося отримати заголовок програми: %s" @@ -4487,8 +4492,8 @@ msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>" msgid "" msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>" -#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12543 -#: src/readelf.c:12550 src/readelf.c:12594 src/readelf.c:12601 +#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12605 +#: src/readelf.c:12612 src/readelf.c:12656 src/readelf.c:12663 msgid "Couldn't uncompress section" msgstr "Не вдалося розпакувати розділ" @@ -4498,7 +4503,7 @@ msgid "cannot get section [%zd] header: %s" msgstr "не вдалося отримати заголовок розділу [%zd]: %s" #: src/readelf.c:1805 src/readelf.c:2455 src/readelf.c:2713 src/readelf.c:2789 -#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5364 +#: src/readelf.c:3093 src/readelf.c:3167 src/readelf.c:5389 #, c-format msgid "invalid sh_link value in section %zu" msgstr "некоректне значення sh_link у розділі %zu" @@ -5011,7 +5016,7 @@ msgstr " [%6tx] <НЕВИКОРИСТОВУВАНІ ДАНІ У РЕШТІ РО msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] <НЕВИКОРИСТОВУВАНІ ДАНІ> ... % байтів ...\n" -#: src/readelf.c:5054 +#: src/readelf.c:5079 #, c-format msgid "" "\n" @@ -5022,7 +5027,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" " [ Код]\n" -#: src/readelf.c:5062 +#: src/readelf.c:5087 #, c-format msgid "" "\n" @@ -5031,20 +5036,20 @@ msgstr "" "\n" "Розділ скорочень за зміщенням %:\n" -#: src/readelf.c:5075 +#: src/readelf.c:5100 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** помилка під час читання скорочення: %s\n" -#: src/readelf.c:5091 +#: src/readelf.c:5116 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] зміщення: %, дочірній: %s, мітка: %s\n" -#: src/readelf.c:5124 src/readelf.c:5433 src/readelf.c:5600 src/readelf.c:5985 -#: src/readelf.c:6595 src/readelf.c:8332 src/readelf.c:9024 src/readelf.c:9460 -#: src/readelf.c:9711 src/readelf.c:9877 src/readelf.c:10264 -#: src/readelf.c:10324 +#: src/readelf.c:5149 src/readelf.c:5458 src/readelf.c:5625 src/readelf.c:6010 +#: src/readelf.c:6620 src/readelf.c:8357 src/readelf.c:9049 src/readelf.c:9522 +#: src/readelf.c:9773 src/readelf.c:9939 src/readelf.c:10326 +#: src/readelf.c:10386 #, c-format msgid "" "\n" @@ -5053,54 +5058,54 @@ msgstr "" "\n" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" -#: src/readelf.c:5137 +#: src/readelf.c:5162 #, c-format msgid "cannot get .debug_addr section data: %s" msgstr "не вдалося отримати дані розділу .debug_addr: %s" -#: src/readelf.c:5237 src/readelf.c:5261 src/readelf.c:5645 src/readelf.c:9069 +#: src/readelf.c:5262 src/readelf.c:5286 src/readelf.c:5670 src/readelf.c:9094 #, c-format msgid " Length: %8\n" msgstr " Довжина: %8\n" -#: src/readelf.c:5239 src/readelf.c:5276 src/readelf.c:5658 src/readelf.c:9082 +#: src/readelf.c:5264 src/readelf.c:5301 src/readelf.c:5683 src/readelf.c:9107 #, c-format msgid " DWARF version: %8\n" msgstr " версія DWARF: %8\n" -#: src/readelf.c:5240 src/readelf.c:5285 src/readelf.c:5667 src/readelf.c:9091 +#: src/readelf.c:5265 src/readelf.c:5310 src/readelf.c:5692 src/readelf.c:9116 #, c-format msgid " Address size: %8\n" msgstr " Розмір адреси: %8\n" -#: src/readelf.c:5242 src/readelf.c:5295 src/readelf.c:5677 src/readelf.c:9101 +#: src/readelf.c:5267 src/readelf.c:5320 src/readelf.c:5702 src/readelf.c:9126 #, c-format msgid " Segment size: %8\n" msgstr "" " Розмір сегмента: %8\n" "\n" -#: src/readelf.c:5280 src/readelf.c:5662 src/readelf.c:9086 src/readelf.c:10456 +#: src/readelf.c:5305 src/readelf.c:5687 src/readelf.c:9111 src/readelf.c:10518 #, c-format msgid "Unknown version" msgstr "Невідома версія" -#: src/readelf.c:5290 src/readelf.c:5503 src/readelf.c:5672 src/readelf.c:9096 +#: src/readelf.c:5315 src/readelf.c:5528 src/readelf.c:5697 src/readelf.c:9121 #, c-format msgid "unsupported address size" msgstr "непідтримуваний розмір адреси" -#: src/readelf.c:5301 src/readelf.c:5514 src/readelf.c:5682 src/readelf.c:9106 +#: src/readelf.c:5326 src/readelf.c:5539 src/readelf.c:5707 src/readelf.c:9131 #, c-format msgid "unsupported segment size" msgstr "непідтримуваний розмір сегмента" -#: src/readelf.c:5354 src/readelf.c:5428 +#: src/readelf.c:5379 src/readelf.c:5453 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "не вдалося отримати дані get .debug_aranges: %s" -#: src/readelf.c:5369 +#: src/readelf.c:5394 #, c-format msgid "" "\n" @@ -5118,12 +5123,12 @@ msgstr[2] "" "\n" "Розділ DWARF [%2zu] «%s» за зміщенням %# містить %zu записів:\n" -#: src/readelf.c:5400 +#: src/readelf.c:5425 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:5402 +#: src/readelf.c:5427 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5131,7 +5136,7 @@ msgstr "" " [%*zu] початок: %0#*, довжина: %5, зміщення CU DIE: " "%6\n" -#: src/readelf.c:5446 src/readelf.c:8359 +#: src/readelf.c:5471 src/readelf.c:8384 #, c-format msgid "" "\n" @@ -5140,13 +5145,13 @@ msgstr "" "\n" "Таблиця за зміщенням %zu:\n" -#: src/readelf.c:5450 src/readelf.c:5626 src/readelf.c:6619 src/readelf.c:8370 -#: src/readelf.c:9050 +#: src/readelf.c:5475 src/readelf.c:5651 src/readelf.c:6644 src/readelf.c:8395 +#: src/readelf.c:9075 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" -#: src/readelf.c:5466 +#: src/readelf.c:5491 #, c-format msgid "" "\n" @@ -5155,27 +5160,27 @@ msgstr "" "\n" " Довжина: %6\n" -#: src/readelf.c:5478 +#: src/readelf.c:5503 #, c-format msgid " DWARF version: %6\n" msgstr " версія DWARF: %6\n" -#: src/readelf.c:5482 +#: src/readelf.c:5507 #, c-format msgid "unsupported aranges version" msgstr "непідтримувана версія aranges" -#: src/readelf.c:5493 +#: src/readelf.c:5518 #, c-format msgid " CU offset: %6\n" msgstr " зміщення CU: %6\n" -#: src/readelf.c:5499 +#: src/readelf.c:5524 #, c-format msgid " Address size: %6\n" msgstr " Розмір адреси: %6\n" -#: src/readelf.c:5510 +#: src/readelf.c:5535 #, c-format msgid "" " Segment size: %6\n" @@ -5184,17 +5189,17 @@ msgstr "" " Розмір сегмента: %6\n" "\n" -#: src/readelf.c:5565 +#: src/readelf.c:5590 #, c-format msgid " %zu padding bytes\n" msgstr " %zu байтів доповнення\n" -#: src/readelf.c:5609 +#: src/readelf.c:5634 #, c-format msgid "cannot get .debug_rnglists content: %s" msgstr "не вдалося отримати вміст .debug_rnglists: %s" -#: src/readelf.c:5632 src/readelf.c:9056 +#: src/readelf.c:5657 src/readelf.c:9081 #, c-format msgid "" "Table at Offset 0x%:\n" @@ -5203,42 +5208,42 @@ msgstr "" "Таблиця за зміщенням 0x%:\n" "\n" -#: src/readelf.c:5687 src/readelf.c:9111 +#: src/readelf.c:5712 src/readelf.c:9136 #, c-format msgid " Offset entries: %8\n" msgstr " Записи зміщення: %8\n" -#: src/readelf.c:5703 src/readelf.c:9127 +#: src/readelf.c:5728 src/readelf.c:9152 #, c-format msgid " Unknown CU base: " msgstr " Невідома основа CU: " -#: src/readelf.c:5705 src/readelf.c:9129 +#: src/readelf.c:5730 src/readelf.c:9154 #, c-format msgid " CU [%6] base: " msgstr " Основа CU [%6]: " -#: src/readelf.c:5711 src/readelf.c:9135 +#: src/readelf.c:5736 src/readelf.c:9160 #, c-format msgid " Not associated with a CU.\n" msgstr " Не пов'язано із CU.\n" -#: src/readelf.c:5722 src/readelf.c:9146 +#: src/readelf.c:5747 src/readelf.c:9171 #, c-format msgid "too many offset entries for unit length" msgstr "забагато записів зсуву для довжини модуля" -#: src/readelf.c:5726 src/readelf.c:9150 +#: src/readelf.c:5751 src/readelf.c:9175 #, c-format msgid " Offsets starting at 0x%:\n" msgstr " Зміщення, що починаються з 0x%:\n" -#: src/readelf.c:5778 +#: src/readelf.c:5803 #, c-format msgid "invalid range list data" msgstr "некоректні дані списку діапазонів" -#: src/readelf.c:5963 src/readelf.c:9438 +#: src/readelf.c:5988 src/readelf.c:9500 #, c-format msgid "" " %zu padding bytes\n" @@ -5247,12 +5252,12 @@ msgstr "" " %zu байтів доповнення\n" "\n" -#: src/readelf.c:5980 +#: src/readelf.c:6005 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "не вдалося отримати дані .debug_ranges: %s" -#: src/readelf.c:6016 src/readelf.c:9493 +#: src/readelf.c:6041 src/readelf.c:9555 #, c-format msgid "" "\n" @@ -5261,7 +5266,7 @@ msgstr "" "\n" " Невідома основа CU: " -#: src/readelf.c:6018 src/readelf.c:9495 +#: src/readelf.c:6043 src/readelf.c:9557 #, c-format msgid "" "\n" @@ -5270,31 +5275,31 @@ msgstr "" "\n" " Основа CU [%6]: " -#: src/readelf.c:6027 src/readelf.c:9521 src/readelf.c:9547 +#: src/readelf.c:6052 src/readelf.c:9583 src/readelf.c:9609 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:6052 src/readelf.c:9631 +#: src/readelf.c:6077 src/readelf.c:9693 #, fuzzy msgid "base address" msgstr " встановити адресу у значення " -#: src/readelf.c:6062 src/readelf.c:9641 +#: src/readelf.c:6087 src/readelf.c:9703 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] порожній список\n" -#: src/readelf.c:6317 +#: src/readelf.c:6342 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:6573 +#: src/readelf.c:6598 #, c-format msgid "cannot get ELF: %s" msgstr "не вдалося отримати ELF: %s" -#: src/readelf.c:6591 +#: src/readelf.c:6616 #, c-format msgid "" "\n" @@ -5303,7 +5308,7 @@ msgstr "" "\n" "Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#:\n" -#: src/readelf.c:6641 +#: src/readelf.c:6666 #, c-format msgid "" "\n" @@ -5312,65 +5317,65 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:6742 src/readelf.c:6896 +#: src/readelf.c:6767 src/readelf.c:6921 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшення" -#: src/readelf.c:6757 +#: src/readelf.c:6782 msgid "FDE address encoding: " msgstr "Кодування адреси FDE: " -#: src/readelf.c:6763 +#: src/readelf.c:6788 msgid "LSDA pointer encoding: " msgstr "Кодування вказівника LSDA: " -#: src/readelf.c:6873 +#: src/readelf.c:6898 #, c-format msgid " (offset: %#)" msgstr " (зміщення: %#)" -#: src/readelf.c:6880 +#: src/readelf.c:6905 #, c-format msgid " (end offset: %#)" msgstr " (зміщення від кінця: %#)" -#: src/readelf.c:6917 +#: src/readelf.c:6942 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sвказівник LSDA: %#\n" -#: src/readelf.c:7002 +#: src/readelf.c:7027 #, c-format msgid "DIE [%] cannot get attribute code: %s" msgstr "DIE [%] не вдалося отримати код атрибута: %s" -#: src/readelf.c:7012 +#: src/readelf.c:7037 #, c-format msgid "DIE [%] cannot get attribute form: %s" msgstr "DIE [%] не вдалося отримати форму атрибута: %s" -#: src/readelf.c:7034 +#: src/readelf.c:7059 #, c-format msgid "DIE [%] cannot get attribute '%s' (%s) value: %s" msgstr "DIE [%] не вдалося отримати значення атрибута «%s» (%s): %s" -#: src/readelf.c:7364 +#: src/readelf.c:7389 #, c-format msgid "invalid file (%): %s" msgstr "некоректний файл (%): %s" -#: src/readelf.c:7368 +#: src/readelf.c:7393 #, c-format msgid "no srcfiles for CU [%]" msgstr "немає srcfiles для CU [%]" -#: src/readelf.c:7372 +#: src/readelf.c:7397 #, c-format msgid "couldn't get DWARF CU: %s" msgstr "не вдалося отримати CU DWARF: %s" -#: src/readelf.c:7685 +#: src/readelf.c:7710 #, c-format msgid "" "\n" @@ -5381,12 +5386,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщенням %#:\n" " [Зміщення]\n" -#: src/readelf.c:7735 +#: src/readelf.c:7760 #, c-format msgid "cannot get next unit: %s" msgstr "не вдалося отримати наступний модуль: %s" -#: src/readelf.c:7754 +#: src/readelf.c:7779 #, c-format msgid "" " Type unit at offset %:\n" @@ -5399,7 +5404,7 @@ msgstr "" "%, Розмір зміщення: %\n" " Підпис типу: %#, Зміщення типу: %# [%]\n" -#: src/readelf.c:7766 +#: src/readelf.c:7791 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5410,38 +5415,38 @@ msgstr "" " Версія: %, Зміщення розділу скорочень: %, Адреса: %, " "Зміщення: %\n" -#: src/readelf.c:7776 src/readelf.c:7939 +#: src/readelf.c:7801 src/readelf.c:7964 #, c-format msgid " Unit type: %s (%)" msgstr " Тип модуля: %s (%)" -#: src/readelf.c:7803 +#: src/readelf.c:7828 #, c-format msgid "unknown version (%d) or unit type (%d)" msgstr "невідома версія (%d) або тип модуля (%d)" -#: src/readelf.c:7832 +#: src/readelf.c:7857 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалося отримати зміщення DIE: %s" -#: src/readelf.c:7841 +#: src/readelf.c:7866 #, c-format msgid "cannot get tag of DIE at offset [%] in section '%s': %s" msgstr "" "не вдалося отримати мітку DIE за зміщенням [%] у розділі «%s»: %s" -#: src/readelf.c:7879 +#: src/readelf.c:7904 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалося визначити наступний DIE: %s\n" -#: src/readelf.c:7887 +#: src/readelf.c:7912 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалося визначити наступний DIE: %s" -#: src/readelf.c:7931 +#: src/readelf.c:7956 #, c-format msgid "" " Split compilation unit at offset %:\n" @@ -5452,7 +5457,7 @@ msgstr "" " Версія: %, Зміщення розділу скорочень: %, Адреса: %, " "Зміщення: %\n" -#: src/readelf.c:7983 +#: src/readelf.c:8008 #, c-format msgid "" "\n" @@ -5463,18 +5468,18 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" "\n" -#: src/readelf.c:8315 +#: src/readelf.c:8340 #, c-format msgid "unknown form: %s" msgstr "невідома форма: %s" -#: src/readelf.c:8346 +#: src/readelf.c:8371 #, c-format msgid "cannot get line data section data: %s" msgstr "не вдалося отримати дані розділу лінійних даних: %s" #. Print what we got so far. -#: src/readelf.c:8448 +#: src/readelf.c:8473 #, c-format msgid "" "\n" @@ -5507,27 +5512,27 @@ msgstr "" "\n" "Коди операцій:\n" -#: src/readelf.c:8470 +#: src/readelf.c:8495 #, c-format msgid "cannot handle .debug_line version: %u\n" msgstr "не вдалося обробити версію .debug_line: %u\n" -#: src/readelf.c:8478 +#: src/readelf.c:8503 #, c-format msgid "cannot handle address size: %u\n" msgstr "не вдалося обробити розмір адреси: %u\n" -#: src/readelf.c:8486 +#: src/readelf.c:8511 #, c-format msgid "cannot handle segment selector size: %u\n" msgstr "не вдалося обробити розмір селектора сегментів: %u\n" -#: src/readelf.c:8496 +#: src/readelf.c:8521 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»" -#: src/readelf.c:8511 +#: src/readelf.c:8536 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5535,7 +5540,7 @@ msgstr[0] " [%*] %hhu аргумент\n" msgstr[1] " [%*] %hhu аргументи\n" msgstr[2] " [%*] %hhu аргументів\n" -#: src/readelf.c:8522 +#: src/readelf.c:8547 msgid "" "\n" "Directory table:" @@ -5543,12 +5548,12 @@ msgstr "" "\n" "Таблиця каталогу:" -#: src/readelf.c:8528 src/readelf.c:8605 +#: src/readelf.c:8553 src/readelf.c:8630 #, c-format msgid " [" msgstr " [" -#: src/readelf.c:8599 +#: src/readelf.c:8624 msgid "" "\n" "File name table:" @@ -5556,11 +5561,11 @@ msgstr "" "\n" " Таблиця назв файлів:" -#: src/readelf.c:8660 +#: src/readelf.c:8685 msgid " Entry Dir Time Size Name" msgstr " Запис Кат Час Розмір Назва" -#: src/readelf.c:8699 +#: src/readelf.c:8724 #, fuzzy msgid "" "\n" @@ -5569,7 +5574,7 @@ msgstr "" "\n" "Оператори номерів рядків:" -#: src/readelf.c:8703 +#: src/readelf.c:8728 msgid "" "\n" "Line number statements:" @@ -5577,118 +5582,118 @@ msgstr "" "\n" "Оператори номерів рядків:" -#: src/readelf.c:8726 +#: src/readelf.c:8751 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "некоректну кількість операцій на інструкцію прирівняно до нуля" -#: src/readelf.c:8760 +#: src/readelf.c:8785 #, c-format msgid " special opcode %u: address+%u = " msgstr " спеціальний код операції %u: адреса+%u = " -#: src/readelf.c:8764 +#: src/readelf.c:8789 #, c-format msgid ", op_index = %u, line%+d = %zu\n" msgstr ", індекс_оп = %u, рядок%+d = %zu\n" -#: src/readelf.c:8767 +#: src/readelf.c:8792 #, c-format msgid ", line%+d = %zu\n" msgstr ", рядок%+d = %zu\n" -#: src/readelf.c:8785 +#: src/readelf.c:8810 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:8790 +#: src/readelf.c:8815 msgid " end of sequence" msgstr " кінець послідовності" -#: src/readelf.c:8808 +#: src/readelf.c:8833 #, c-format msgid " set address to " msgstr " встановити адресу у значення " -#: src/readelf.c:8836 +#: src/readelf.c:8861 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " визначення нового файла: dir=%u, mtime=%, довжина=%, назва=" "%s\n" -#: src/readelf.c:8850 +#: src/readelf.c:8875 #, c-format msgid " set discriminator to %u\n" msgstr " встановити розрізнення для %u\n" #. Unknown, ignore it. -#: src/readelf.c:8855 +#: src/readelf.c:8880 msgid " unknown opcode" msgstr " невідомий код операції" #. Takes no argument. -#: src/readelf.c:8867 +#: src/readelf.c:8892 msgid " copy" msgstr " копія" -#: src/readelf.c:8878 +#: src/readelf.c:8903 #, c-format msgid " advance address by %u to " msgstr " збільшення адреси на %u до " -#: src/readelf.c:8882 src/readelf.c:8943 +#: src/readelf.c:8907 src/readelf.c:8968 #, c-format msgid ", op_index to %u" msgstr ", op_index до %u" -#: src/readelf.c:8894 +#: src/readelf.c:8919 #, c-format msgid " advance line by constant %d to %\n" msgstr " просувати рядок на сталу %d до %\n" -#: src/readelf.c:8904 +#: src/readelf.c:8929 #, c-format msgid " set file to %\n" msgstr " встановити файл у %\n" -#: src/readelf.c:8915 +#: src/readelf.c:8940 #, c-format msgid " set column to %\n" msgstr " встановити значення стовпчика %\n" -#: src/readelf.c:8922 +#: src/readelf.c:8947 #, c-format msgid " set '%s' to %\n" msgstr " встановити «%s» у %\n" #. Takes no argument. -#: src/readelf.c:8928 +#: src/readelf.c:8953 msgid " set basic block flag" msgstr " встановити прапорець базового блоку" -#: src/readelf.c:8939 +#: src/readelf.c:8964 #, c-format msgid " advance address by constant %u to " msgstr " збільшити адресу на сталу величину %u до " -#: src/readelf.c:8959 +#: src/readelf.c:8984 #, c-format msgid " advance address by fixed value %u to \n" msgstr " збільшити адресу на фіксовану величину %u до \n" #. Takes no argument. -#: src/readelf.c:8969 +#: src/readelf.c:8994 msgid " set prologue end flag" msgstr " встановити прапорець кінця вступу" #. Takes no argument. -#: src/readelf.c:8974 +#: src/readelf.c:8999 msgid " set epilogue begin flag" msgstr " встановити прапорець початку епілогу" -#: src/readelf.c:8984 +#: src/readelf.c:9009 #, c-format msgid " set isa to %u\n" msgstr " встановити isa у %u\n" @@ -5696,7 +5701,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:8993 +#: src/readelf.c:9018 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5704,97 +5709,102 @@ msgstr[0] " невідомий код операції з % параме msgstr[1] " невідомий код операції з % параметрами:" msgstr[2] " невідомий код операції з % параметрами:" -#: src/readelf.c:9033 +#: src/readelf.c:9058 #, c-format msgid "cannot get .debug_loclists content: %s" msgstr "не вдалося отримати вміст .debug_loclists: %s" -#: src/readelf.c:9202 +#: src/readelf.c:9224 +#, fuzzy, c-format +msgid " \n" +msgstr " <НЕКОРЕКТНІ ДАНІ>\n" + +#: src/readelf.c:9264 #, c-format msgid "invalid loclists data" msgstr "некоректні дані loclists" -#: src/readelf.c:9455 +#: src/readelf.c:9517 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "не вдалося отримати вміст .debug_loc: %s" -#: src/readelf.c:9668 src/readelf.c:10712 +#: src/readelf.c:9730 src/readelf.c:10774 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:9723 src/readelf.c:9886 +#: src/readelf.c:9785 src/readelf.c:9948 #, c-format msgid "cannot get macro information section data: %s" msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s" -#: src/readelf.c:9803 +#: src/readelf.c:9865 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений рядок наприкінці розділу" -#: src/readelf.c:9826 +#: src/readelf.c:9888 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу" -#: src/readelf.c:9927 +#: src/readelf.c:9989 #, c-format msgid " Offset: 0x%\n" msgstr " Зміщення: 0x%\n" -#: src/readelf.c:9939 +#: src/readelf.c:10001 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:9945 src/readelf.c:10832 +#: src/readelf.c:10007 src/readelf.c:10894 #, c-format msgid " unknown version, cannot parse section\n" msgstr " невідома версія, не вдалося обробити розділ\n" -#: src/readelf.c:9952 +#: src/readelf.c:10014 #, c-format msgid " Flag: 0x%" msgstr " Прапорець: 0x%" -#: src/readelf.c:9981 +#: src/readelf.c:10043 #, c-format msgid " Offset length: %\n" msgstr " Довжина зміщення: %\n" -#: src/readelf.c:9989 +#: src/readelf.c:10051 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " зміщення .debug_line: 0x%\n" -#: src/readelf.c:10014 +#: src/readelf.c:10076 #, c-format msgid " extension opcode table, % items:\n" msgstr " таблиця кодів операцій розширень, записів — %:\n" -#: src/readelf.c:10021 +#: src/readelf.c:10083 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:10033 +#: src/readelf.c:10095 #, c-format msgid " % arguments:" msgstr " % аргументів:" -#: src/readelf.c:10048 +#: src/readelf.c:10110 #, c-format msgid " no arguments." msgstr " немає аргументів." -#: src/readelf.c:10249 +#: src/readelf.c:10311 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " [%5d] зміщення DIE: %6, зміщення CU DIE: %6, назва: %s\n" -#: src/readelf.c:10293 +#: src/readelf.c:10355 #, c-format msgid "" "\n" @@ -5805,37 +5815,37 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" " %*s Рядок\n" -#: src/readelf.c:10308 +#: src/readelf.c:10370 #, c-format msgid " *** error, missing string terminator\n" msgstr " *** помилка, пропущено роздільник рядків\n" -#: src/readelf.c:10337 +#: src/readelf.c:10399 #, c-format msgid "cannot get .debug_str_offsets section data: %s" msgstr "не вдалося отримати дані розділу .debug_str_offsets: %s" -#: src/readelf.c:10436 +#: src/readelf.c:10498 #, c-format msgid " Length: %8\n" msgstr " Довжина: %8\n" -#: src/readelf.c:10438 +#: src/readelf.c:10500 #, c-format msgid " Offset size: %8\n" msgstr " Розмір зсуву: %8\n" -#: src/readelf.c:10452 +#: src/readelf.c:10514 #, c-format msgid " DWARF version: %8\n" msgstr " версія DWARF: %8\n" -#: src/readelf.c:10461 +#: src/readelf.c:10523 #, c-format msgid " Padding: %8\n" msgstr " Заповнення: %8\n" -#: src/readelf.c:10515 +#: src/readelf.c:10577 #, c-format msgid "" "\n" @@ -5844,7 +5854,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:10617 +#: src/readelf.c:10679 #, c-format msgid "" "\n" @@ -5853,22 +5863,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:10640 +#: src/readelf.c:10702 #, c-format msgid " LPStart encoding: %#x " msgstr " Кодування LPStart: %#x " -#: src/readelf.c:10652 +#: src/readelf.c:10714 #, c-format msgid " TType encoding: %#x " msgstr " Кодування TType: %#x " -#: src/readelf.c:10667 +#: src/readelf.c:10729 #, c-format msgid " Call site encoding: %#x " msgstr " Кодування місця виклику:%#x " -#: src/readelf.c:10680 +#: src/readelf.c:10742 msgid "" "\n" " Call site table:" @@ -5876,7 +5886,7 @@ msgstr "" "\n" " Таблиця місця виклику:" -#: src/readelf.c:10694 +#: src/readelf.c:10756 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5889,12 +5899,12 @@ msgstr "" " Місце застосування: %#\n" " Дія: %u\n" -#: src/readelf.c:10767 +#: src/readelf.c:10829 #, c-format msgid "invalid TType encoding" msgstr "некоректне кодування TType" -#: src/readelf.c:10794 +#: src/readelf.c:10856 #, c-format msgid "" "\n" @@ -5903,37 +5913,37 @@ msgstr "" "\n" "Розділ GDB [%2zu] «%s» за зміщенням %# містить % байтів:\n" -#: src/readelf.c:10823 +#: src/readelf.c:10885 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:10841 +#: src/readelf.c:10903 #, c-format msgid " CU offset: %#\n" msgstr " зміщення CU: %#\n" -#: src/readelf.c:10848 +#: src/readelf.c:10910 #, c-format msgid " TU offset: %#\n" msgstr " зміщення TU: %#\n" -#: src/readelf.c:10855 +#: src/readelf.c:10917 #, c-format msgid " address offset: %#\n" msgstr " зміщення адреси: %#\n" -#: src/readelf.c:10862 +#: src/readelf.c:10924 #, c-format msgid " symbol offset: %#\n" msgstr " зміщення символу: %#\n" -#: src/readelf.c:10869 +#: src/readelf.c:10931 #, c-format msgid " constant offset: %#\n" msgstr " стале зміщення: %#\n" -#: src/readelf.c:10883 +#: src/readelf.c:10945 #, c-format msgid "" "\n" @@ -5942,7 +5952,7 @@ msgstr "" "\n" " Список CU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10908 +#: src/readelf.c:10970 #, c-format msgid "" "\n" @@ -5951,7 +5961,7 @@ msgstr "" "\n" " Список TU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10937 +#: src/readelf.c:10999 #, c-format msgid "" "\n" @@ -5960,7 +5970,7 @@ msgstr "" "\n" " Список адрес зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:10969 +#: src/readelf.c:11031 #, c-format msgid "" "\n" @@ -5969,18 +5979,18 @@ msgstr "" "\n" " Таблиця символів за зміщенням %# містить %zu позицій:\n" -#: src/readelf.c:11107 +#: src/readelf.c:11169 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалося отримати дескриптор контексту зневаджування: %s" -#: src/readelf.c:11475 src/readelf.c:12097 src/readelf.c:12208 -#: src/readelf.c:12266 +#: src/readelf.c:11537 src/readelf.c:12159 src/readelf.c:12270 +#: src/readelf.c:12328 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалося перетворити дані запису ядра: %s" -#: src/readelf.c:11838 +#: src/readelf.c:11900 #, c-format msgid "" "\n" @@ -5989,21 +5999,21 @@ msgstr "" "\n" "%*s... <повторюється %u разів> ..." -#: src/readelf.c:12345 +#: src/readelf.c:12407 msgid " Owner Data size Type\n" msgstr " Власник Розм. даних Тип\n" -#: src/readelf.c:12374 +#: src/readelf.c:12436 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:12426 +#: src/readelf.c:12488 #, c-format msgid "cannot get content of note: %s" msgstr "не вдалося отримати вміст нотатки: %s" -#: src/readelf.c:12460 +#: src/readelf.c:12522 #, c-format msgid "" "\n" @@ -6013,7 +6023,7 @@ msgstr "" "Розділ записів (note) [%2zu] «%s» з % байтів за зміщенням " "%#0:\n" -#: src/readelf.c:12483 +#: src/readelf.c:12545 #, c-format msgid "" "\n" @@ -6022,7 +6032,7 @@ msgstr "" "\n" "Сегмент записів з % байтів за зміщенням %#0:\n" -#: src/readelf.c:12530 +#: src/readelf.c:12592 #, c-format msgid "" "\n" @@ -6031,12 +6041,12 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься даних для створення дампу.\n" -#: src/readelf.c:12557 src/readelf.c:12608 +#: src/readelf.c:12619 src/readelf.c:12670 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s" -#: src/readelf.c:12562 +#: src/readelf.c:12624 #, c-format msgid "" "\n" @@ -6045,7 +6055,7 @@ msgstr "" "\n" "Шіст. дамп розділу [%zu] «%s», % байтів за зміщенням %#0:\n" -#: src/readelf.c:12567 +#: src/readelf.c:12629 #, c-format msgid "" "\n" @@ -6056,7 +6066,7 @@ msgstr "" "Шіст. дамп розділу [%zu] «%s», % байтів (%zd нестиснено) за " "зміщенням %#0:\n" -#: src/readelf.c:12581 +#: src/readelf.c:12643 #, c-format msgid "" "\n" @@ -6065,7 +6075,7 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься рядків для створення дампу.\n" -#: src/readelf.c:12613 +#: src/readelf.c:12675 #, c-format msgid "" "\n" @@ -6074,7 +6084,7 @@ msgstr "" "\n" "Розділ рядків [%zu] «%s» містить % байтів за зміщенням %#0:\n" -#: src/readelf.c:12618 +#: src/readelf.c:12680 #, c-format msgid "" "\n" @@ -6085,7 +6095,7 @@ msgstr "" "Рядок розділу [%zu] «%s» містить % байти (%zd нестиснено) на " "зміщенні %#0:\n" -#: src/readelf.c:12667 +#: src/readelf.c:12729 #, c-format msgid "" "\n" @@ -6094,7 +6104,7 @@ msgstr "" "\n" "розділу [%lu] не існує" -#: src/readelf.c:12697 +#: src/readelf.c:12759 #, c-format msgid "" "\n" @@ -6103,12 +6113,12 @@ msgstr "" "\n" "розділу «%s» не існує" -#: src/readelf.c:12754 +#: src/readelf.c:12816 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалося отримати покажчик символів архіву «%s»: %s" -#: src/readelf.c:12757 +#: src/readelf.c:12819 #, c-format msgid "" "\n" @@ -6117,7 +6127,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика символів\n" -#: src/readelf.c:12761 +#: src/readelf.c:12823 #, c-format msgid "" "\n" @@ -6126,12 +6136,12 @@ msgstr "" "\n" "Покажчик архіву «%s» містить %zu записів:\n" -#: src/readelf.c:12779 +#: src/readelf.c:12841 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s" -#: src/readelf.c:12784 +#: src/readelf.c:12846 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» містить:\n" @@ -6770,7 +6780,7 @@ msgstr "не вдалося створити заголовок ELF: %s" msgid "cannot get shdrstrndx:%s" msgstr "не вдалося отримати shdrstrndx:%s" -#: src/unstrip.c:248 src/unstrip.c:2083 +#: src/unstrip.c:248 src/unstrip.c:2089 #, c-format msgid "cannot get ELF header: %s" msgstr "не вдалося отримати заголовок ELF: %s" @@ -6790,12 +6800,12 @@ msgstr "неможливо оновити новий нульовий розді msgid "cannot copy ELF header: %s" msgstr "не вдалося скопіювати заголовок ELF: %s" -#: src/unstrip.c:269 src/unstrip.c:2101 src/unstrip.c:2144 +#: src/unstrip.c:269 src/unstrip.c:2107 src/unstrip.c:2150 #, c-format msgid "cannot get number of program headers: %s" msgstr "не вдалося отримати кількість заголовків програми: %s" -#: src/unstrip.c:274 src/unstrip.c:2105 +#: src/unstrip.c:274 src/unstrip.c:2111 #, c-format msgid "cannot create program headers: %s" msgstr "не вдалося створити заголовки програми: %s" @@ -6810,199 +6820,199 @@ msgstr "не вдалося скопіювати заголовок програ msgid "cannot copy section header: %s" msgstr "не вдалося скопіювати заголовок розділу: %s" -#: src/unstrip.c:293 src/unstrip.c:1705 +#: src/unstrip.c:293 src/unstrip.c:1711 #, c-format msgid "cannot get section data: %s" msgstr "не вдалося отримати дані розділу: %s" -#: src/unstrip.c:295 src/unstrip.c:1707 +#: src/unstrip.c:295 src/unstrip.c:1713 #, c-format msgid "cannot copy section data: %s" msgstr "не вдалося скопіювати дані розділу: %s" -#: src/unstrip.c:319 +#: src/unstrip.c:323 #, c-format msgid "cannot create directory '%s'" msgstr "не вдалося створити каталог «%s»" -#: src/unstrip.c:391 src/unstrip.c:653 src/unstrip.c:687 src/unstrip.c:855 -#: src/unstrip.c:1747 +#: src/unstrip.c:397 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861 +#: src/unstrip.c:1753 #, c-format msgid "cannot get symbol table entry: %s" msgstr "не вдалося отримати запис таблиці символів: %s" -#: src/unstrip.c:407 src/unstrip.c:656 src/unstrip.c:677 src/unstrip.c:690 -#: src/unstrip.c:1768 src/unstrip.c:1963 src/unstrip.c:1987 +#: src/unstrip.c:413 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696 +#: src/unstrip.c:1774 src/unstrip.c:1969 src/unstrip.c:1993 #, c-format msgid "cannot update symbol table: %s" msgstr "не вдалося оновити таблицю символів: %s" -#: src/unstrip.c:417 +#: src/unstrip.c:423 #, c-format msgid "cannot update section header: %s" msgstr "не вдалося оновити заголовок розділу: %s" -#: src/unstrip.c:463 src/unstrip.c:477 +#: src/unstrip.c:469 src/unstrip.c:483 #, c-format msgid "cannot update relocation: %s" msgstr "не вдалося оновити пересування: %s" -#: src/unstrip.c:576 +#: src/unstrip.c:582 #, c-format msgid "cannot get symbol version: %s" msgstr "не вдалося отримати версію символу: %s" -#: src/unstrip.c:589 +#: src/unstrip.c:595 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "неочікуваний тип розділу у [%zu] з посиланням sh_link на symtab" -#: src/unstrip.c:844 +#: src/unstrip.c:850 #, c-format msgid "cannot get symbol section data: %s" msgstr "не вдалося отримати дані розділу символів: %s" -#: src/unstrip.c:846 +#: src/unstrip.c:852 #, c-format msgid "cannot get string section data: %s" msgstr "не вдалося отримати дані розділу рядків: %s" -#: src/unstrip.c:863 +#: src/unstrip.c:869 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "некоректне зміщення рядка у символі [%zu]" -#: src/unstrip.c:1021 src/unstrip.c:1425 +#: src/unstrip.c:1027 src/unstrip.c:1431 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "не вдалося прочитати назву розділу [%zu]: %s" -#: src/unstrip.c:1036 +#: src/unstrip.c:1042 #, c-format msgid "bad sh_link for group section: %s" msgstr "помилкове значення sh_link для розділу груп: %s" -#: src/unstrip.c:1042 +#: src/unstrip.c:1048 #, c-format msgid "couldn't get shdr for group section: %s" msgstr "не вдалося отримати shdr для розділу груп: %s" -#: src/unstrip.c:1047 +#: src/unstrip.c:1053 #, c-format msgid "bad data for group symbol section: %s" msgstr "помилкові дані для розділу символів груп: %s" -#: src/unstrip.c:1053 +#: src/unstrip.c:1059 #, c-format msgid "couldn't get symbol for group section: %s" msgstr "не вдалося отримати символ для розділу груп: %s" -#: src/unstrip.c:1058 +#: src/unstrip.c:1064 #, c-format msgid "bad symbol name for group section: %s" msgstr "помилкова назва символу для розділу груп: %s" -#: src/unstrip.c:1100 src/unstrip.c:1119 src/unstrip.c:1157 +#: src/unstrip.c:1106 src/unstrip.c:1125 src/unstrip.c:1163 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s" -#: src/unstrip.c:1137 +#: src/unstrip.c:1143 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "переповнення з shnum = %zu у розділі «%s»" -#: src/unstrip.c:1148 +#: src/unstrip.c:1154 #, c-format msgid "invalid contents in '%s' section" msgstr "некоректний вміст розділу «%s»" -#: src/unstrip.c:1204 src/unstrip.c:1551 +#: src/unstrip.c:1210 src/unstrip.c:1557 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "не вдалося знайти відповідний розділ для [%zu] «%s»" -#: src/unstrip.c:1329 src/unstrip.c:1345 src/unstrip.c:1631 src/unstrip.c:1922 +#: src/unstrip.c:1335 src/unstrip.c:1351 src/unstrip.c:1637 src/unstrip.c:1928 #, c-format msgid "cannot add section name to string table: %s" msgstr "не вдалося додати назву розділу до таблиці рядків: %s" -#: src/unstrip.c:1354 +#: src/unstrip.c:1360 #, c-format msgid "cannot update section header string table data: %s" msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1383 src/unstrip.c:1387 +#: src/unstrip.c:1389 src/unstrip.c:1393 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1391 src/unstrip.c:1395 src/unstrip.c:1646 +#: src/unstrip.c:1397 src/unstrip.c:1401 src/unstrip.c:1652 #, c-format msgid "cannot get section count: %s" msgstr "не вдалося отримати кількість розділів: %s" -#: src/unstrip.c:1398 +#: src/unstrip.c:1404 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — " "помилковий порядок параметрів?" -#: src/unstrip.c:1402 +#: src/unstrip.c:1408 #, c-format msgid "no sections in stripped file" msgstr "у очищеному файлі немає розділів" -#: src/unstrip.c:1473 src/unstrip.c:1566 +#: src/unstrip.c:1479 src/unstrip.c:1572 #, c-format msgid "cannot read section header string table: %s" msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s" -#: src/unstrip.c:1625 +#: src/unstrip.c:1631 #, c-format msgid "cannot add new section: %s" msgstr "не вдалося додати новий розділ: %s" -#: src/unstrip.c:1755 +#: src/unstrip.c:1761 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "символ [%zu] має некоректний індекс розділу" -#: src/unstrip.c:1787 +#: src/unstrip.c:1793 #, c-format msgid "group has invalid section index [%zd]" msgstr "група містить некоректний індекс розділу [%zd]" -#: src/unstrip.c:2062 +#: src/unstrip.c:2068 #, c-format msgid "cannot read section data: %s" msgstr "не вдалося прочитати дані розділу: %s" -#: src/unstrip.c:2091 +#: src/unstrip.c:2097 #, c-format msgid "cannot update ELF header: %s" msgstr "не вдалося оновити заголовок ELF: %s" -#: src/unstrip.c:2115 +#: src/unstrip.c:2121 #, c-format msgid "cannot update program header: %s" msgstr "не вдалося оновити заголовок програми: %s" -#: src/unstrip.c:2120 src/unstrip.c:2202 +#: src/unstrip.c:2126 src/unstrip.c:2208 #, c-format msgid "cannot write output file: %s" msgstr "не вдалося записати файл виведених даних: %s" -#: src/unstrip.c:2171 +#: src/unstrip.c:2177 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Дані DWARF не скориговано відповідно до відхилення перед компонуванням; " "спробуйте виправити це командою prelink -u" -#: src/unstrip.c:2174 +#: src/unstrip.c:2180 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -7010,76 +7020,76 @@ msgstr "" "Дані DWARF у «%s» не скориговано відповідно до відхилення перед " "компонуванням; спробуйте виправити це командою prelink -u" -#: src/unstrip.c:2193 src/unstrip.c:2244 src/unstrip.c:2256 src/unstrip.c:2342 +#: src/unstrip.c:2199 src/unstrip.c:2250 src/unstrip.c:2262 src/unstrip.c:2348 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "не вдалося створити дескриптор ELF: %s" -#: src/unstrip.c:2235 +#: src/unstrip.c:2241 msgid "WARNING: " msgstr "УВАГА: " -#: src/unstrip.c:2237 +#: src/unstrip.c:2243 msgid ", use --force" msgstr ", скористайтеся --force" -#: src/unstrip.c:2260 +#: src/unstrip.c:2266 msgid "ELF header identification (e_ident) different" msgstr "Різні ідентифікатори заголовків ELF (e_ident)" -#: src/unstrip.c:2263 +#: src/unstrip.c:2269 msgid "ELF header type (e_type) different" msgstr "Різні типи заголовків ELF (e_type)" -#: src/unstrip.c:2266 +#: src/unstrip.c:2272 msgid "ELF header machine type (e_machine) different" msgstr "Різні типи архітектур заголовків ELF (e_machine)" -#: src/unstrip.c:2269 +#: src/unstrip.c:2275 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений" -#: src/unstrip.c:2299 +#: src/unstrip.c:2305 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "не вдалося знайти очищений файл для модуля «%s»: %s" -#: src/unstrip.c:2303 +#: src/unstrip.c:2309 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s" -#: src/unstrip.c:2318 +#: src/unstrip.c:2324 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s" -#: src/unstrip.c:2322 +#: src/unstrip.c:2328 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s" -#: src/unstrip.c:2335 +#: src/unstrip.c:2341 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "у модулі «%s» файл «%s» не очищено strip" -#: src/unstrip.c:2366 +#: src/unstrip.c:2372 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s" -#: src/unstrip.c:2498 +#: src/unstrip.c:2504 #, c-format msgid "no matching modules found" msgstr "відповідних модулів не виявлено" -#: src/unstrip.c:2507 +#: src/unstrip.c:2513 #, c-format msgid "matched more than one module" msgstr "встановлено відповідність декількох модулів" -#: src/unstrip.c:2551 +#: src/unstrip.c:2557 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7087,7 +7097,7 @@ msgstr "" "ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n" "[МОДУЛЬ...]" -#: src/unstrip.c:2552 +#: src/unstrip.c:2558 msgid "" "Combine stripped files with separate symbols and debug information.\n" "\n" -- cgit v1.2.1 From b503c358dde835d8a1ae3ebd4968755ff396f814 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sat, 31 Oct 2020 21:55:28 +0300 Subject: Do not install profile.d/debuginfod.*sh files unless debuginfod is enabled Fixes: 94708e964601 ("PR25461: add /etc/profile.d files for default $DEBUGINFOD_URLS") Fixes: fee123fb771f ("PR25461: uninstall /etc/profile.d files for distuninstallcheck") Signed-off-by: Dmitry V. Levin --- config/ChangeLog | 5 +++++ config/Makefile.am | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/config/ChangeLog b/config/ChangeLog index d3ecd6c6..c532f7e6 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2020-10-31 Dmitry V. Levin + + * Makefile.am (install-data-local, uninstall-local): Conditionalize + on DEBUGINFOD. + 2020-10-30 Mark Wielaard * elfutils.spec.in: Update for 0.182. diff --git a/config/Makefile.am b/config/Makefile.am index e56f32a5..ef28dab6 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -36,7 +36,6 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libelf.pc libdw.pc if DEBUGINFOD pkgconfig_DATA += libdebuginfod.pc -endif install-data-local: $(INSTALL_DATA) profile.sh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh @@ -44,6 +43,7 @@ install-data-local: uninstall-local: rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh +endif if MAINTAINER_MODE $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS -- cgit v1.2.1