Merge "Snap for 7110675 from 59c736f9a99486f3bf29cbdae4a3845cd4e6ac3c to sdk-release" into sdk-release
diff --git a/.gitignore b/.gitignore
index c979094..d737b14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -151,6 +151,7 @@
/tests/get-units-invalid
/tests/get-units-split
/tests/hash
+/tests/leb128
/tests/line2addr
/tests/low_high_pc
/tests/msg_tst
diff --git a/Android.bp b/Android.bp
index 2602e1f..1afacc2 100644
--- a/Android.bp
+++ b/Android.bp
@@ -33,6 +33,8 @@
visibility: [
"//external/dwarves:__subpackages__",
"//external/elfutils:__subpackages__",
+ "//external/libabigail:__subpackages__",
+ "//external/libbpf:__subpackages__",
],
}
@@ -113,6 +115,7 @@
// Do not enabled compression support
"libdwfl/bzip2.c",
"libdwfl/lzma.c",
+ "libdwfl/zstd.c",
// Those headers are incompatible with clang due to nested function
// definitions.
"libdwfl/dwfl_segment_report_module.c",
diff --git a/ChangeLog b/ChangeLog
index 094a798..128da6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2020-10-28 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Set version to 0.182.
+ * NEWS: Add 0.182 section.
+
+2020-10-28 Tom Tromey <tom@tromey.com>
+
+ * .gitignore: Add /tests/leb128.
+
+2020-10-01 Frank Ch. Eigler <fche@redhat.com>
+
+ PR25461
+ * configure.ac: Add --enable-debuginfod-urls[=URLS] option.
+
+2020-09-18 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Check availability of libzstd and zstd.
+
2020-09-08 Mark Wielaard <mark@klomp.org>
* configure.ac: Set version to 0.181.
diff --git a/METADATA b/METADATA
index cfb5987..0bc2da6 100644
--- a/METADATA
+++ b/METADATA
@@ -1,3 +1,6 @@
+# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE
+# CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
+# DEPENDING ON IT IN YOUR PROJECT. ***
name: "elfutils"
description: "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
third_party {
@@ -9,11 +12,12 @@
type: GIT
value: "git://sourceware.org/git/elfutils.git"
}
- version: "elfutils-0.181"
- license_type: RESTRICTED
+ version: "elfutils-0.182"
+ # would be RESTRICTED save for doc/COPYING-GFDL
+ license_type: BY_EXCEPTION_ONLY
last_upgrade_date {
year: 2020
- month: 9
- day: 23
+ month: 11
+ day: 2
}
}
diff --git a/NEWS b/NEWS
index 1bdb441..4e94f1c 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/backends/ChangeLog b/backends/ChangeLog
index ce4c971..81d4127 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,27 @@
+2020-10-19 Mark Wielard <mark@klomp.org>
+
+ * 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 <mark@klomp.org>
+
+ * 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 <mark@klomp.org>
* aarch64_init.c (aarch64_init): Hook dynamic_tag_name and
diff --git a/backends/Makefile.am b/backends/Makefile.am
index f405212..62916c9 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -37,16 +37,16 @@
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 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_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 \
@@ -77,9 +77,6 @@
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 @@
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/i386_init.c b/backends/i386_init.c
index 3f6b9ed..579e5fa 100644
--- a/backends/i386_init.c
+++ b/backends/i386_init.c
@@ -52,7 +52,6 @@
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 535dcd8..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#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 f509aef..ffc9842 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -58,7 +58,6 @@
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 ac440ab..08468f8 100644
--- a/backends/ppc_init.c
+++ b/backends/ppc_init.c
@@ -54,7 +54,6 @@
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 b1b9c52..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#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/tilegx_corenote.c b/backends/tilegx_corenote.c
deleted file mode 100644
index be3e7db..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <inttypes.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <sys/time.h>
-
-#define BACKEND 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 0f79542..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#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 b1e1743..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <dwarf.h>
-
-#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 1018110..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-/* 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 7f7d24b..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-
-#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 62a4690..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#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/backends/x86_64_init.c b/backends/x86_64_init.c
index 44c1ad2..8db9b64 100644
--- a/backends/x86_64_init.c
+++ b/backends/x86_64_init.c
@@ -56,7 +56,6 @@
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 0deb8ba..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#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/config/ChangeLog b/config/ChangeLog
index 1cb3d20..c532f7e 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,38 @@
+2020-10-31 Dmitry V. Levin <ldv@altlinux.org>
+
+ * Makefile.am (install-data-local, uninstall-local): Conditionalize
+ on DEBUGINFOD.
+
+2020-10-30 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Update for 0.182.
+
+2020-10-31 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.service: Bump up TimeoutStopSec.
+
+2020-10-30 Frank Ch. Eigler <fche@redhat.com>
+
+ * elfutils.spec.in: Fix debuginfod config/state file attributes
+ for non-lossy updates.
+
+2020-10-08 Frank Ch. Eigler <fche@redhat.com>
+
+ * Makefile.am (uninstall-local): Uninstall the new profile.d files.
+
+2020-10-01 Frank Ch. Eigler <fche@redhat.com>
+
+ PR25461
+ * 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.
+
+2020-09-18 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Add BuildRequires for libzstd-devel and zstd.
+ * libdw.pc.in: Requires.private libzstd.
+
2020-09-08 Mark Wielaard <mark@klomp.org>
* elfutils.spec.in: Update for 0.181.
diff --git a/config/Makefile.am b/config/Makefile.am
index 11f17df..ef28dab 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -30,12 +30,19 @@
##
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
if DEBUGINFOD
pkgconfig_DATA += libdebuginfod.pc
+
+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
endif
if MAINTAINER_MODE
diff --git a/config/debuginfod.service b/config/debuginfod.service
index 8fca343..b64d8cb 100644
--- a/config/debuginfod.service
+++ b/config/debuginfod.service
@@ -9,7 +9,8 @@
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/config/elfutils.spec.in b/config/elfutils.spec.in
index 95f63f5..c01b5f8 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -24,6 +24,7 @@
BuildRequires: zlib-devel
BuildRequires: bzip2-devel
BuildRequires: xz-devel
+BuildRequires: libzstd-devel
# For debuginfod
BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33
@@ -33,6 +34,7 @@
# 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
@@ -179,7 +181,7 @@
%setup -q
%build
-%configure --program-prefix=%{_programprefix} --enable-debuginfod
+%configure --program-prefix=%{_programprefix} --enable-debuginfod --enable-debuginfod-urls
make -s %{?_smp_mflags}
%install
@@ -189,6 +191,8 @@
%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}
@@ -294,7 +298,8 @@
%{_libdir}/libdebuginfod.so.*
%{_bindir}/debuginfod-find
%{_mandir}/man1/debuginfod-find.1*
-
+%config(noreplace) %{_sysconfdir}/profile.d/*
+
%files debuginfod-client-devel
%defattr(-,root,root)
%{_libdir}/pkgconfig/libdebuginfod.pc
@@ -305,13 +310,13 @@
%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
@@ -327,6 +332,15 @@
%systemd_postun_with_restart debuginfod.service
%changelog
+* Sat Oct 31 2020 Mark Wielaard <mark@klomp.org> 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 <mark@klomp.org> 0.181-1
- libelf: elf_update now compensates (fixes up) a bad sh_addralign
for SHF_COMPRESSED sections.
diff --git a/config/libdw.pc.in b/config/libdw.pc.in
index 3fc283d..2e83a43 100644
--- a/config/libdw.pc.in
+++ b/config/libdw.pc.in
@@ -17,6 +17,6 @@
# 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/config/profile.csh.in b/config/profile.csh.in
new file mode 100644
index 0000000..4f25896
--- /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 0000000..8a02248
--- /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 bf83387..515ac70 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([elfutils],[0.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],
@@ -397,8 +397,8 @@
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 @@
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 @@
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"], [
@@ -724,6 +731,18 @@
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
@@ -742,6 +761,7 @@
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}
@@ -756,9 +776,11 @@
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}
+ have zstd installed : ${HAVE_ZSTD}
debug branch prediction : ${use_debugpred}
gprof support : ${use_gprof}
gcov support : ${use_gcov}
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index db8a76a..34363e7 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,77 @@
+2020-10-31 Frank Ch. Eigler <fche@redhat.com>
+
+ * 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 <fche@redhat.com>
+
+ PR26775 cont'd.
+ * 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.
+ (thread_main_groom): Restore previous thread_work_total
+ metric.
+
+2020-10-29 Frank Ch. Eigler <fche@redhat.com>
+
+ 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 <fche@redhat.com>
+
+ 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 <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Translate
+ CURLE_PEER_FAILED_VERIFICATION to ECONNREFUSED.
+
+2020-10-20 Frank Ch. Eigler <fche@redhat.com>
+
+ 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 <fche@redhat.com>
+
+ * debuginfod.cxx (handle_buildid*): Add a parameter for detecting
+ internally-originated lookups for dwz resolution.
+
+2020-09-18 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (scan_source_file, archive_classify): Store only
+ canonicalized file names in sdef & sref records in the database.
+
+2020-09-08 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (BUILD_STATIC): Include libcurl_LIBS in libdebuginfod
+ when NOT DUMMY_LIBDEBUGINFOD.
+
+2020-09-16 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-find.c: Fix license block comment.
+
+2020-09-15 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-find.c (main): Use dwelf_elf_begin.
+
2020-07-03 Alice Zhang <alizhang@redhat.com>
* debuginfod-client.c (debuginfod_query_server): Use strncasecmp
diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am
index 2e8a343..0198560 100644
--- a/debuginfod/Makefile.am
+++ b/debuginfod/Makefile.am
@@ -46,9 +46,9 @@
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
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 18e7b85..0e5177b 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -871,6 +871,7 @@
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/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c
index 83a43ce..88a460f 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 <http://www.gnu.org/licenses/>. */
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
#include "config.h"
#include "printversion.h"
@@ -138,9 +138,10 @@
}
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)
{
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 5621030..3085f38 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -388,7 +388,9 @@
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;
@@ -548,23 +550,31 @@
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));
+ }
};
@@ -599,6 +609,14 @@
cv.notify_all();
}
+ // clear the workqueue, when scanning is interrupted with USR2
+ void clear() {
+ unique_lock<mutex> 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)
{
@@ -890,18 +908,15 @@
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)
- {
- 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
@@ -911,10 +926,8 @@
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)
@@ -1083,6 +1096,15 @@
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)
{
{
@@ -1093,19 +1115,27 @@
{
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)
@@ -1124,7 +1154,7 @@
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;
}
@@ -1143,8 +1173,12 @@
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;
}
@@ -1157,13 +1191,15 @@
{ // 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;
@@ -1188,19 +1224,23 @@
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;
@@ -1226,7 +1266,8 @@
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 +1371,8 @@
// 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
{
@@ -1363,7 +1405,8 @@
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);
@@ -1424,18 +1467,28 @@
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);
- else if (b_stype == "R")
- return handle_buildid_r_match(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;
}
@@ -1505,6 +1558,8 @@
"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));
}
@@ -1529,7 +1584,8 @@
// 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;
}
@@ -1630,6 +1686,8 @@
static map<string,int64_t> 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
@@ -2171,7 +2229,9 @@
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 &&
@@ -2254,41 +2314,27 @@
.bind(1, srps)
.step_ok_done();
- // register the dwarfsrc name in the interning table too
- ps_upsert_files
- .reset()
- .bind(1, dwarfsrc)
- .step_ok_done();
-
- ps_upsert_s
- .reset()
- .bind(1, buildid)
- .bind(2, dwarfsrc)
- .bind(3, srps)
- .bind(4, sfs.st_mtime)
- .step_ok_done();
-
- // PR25548: also store canonicalized source path
+ // 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_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();
}
+ 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");
}
}
@@ -2368,9 +2414,12 @@
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);
@@ -2439,37 +2488,26 @@
continue;
}
- ps_upsert_files
- .reset()
- .bind(1, s)
- .step_ok_done();
-
- ps_upsert_sref
- .reset()
- .bind(1, buildid)
- .bind(2, s)
- .step_ok_done();
-
- // PR25548: also store canonicalized source path
+ // 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, dwarfsrc_canon)
- .step_ok_done();
-
- ps_upsert_sref
- .reset()
- .bind(1, buildid)
- .bind(2, dwarfsrc_canon)
- .step_ok_done();
}
+ 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 ++;
}
}
@@ -2570,7 +2608,9 @@
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",
@@ -2679,7 +2719,8 @@
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
{
@@ -2718,7 +2759,9 @@
e.report(cerr);
}
- inc_metric("thread_work_total", "role","scan");
+ // 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);
@@ -2762,35 +2805,50 @@
{
if (interrupted) break;
+ if (sigusr2 != forced_groom_count) // stop early if groom triggered
+ {
+ scanq.clear(); // clear previously issued work for scanner threads
+ break;
+ }
+
fts_scanned ++;
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 ++;
- continue;
- }
-
switch (f->fts_info)
{
case FTS_F:
- scanq.push_back (make_pair(rps, *f->fts_statp));
+ {
+ /* 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:
@@ -2800,11 +2858,20 @@
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_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;
+
+ default: // ignore
+ inc_metric("traversed_total","type","other");
+ break;
}
}
gettimeofday (&tv_end, NULL);
@@ -2820,7 +2887,6 @@
{
(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);
@@ -2850,6 +2916,7 @@
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);
}
@@ -2901,6 +2968,8 @@
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 "
@@ -2928,7 +2997,13 @@
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");
}
+ else
+ inc_metric("groomed_total", "decision", "fresh");
+
+ if (sigusr1 != forced_rescan_count) // stop early if scan triggered
+ break;
}
files.reset();
@@ -2965,7 +3040,6 @@
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);
@@ -2994,6 +3068,7 @@
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);
}
diff --git a/doc/ChangeLog b/doc/ChangeLog
index e048500..8c33f17 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,18 @@
+2020-10-29 Frank Ch. Eigler <fche@redhat.com>
+
+ PR26775
+ * debuginfod.8: Document that SIGUSR1 interrupts the groom
+ cycle, and SIGUSR2 interrupts rescan.
+
+2020-10-25 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod_find_debuginfo.3 (ECONNREFUSED): Document that this
+ is also returned for a bad HTTPS server certificate.
+
+2020-10-07 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod-find.1: Add missing .br for SYNOPSIS section.
+
2020-06-19 Mark Wielaard <mark@klomp.org>
* Makefile.am: Guard all client manpages with LIBDEBUGINFOD.
diff --git a/doc/debuginfod-find.1 b/doc/debuginfod-find.1
index aeb1cb1..12d4ec2 100644
--- a/doc/debuginfod-find.1
+++ b/doc/debuginfod-find.1
@@ -19,10 +19,15 @@
.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
diff --git a/doc/debuginfod.8 b/doc/debuginfod.8
index a645cee..152e368 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -155,7 +155,8 @@
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 @@
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/doc/debuginfod_find_debuginfo.3 b/doc/debuginfod_find_debuginfo.3
index d9717d7..eec04e5 100644
--- a/doc/debuginfod_find_debuginfo.3
+++ b/doc/debuginfod_find_debuginfo.3
@@ -254,7 +254,8 @@
.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
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index 83a6549..d7ab8c4 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,8 @@
+2020-10-29 Mark Wielaard <mark@klomp.org>
+
+ * asm_align.c (__libasm_ensure_section_space): Use calloc, not
+ malloc to allocate extra space.
+
2020-07-19 Mark Wielaard <mark@klomp.org>
* libasmP.h: Include libebl.h after libasm.h.
diff --git a/libasm/asm_align.c b/libasm/asm_align.c
index e59a070..c8c671b 100644
--- a/libasm/asm_align.c
+++ b/libasm/asm_align.c
@@ -143,7 +143,7 @@
/* 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 @@
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/libdw/ChangeLog b/libdw/ChangeLog
index 8b0b583..289bb4c 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,25 @@
+2020-10-28 Tom Tromey <tom@tromey.com>
+
+ 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 <mark@klomp.org>
+
+ * 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 <tom@tromey.com>
+
+ * memory-access.h (read_3ubyte_unaligned_inc): Call
+ read_3ubyte_unaligned.
+
2020-09-03 Mark Wielaard <mark@klomp.org>
* dwarf.h: Add DW_CFA_AARCH64_negate_ra_state.
diff --git a/libdw/dwarf_frame_register.c b/libdw/dwarf_frame_register.c
index d0159fb..bcf3fa0 100644
--- a/libdw/dwarf_frame_register.c
+++ b/libdw/dwarf_frame_register.c
@@ -34,7 +34,7 @@
#include <dwarf.h>
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/dwarf_getlocation.c b/libdw/dwarf_getlocation.c
index 4617f9e..f2bad5a 100644
--- a/libdw/dwarf_getlocation.c
+++ b/libdw/dwarf_getlocation.c
@@ -130,9 +130,8 @@
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/libdw.h b/libdw/libdw.h
index 1a4e15a..f63cab1 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -1061,9 +1061,11 @@
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/libdw/memory-access.h b/libdw/memory-access.h
index a39ad6d..8b2386e 100644
--- a/libdw/memory-access.h
+++ b/libdw/memory-access.h
@@ -113,19 +113,22 @@
#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 @@
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 @@
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 @@
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;
@@ -363,7 +395,7 @@
#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_; })
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index ca10ce8..344db7c 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,15 @@
+2020-09-18 Mark Wielaard <mark@klomp.org>
+
+ * 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 <ldv@altlinux.org>
* Makefile.am (libdwfl_a_SOURCES): Conditionalize
diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am
index 1de0549..a0013e4 100644
--- a/libdwfl/Makefile.am
+++ b/libdwfl/Makefile.am
@@ -78,6 +78,9 @@
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 e9988cc..ba8ecfb 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 <zstd.h>
+# 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 <bzlib.h>
@@ -119,6 +125,7 @@
return failure;
}
+#ifndef ZSTD
static inline Dwfl_Error
zlib_fail (struct unzip_state *state, int result)
{
@@ -132,6 +139,7 @@
return fail (state, DWFL_E_ZLIB);
}
}
+#endif
#if !USE_INFLATE
static Dwfl_Error
@@ -197,7 +205,7 @@
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 @@
/* 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 ad6779a..4c6fcb2 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -61,6 +61,7 @@
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 @@
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 548cb56..6edb27f 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -357,6 +357,9 @@
#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 35fc528..77bd2bd 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 @@
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 0000000..dc4d523
--- /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/libebl/ChangeLog b/libebl/ChangeLog
index aa43b31..863e4d5 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,17 @@
+2020-10-19 Mark Wielaard <mark@klomp.org>
+
+ * eblopenbackend.c (tilegx_init): Removed.
+ (machines): Set init to NULL for tilegx.
+
+2020-10-19 Mark Wielaard <mark@klomp.org>
+
+ * 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 <mark@klomp.org>
* eblobjnote.c (ebl_object_note): For EM_AARCH64 handle BTI and PAC
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index d0d475b..d84e7ee 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -51,7 +51,7 @@
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 1e7960b..1214bb8 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -142,10 +142,6 @@
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 a25369d..0000000
--- 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 <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-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 b3b6fc0..a8af165 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -52,7 +52,6 @@
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 @@
{ 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 @@
{ 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 },
@@ -214,8 +213,6 @@
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 +256,6 @@
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 +686,6 @@
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 23c0e95..731001d 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -241,14 +241,6 @@
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
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index a3f1588..b15508f 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2020-10-28 Mark Wielaard <mark@klomp.org>
+
+ * elf.h: Update from glibc.
+
2020-08-28 Mark Wielaard <mark@klomp.org>
* elf.h: Update from glibc.
diff --git a/libelf/elf.h b/libelf/elf.h
index ff9f1da..6439c1a 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -19,10 +19,6 @@
#ifndef _ELF_H
#define _ELF_H 1
-#include <features.h>
-
-__BEGIN_DECLS
-
/* Standard ELF types. */
#include <stdint.h>
@@ -4105,6 +4101,4 @@
#define R_ARC_TLS_LE_S9 0x4a
#define R_ARC_TLS_LE_32 0x4b
-__END_DECLS
-
#endif /* elf.h */
diff --git a/po/ChangeLog b/po/ChangeLog
index 1506f34..af3fe34 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2020-10-31 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.182.
+
2020-09-08 Mark Wielaard <mark@klomp.org>
* *.po: Update for 0.181.
diff --git a/po/de.po b/po/de.po
index 4f6e00b..0669297 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@
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 <micm@fedoraproject.org>\n"
"Language-Team: German\n"
@@ -55,7 +55,7 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
#: 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 @@
#: 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 @@
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 @@
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 @@
" 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 @@
msgid "<INVALID SECTION>"
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 @@
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 @@
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, c-format
msgid ""
"\n"
@@ -4611,79 +4615,79 @@
" [ Code]\n"
msgstr ""
-#: src/readelf.c:5062
+#: src/readelf.c:5087
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\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: %<PRId64>, 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 %#<PRIx64>:\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<PRIu64>\n"
msgstr " %s: %<PRId64>\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<PRIu16>\n"
msgstr " %s: %<PRId64>\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<PRIu64>\n"
msgstr " %s: %<PRId64>\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<PRIu64>\n"
msgstr " %s: %<PRId64>\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 @@
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#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\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<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5478
+#: src/readelf.c:5503
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\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<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5499
+#: src/readelf.c:5524
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5510
+#: src/readelf.c:5535
#, c-format
msgid ""
" Segment size: %6<PRIu64>\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%<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5687 src/readelf.c:9111
+#: src/readelf.c:5712 src/readelf.c:9136
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\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<PRIx64>] 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%<PRIx64>:\n"
msgstr " %s: %<PRId64>\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<PRIx64>] 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] <INVALID DATA>\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 " <INVALID DATA>\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 %#<PRIx64>:\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: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6880
+#: src/readelf.c:6905
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6917
+#: src/readelf.c:6942
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:7002
+#: src/readelf.c:7027
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:7012
+#: src/readelf.c:7037
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:7034
+#: src/readelf.c:7059
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr ""
-#: src/readelf.c:7364
+#: src/readelf.c:7389
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Ungültige Datei"
-#: src/readelf.c:7368
+#: src/readelf.c:7393
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "unbekannte Form %<PRIx64>"
-#: 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 @@
" [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 %<PRIu64>:\n"
@@ -4948,7 +4952,7 @@
" Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n"
msgstr ""
-#: src/readelf.c:7766
+#: src/readelf.c:7791
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -4956,37 +4960,37 @@
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:7776 src/readelf.c:7939
+#: src/readelf.c:7801 src/readelf.c:7964
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
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 [%<PRIx64>] 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 %<PRIu64>:\n"
@@ -4994,7 +4998,7 @@
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:7983
+#: src/readelf.c:8008
#, c-format
msgid ""
"\n"
@@ -5002,18 +5006,18 @@
"\n"
msgstr ""
-#: src/readelf.c:8315
+#: src/readelf.c:8340
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "unbekannte Form %<PRIx64>"
-#: 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 @@
"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 " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %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=%<PRIu64>, length=%<PRIu64>, 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 %<PRId64>\n"
msgstr ""
-#: src/readelf.c:8904
+#: src/readelf.c:8929
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8915
+#: src/readelf.c:8940
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8922
+#: src/readelf.c:8947
#, c-format
msgid " set '%s' to %<PRIuFAST8>\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 @@
#. 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 %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> 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 " <INVALID DATA>\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 " <INVALID DATA>\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%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9939
+#: src/readelf.c:10001
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\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%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9981
+#: src/readelf.c:10043
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:9989
+#: src/readelf.c:10051
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:10014
+#: src/readelf.c:10076
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:10021
+#: src/readelf.c:10083
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10033
+#: src/readelf.c:10095
#, c-format
msgid " %<PRIu8> 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<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10293
+#: src/readelf.c:10355
#, c-format
msgid ""
"\n"
@@ -5314,72 +5323,72 @@
" %*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<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10438
+#: src/readelf.c:10500
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10452
+#: src/readelf.c:10514
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10461
+#: src/readelf.c:10523
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\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: %#<PRIx64>\n"
@@ -5388,142 +5397,142 @@
" 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 %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:10823
+#: src/readelf.c:10885
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10841
+#: src/readelf.c:10903
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10848
+#: src/readelf.c:10910
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10855
+#: src/readelf.c:10917
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10862
+#: src/readelf.c:10924
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10869
+#: src/readelf.c:10931
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10883
+#: src/readelf.c:10945
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10908
+#: src/readelf.c:10970
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10937
+#: src/readelf.c:10999
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10969
+#: src/readelf.c:11031
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> 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... <repeats %u more times> ..."
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<PRId32> %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 %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12483
+#: src/readelf.c:12545
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\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', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12567
+#: src/readelf.c:12629
#, c-format
msgid ""
"\n"
@@ -5531,21 +5540,21 @@
"%#0<PRIx64>:\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 %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12618
+#: src/readelf.c:12680
#, c-format
msgid ""
"\n"
@@ -5553,45 +5562,45 @@
"offset %#0<PRIx64>:\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 @@
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 @@
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 @@
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 c3b5e2c..36c9513 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@
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 <claudiorodrigo@pereyradiaz."
"com.ar>\n"
@@ -58,7 +58,7 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
#: 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 @@
#: 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 @@
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 @@
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 @@
" 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 @@
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÁLIDA>"
-#: 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 @@
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 @@
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, c-format
msgid ""
"\n"
@@ -5033,7 +5038,7 @@
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [ Código]\n"
-#: src/readelf.c:5062
+#: src/readelf.c:5087
#, c-format
msgid ""
"\n"
@@ -5042,20 +5047,20 @@
"\n"
"Sección de abreviatura en compensación %<PRIu64>:\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: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, 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 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\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<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: 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<PRIu16>\n"
msgstr " %s: %<PRId64>\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<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: 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<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\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 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> 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#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5137,7 +5142,7 @@
" Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: "
"%6<PRId64>\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 @@
"\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<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5478
+#: src/readelf.c:5503
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\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<PRIx64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5499
+#: src/readelf.c:5524
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5510
+#: src/readelf.c:5535
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " establecer archivo a %<PRIu64>\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%<PRIx64>:\n"
"\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5687 src/readelf.c:9111
+#: src/readelf.c:5712 src/readelf.c:9136
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: 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<PRIx64>] 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%<PRIx64>:\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<PRIx64>] 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] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÁLIDOS>\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 " <INVALID DATA>\n"
msgstr " <DATOS INVÁLIDOS>\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 @@
"Sección de información de marco de llamada [%2zu] '%s' en compensación "
"%#<PRIx64>:\n"
-#: src/readelf.c:6641
+#: src/readelf.c:6666
#, c-format
msgid ""
"\n"
@@ -5308,65 +5313,65 @@
"\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: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:6880
+#: src/readelf.c:6905
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:6917
+#: src/readelf.c:6942
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:7002
+#: src/readelf.c:7027
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] 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 [%<PRIx64>] 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 [%<PRIx64>] 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 (%<PRId64>): %s"
msgstr "Archivo inválido"
-#: src/readelf.c:7368
+#: src/readelf.c:7393
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " establecer archivo a %<PRIu64>\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 @@
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\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 %<PRIu64>:\n"
@@ -5395,7 +5400,7 @@
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
" Tipo de firma: %#<PRIx64>, Tipo de compensación: %#<PRIx64>\n"
-#: src/readelf.c:7766
+#: src/readelf.c:7791
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5406,39 +5411,39 @@
" Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, "
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
-#: src/readelf.c:7776 src/readelf.c:7939
+#: src/readelf.c:7801 src/readelf.c:7964
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
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 [%<PRIx64>] in section '%s': %s"
msgstr ""
"no se ha podido obtener etiqueta de DIE en compensación%<PRIu64> en sección "
"'%s': %s"
-#: src/readelf.c: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 %<PRIu64>:\n"
@@ -5449,7 +5454,7 @@
" Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, "
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
-#: src/readelf.c:7983
+#: src/readelf.c:8008
#, fuzzy, c-format
msgid ""
"\n"
@@ -5459,18 +5464,18 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:8315
+#: src/readelf.c:8340
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "Forma %<PRIx64> 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 @@
"\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 " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] argumento %hhu \n"
msgstr[1] " [%*<PRIuFAST8>] argumento %hhu\n"
-#: src/readelf.c:8522
+#: src/readelf.c:8547
msgid ""
"\n"
"Directory table:"
@@ -5536,12 +5541,12 @@
"\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 @@
"\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 @@
"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 @@
"\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 @@
"\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=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, 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 %<PRId64>\n"
msgstr " línea de avance por la constante %d a %<PRId64>\n"
-#: src/readelf.c:8904
+#: src/readelf.c:8929
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:8915
+#: src/readelf.c:8940
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:8922
+#: src/readelf.c:8947
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\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 @@
#. 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 %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:"
msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:"
-#: src/readelf.c: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 " <INVALID DATA>\n"
+msgstr " <DATOS INVÁLIDOS>\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 " <INVALID DATA>\n"
msgstr " <DATOS INVÁLIDOS>\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%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:9939
+#: src/readelf.c:10001
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\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%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:9981
+#: src/readelf.c:10043
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:9989
+#: src/readelf.c:10051
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10014
+#: src/readelf.c:10076
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
-#: src/readelf.c:10021
+#: src/readelf.c:10083
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10033
+#: src/readelf.c:10095
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] 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<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, "
"nombre: %s\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10355
#, c-format
msgid ""
"\n"
@@ -5806,37 +5816,37 @@
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\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<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10438
+#: src/readelf.c:10500
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10452
+#: src/readelf.c:10514
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10461
+#: src/readelf.c:10523
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10515
+#: src/readelf.c:10577
#, c-format
msgid ""
"\n"
@@ -5845,7 +5855,7 @@
"\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 @@
"\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 @@
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:10694
+#: src/readelf.c:10756
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5890,12 +5900,12 @@
" Landing pad: %#<PRIx64>\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 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10823
+#: src/readelf.c:10885
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10841
+#: src/readelf.c:10903
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10848
+#: src/readelf.c:10910
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10855
+#: src/readelf.c:10917
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10862
+#: src/readelf.c:10924
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10869
+#: src/readelf.c:10931
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10883
+#: src/readelf.c:10945
#, fuzzy, c-format
msgid ""
"\n"
@@ -5943,7 +5953,7 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10908
+#: src/readelf.c:10970
#, fuzzy, c-format
msgid ""
"\n"
@@ -5952,7 +5962,7 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10937
+#: src/readelf.c:10999
#, fuzzy, c-format
msgid ""
"\n"
@@ -5961,7 +5971,7 @@
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10969
+#: src/readelf.c:11031
#, fuzzy, c-format
msgid ""
"\n"
@@ -5970,18 +5980,18 @@
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\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 @@
"\n"
"%*s... <repeats %u more times> ..."
-#: 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<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %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 @@
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12483
+#: src/readelf.c:12545
#, c-format
msgid ""
"\n"
@@ -6022,7 +6032,7 @@
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12530
+#: src/readelf.c:12592
#, fuzzy, c-format
msgid ""
"\n"
@@ -6031,12 +6041,12 @@
"\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 @@
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12567
+#: src/readelf.c:12629
#, fuzzy, c-format
msgid ""
"\n"
@@ -6057,7 +6067,7 @@
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12581
+#: src/readelf.c:12643
#, fuzzy, c-format
msgid ""
"\n"
@@ -6066,7 +6076,7 @@
"\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 @@
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12618
+#: src/readelf.c:12680
#, fuzzy, c-format
msgid ""
"\n"
@@ -6087,7 +6097,7 @@
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12667
+#: src/readelf.c:12729
#, c-format
msgid ""
"\n"
@@ -6096,7 +6106,7 @@
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12697
+#: src/readelf.c:12759
#, c-format
msgid ""
"\n"
@@ -6105,12 +6115,12 @@
"\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 @@
"\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 @@
"\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 @@
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 @@
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 @@
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 @@
"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 @@
"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 d1f05ca..3c22d37 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
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 <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -51,7 +51,7 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
#: 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 @@
#: 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 @@
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 @@
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 @@
" セクションからセグメントへのマッビング:\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 @@
msgid "<INVALID SECTION>"
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 @@
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 @@
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, c-format
msgid ""
"\n"
@@ -4756,7 +4760,7 @@
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
" [ コード]\n"
-#: src/readelf.c:5062
+#: src/readelf.c:5087
#, c-format
msgid ""
"\n"
@@ -4765,20 +4769,20 @@
"\n"
"オフセット %<PRIu64> の略語セクション:\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: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>、子: %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 @@
"\n"
"オフセット %3$#<PRIx64> の 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<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: 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<PRIu16>\n"
msgstr " %s: %<PRId64>\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<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: 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<PRIu64>\n"
msgstr " ファイルを %<PRIu64> に設定する\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 @@
"オフセット %3$#<PRIx64> の 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#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
" [%*zu] 開始: %0#*<PRIx64>、長さ: %5<PRIu64>、CU DIE オフセット: %6<PRId64>\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 @@
"\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<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5478
+#: src/readelf.c:5503
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\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<PRIx64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5499
+#: src/readelf.c:5524
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5510
+#: src/readelf.c:5535
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " ファイルを %<PRIu64> に設定する\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%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5687 src/readelf.c:9111
+#: src/readelf.c:5712 src/readelf.c:9136
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: 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<PRIx64>] 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%<PRIx64>:\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<PRIx64>] 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] <INVALID DATA>\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 " <INVALID DATA>\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 @@
"\n"
"オフセット %3$#<PRIx64> の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6641
+#: src/readelf.c:6666
#, c-format
msgid ""
"\n"
@@ -5029,65 +5033,65 @@
"\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: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:6880
+#: src/readelf.c:6905
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:6917
+#: src/readelf.c:6942
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ポインター: %#<PRIx64>\n"
-#: src/readelf.c:7002
+#: src/readelf.c:7027
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "属性コードを得られません: %s"
-#: src/readelf.c:7012
+#: src/readelf.c:7037
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "属性様式を得られません: %s"
-#: src/readelf.c:7034
+#: src/readelf.c:7059
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "属性値を得られません: %s"
-#: src/readelf.c:7364
+#: src/readelf.c:7389
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "不当なファイル"
-#: src/readelf.c:7368
+#: src/readelf.c:7393
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ファイルを %<PRIu64> に設定する\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 @@
"オフセット %3$#<PRIx64> の 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 %<PRIu64>:\n"
@@ -5115,7 +5119,7 @@
" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
-#: src/readelf.c:7766
+#: src/readelf.c:7791
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5126,39 +5130,39 @@
" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
-#: src/readelf.c:7776 src/readelf.c:7939
+#: src/readelf.c:7801 src/readelf.c:7964
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
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 [%<PRIx64>] in section '%s': %s"
msgstr ""
"セクション '%2$s' 中のオフセット %1$<PRIu64> の 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 %<PRIu64>:\n"
@@ -5169,7 +5173,7 @@
" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
-#: src/readelf.c:7983
+#: src/readelf.c:8008
#, fuzzy, c-format
msgid ""
"\n"
@@ -5179,18 +5183,18 @@
"\n"
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:8315
+#: src/readelf.c:8340
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "不明な様式 %<PRIx64>"
-#: 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 @@
"\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 " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:8522
+#: src/readelf.c:8547
msgid ""
"\n"
"Directory table:"
@@ -5254,12 +5258,12 @@
"\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 @@
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:8660
+#: src/readelf.c:8685
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5276,7 +5280,7 @@
"ファイル名テーブル:\n"
" Entry Dir 時刻 大きさ 名前"
-#: src/readelf.c:8699
+#: src/readelf.c:8724
#, fuzzy
msgid ""
"\n"
@@ -5285,7 +5289,7 @@
"\n"
"行 番号 文:"
-#: src/readelf.c:8703
+#: src/readelf.c:8728
msgid ""
"\n"
"Line number statements:"
@@ -5293,119 +5297,119 @@
"\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=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"新ファイルを定義する: dir=%u、mtime=%<PRIu64>、長さh=%<PRIu64>、名前=%s\n"
-#: src/readelf.c:8850
+#: src/readelf.c:8875
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> に設定する\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 %<PRId64>\n"
msgstr "行を定数 %d だけ進めて %<PRId64> にする\n"
-#: src/readelf.c:8904
+#: src/readelf.c:8929
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> に設定する\n"
-#: src/readelf.c:8915
+#: src/readelf.c:8940
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> に設定する\n"
-#: src/readelf.c:8922
+#: src/readelf.c:8947
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' を %<PRIuFAST8> に設定する\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 " ファイルを %<PRIu64> に設定する\n"
@@ -5413,98 +5417,103 @@
#. 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 %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個のパラメーターのある不明な命令コード:"
-#: 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 " <INVALID DATA>\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 " <INVALID DATA>\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%<PRIx64>\n"
msgstr " 所有者 大きさ\n"
-#: src/readelf.c:9939
+#: src/readelf.c:10001
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\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%<PRIx8>"
msgstr " 入口点アドレス : %#<PRIx64>\n"
-#: src/readelf.c:9981
+#: src/readelf.c:10043
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:9989
+#: src/readelf.c:10051
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10014
+#: src/readelf.c:10076
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個のパラメーターのある不明な命令コード:"
-#: src/readelf.c:10021
+#: src/readelf.c:10083
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10033
+#: src/readelf.c:10095
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %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<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5512,7 +5521,7 @@
# # "オフセット %3$#<PRIx64> の 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 @@
"オフセット %3$#<PRIx64> の 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<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10438
+#: src/readelf.c:10500
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10452
+#: src/readelf.c:10514
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10461
+#: src/readelf.c:10523
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10515
+#: src/readelf.c:10577
#, c-format
msgid ""
"\n"
@@ -5562,7 +5571,7 @@
"\n"
"呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10617
+#: src/readelf.c:10679
#, c-format
msgid ""
"\n"
@@ -5571,22 +5580,22 @@
"\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 @@
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:10694
+#: src/readelf.c:10756
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5607,12 +5616,12 @@
" 離着陸場: %#<PRIx64>\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 @@
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:10823
+#: src/readelf.c:10885
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10841
+#: src/readelf.c:10903
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10848
+#: src/readelf.c:10910
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10855
+#: src/readelf.c:10917
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10862
+#: src/readelf.c:10924
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10869
+#: src/readelf.c:10931
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10883
+#: src/readelf.c:10945
#, fuzzy, c-format
msgid ""
"\n"
@@ -5662,7 +5671,7 @@
"オフセット %3$#<PRIx64> の 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 @@
"オフセット %3$#<PRIx64> の 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 @@
"オフセット %3$#<PRIx64> の 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 @@
"\n"
"オフセット %#0<PRIx64> に不当なシンボルテーブル\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 @@
"\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<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %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 @@
"オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12483
+#: src/readelf.c:12545
#, c-format
msgid ""
"\n"
@@ -5744,7 +5753,7 @@
"\n"
"オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
-#: src/readelf.c:12530
+#: src/readelf.c:12592
#, fuzzy, c-format
msgid ""
"\n"
@@ -5753,12 +5762,12 @@
"\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 @@
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12567
+#: src/readelf.c:12629
#, fuzzy, c-format
msgid ""
"\n"
@@ -5779,7 +5788,7 @@
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12581
+#: src/readelf.c:12643
#, fuzzy, c-format
msgid ""
"\n"
@@ -5788,7 +5797,7 @@
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12613
+#: src/readelf.c:12675
#, fuzzy, c-format
msgid ""
"\n"
@@ -5798,7 +5807,7 @@
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12618
+#: src/readelf.c:12680
#, fuzzy, c-format
msgid ""
"\n"
@@ -5809,7 +5818,7 @@
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12667
+#: src/readelf.c:12729
#, c-format
msgid ""
"\n"
@@ -5818,7 +5827,7 @@
"\n"
"セクション [%lu] がありません"
-#: src/readelf.c:12697
+#: src/readelf.c:12759
#, c-format
msgid ""
"\n"
@@ -5827,12 +5836,12 @@
"\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 @@
"\n"
"アーカイブ '%s' にはシンボル索引がありません\n"
-#: src/readelf.c:12761
+#: src/readelf.c:12823
#, fuzzy, c-format
msgid ""
"\n"
@@ -5850,12 +5859,12 @@
"\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 @@
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 @@
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 @@
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 2206e84..2cdc58e 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 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 <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
@@ -60,7 +60,7 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
#: 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 @@
#: 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 @@
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 @@
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 @@
" 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 @@
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDŁOWY SEKCJA>"
-#: 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 @@
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 @@
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE>… %<PRIu64> bajtów…\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, c-format
msgid ""
"\n"
@@ -4989,7 +4994,7 @@
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
" [ Kod]\n"
-#: src/readelf.c:5062
+#: src/readelf.c:5087
#, c-format
msgid ""
"\n"
@@ -4998,20 +5003,20 @@
"\n"
"Sekcja skrótów pod offsetem %<PRIu64>:\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: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, 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 @@
"\n"
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\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<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\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<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\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<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\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<PRIu64>\n"
msgstr ""
" Rozmiar segmentu: %6<PRIu64>\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 @@
"\n"
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64> 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#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5100,7 +5105,7 @@
" [%*zu] początek: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: "
"%6<PRId64>\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 @@
"\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 @@
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5478
+#: src/readelf.c:5503
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\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<PRIx64>\n"
msgstr " Offset CU: %6<PRIx64>\n"
-#: src/readelf.c:5499
+#: src/readelf.c:5524
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5510
+#: src/readelf.c:5535
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5153,109 +5158,109 @@
" Rozmiar segmentu: %6<PRIu64>\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%<PRIx64>:\n"
"\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:5687 src/readelf.c:9111
+#: src/readelf.c:5712 src/readelf.c:9136
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Długość offsetu: %<PRIu8>\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<PRIx64>] 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%<PRIx64>:\n"
msgstr " Offset: 0x%<PRIx64>\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<PRIx64>] 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] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDŁOWE DANE>\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 " <INVALID DATA>\n"
msgstr " <NIEPRAWIDŁOWE DANE>\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 @@
"\n"
"Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:6641
+#: src/readelf.c:6666
#, c-format
msgid ""
"\n"
@@ -5273,65 +5278,65 @@
"\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: %#<PRIx64>)"
msgstr " (offset: %#<PRIx64>)"
-#: src/readelf.c:6880
+#: src/readelf.c:6905
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (kończący offset: %#<PRIx64>)"
-#: src/readelf.c:6917
+#: src/readelf.c:6942
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7002
+#: src/readelf.c:7027
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] 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 [%<PRIx64>] 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 [%<PRIx64>] 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 (%<PRId64>): %s"
msgstr "nieprawidłowy plik"
-#: src/readelf.c:7368
+#: src/readelf.c:7393
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ustawienie pliku na %<PRIu64>\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 @@
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\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 %<PRIu64>:\n"
@@ -5360,7 +5365,7 @@
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
" Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64>\n"
-#: src/readelf.c:7766
+#: src/readelf.c:7791
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5371,38 +5376,38 @@
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:7776 src/readelf.c:7939
+#: src/readelf.c:7801 src/readelf.c:7964
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
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 [%<PRIx64>] in section '%s': %s"
msgstr ""
"nie można uzyskać znacznika DIE pod offsetem %<PRIu64> 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 %<PRIu64>:\n"
@@ -5413,7 +5418,7 @@
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:7983
+#: src/readelf.c:8008
#, c-format
msgid ""
"\n"
@@ -5424,18 +5429,18 @@
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\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 @@
"\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 " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5494,7 +5499,7 @@
msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n"
-#: src/readelf.c:8522
+#: src/readelf.c:8547
msgid ""
"\n"
"Directory table:"
@@ -5502,12 +5507,12 @@
"\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 @@
"\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 @@
"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 @@
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:8703
+#: src/readelf.c:8728
msgid ""
"\n"
"Line number statements:"
@@ -5541,119 +5546,119 @@
"\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=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, 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 %<PRId64>\n"
msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
-#: src/readelf.c:8904
+#: src/readelf.c:8929
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:8915
+#: src/readelf.c:8940
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:8922
+#: src/readelf.c:8947
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s” na %<PRIuFAST8>\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 @@
#. 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 %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5669,96 +5674,101 @@
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> 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 " <INVALID DATA>\n"
+msgstr " <NIEPRAWIDŁOWE DANE>\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 " <INVALID DATA>\n"
msgstr " <NIEPRAWIDŁOWE DANE>\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%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:9939
+#: src/readelf.c:10001
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\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%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>\n"
-#: src/readelf.c:9981
+#: src/readelf.c:10043
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:9989
+#: src/readelf.c:10051
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10014
+#: src/readelf.c:10076
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:10021
+#: src/readelf.c:10083
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10033
+#: src/readelf.c:10095
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: 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<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10355
#, c-format
msgid ""
"\n"
@@ -5769,41 +5779,41 @@
"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\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<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10438
+#: src/readelf.c:10500
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10452
+#: src/readelf.c:10514
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10461
+#: src/readelf.c:10523
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10515
+#: src/readelf.c:10577
#, c-format
msgid ""
"\n"
@@ -5812,7 +5822,7 @@
"\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 @@
"\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 @@
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:10694
+#: src/readelf.c:10756
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5857,12 +5867,12 @@
" Lądowisko: %#<PRIx64>\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 @@
"\n"
"Sekcja GDB [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n"
-#: src/readelf.c:10823
+#: src/readelf.c:10885
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:10841
+#: src/readelf.c:10903
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:10848
+#: src/readelf.c:10910
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:10855
+#: src/readelf.c:10917
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:10862
+#: src/readelf.c:10924
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:10869
+#: src/readelf.c:10931
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:10883
+#: src/readelf.c:10945
#, c-format
msgid ""
"\n"
@@ -5910,7 +5920,7 @@
"\n"
" Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10908
+#: src/readelf.c:10970
#, c-format
msgid ""
"\n"
@@ -5919,7 +5929,7 @@
"\n"
" Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10937
+#: src/readelf.c:10999
#, c-format
msgid ""
"\n"
@@ -5928,7 +5938,7 @@
"\n"
" Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10969
+#: src/readelf.c:11031
#, c-format
msgid ""
"\n"
@@ -5937,18 +5947,18 @@
"\n"
" Tabela symboli pod offsetem %#<PRIx32> 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 @@
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: 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<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %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 @@
"Segment notatki [%2zu] „%s” o długości %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12483
+#: src/readelf.c:12545
#, c-format
msgid ""
"\n"
@@ -5990,7 +6000,7 @@
"\n"
"Segment notatki o długości %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12530
+#: src/readelf.c:12592
#, c-format
msgid ""
"\n"
@@ -5999,12 +6009,12 @@
"\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 @@
"Segment zrzutu szesnastkowego [%zu] „%s”, %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12567
+#: src/readelf.c:12629
#, c-format
msgid ""
"\n"
@@ -6025,7 +6035,7 @@
"Zrzut szesnastkowy sekcji [%zu] „%s”, %<PRIu64> bajtów (%zd "
"nieskompresowanych) pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12581
+#: src/readelf.c:12643
#, c-format
msgid ""
"\n"
@@ -6034,7 +6044,7 @@
"\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 @@
"\n"
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12618
+#: src/readelf.c:12680
#, c-format
msgid ""
"\n"
@@ -6054,7 +6064,7 @@
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12667
+#: src/readelf.c:12729
#, c-format
msgid ""
"\n"
@@ -6063,7 +6073,7 @@
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12697
+#: src/readelf.c:12759
#, c-format
msgid ""
"\n"
@@ -6072,12 +6082,12 @@
"\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 @@
"\n"
"Archiwum „%s” nie ma indeksu symboli\n"
-#: src/readelf.c:12761
+#: src/readelf.c:12823
#, c-format
msgid ""
"\n"
@@ -6095,12 +6105,12 @@
"\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 @@
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 @@
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 @@
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 @@
"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 @@
"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 ce3f60f..1f183a0 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@
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 <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
@@ -59,7 +59,7 @@
"гарантій, зокрема гарантій працездатності або придатності для певної мети.\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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
#: 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 @@
#: 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 @@
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 @@
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 @@
" Відображення розділів на сегмент:\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 @@
msgid "<INVALID SECTION>"
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 @@
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 @@
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <НЕВИКОРИСТОВУВАНІ ДАНІ> ... %<PRIu64> байтів ...\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, c-format
msgid ""
"\n"
@@ -5022,7 +5027,7 @@
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5062
+#: src/readelf.c:5087
#, c-format
msgid ""
"\n"
@@ -5031,20 +5036,20 @@
"\n"
"Розділ скорочень за зміщенням %<PRIu64>:\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: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщення: %<PRId64>, дочірній: %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 @@
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\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<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\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<PRIu16>\n"
msgstr " версія DWARF: %8<PRIu16>\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<PRIu64>\n"
msgstr " Розмір адреси: %8<PRIu64>\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<PRIu64>\n"
msgstr ""
" Розмір сегмента: %8<PRIu64>\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 @@
"\n"
"Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64> містить %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#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5131,7 +5136,7 @@
" [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, зміщення CU DIE: "
"%6<PRId64>\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 @@
"\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 @@
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5478
+#: src/readelf.c:5503
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " версія DWARF: %6<PRIuFAST16>\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<PRIx64>\n"
msgstr " зміщення CU: %6<PRIx64>\n"
-#: src/readelf.c:5499
+#: src/readelf.c:5524
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Розмір адреси: %6<PRIu64>\n"
-#: src/readelf.c:5510
+#: src/readelf.c:5535
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5184,17 +5189,17 @@
" Розмір сегмента: %6<PRIu64>\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%<PRIx64>:\n"
@@ -5203,42 +5208,42 @@
"Таблиця за зміщенням 0x%<PRIx64>:\n"
"\n"
-#: src/readelf.c:5687 src/readelf.c:9111
+#: src/readelf.c:5712 src/readelf.c:9136
#, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Записи зміщення: %8<PRIu64>\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<PRIx64>] base: "
msgstr " Основа CU [%6<PRIx64>]: "
-#: 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%<PRIx64>:\n"
msgstr " Зміщення, що починаються з 0x%<PRIx64>:\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 @@
" %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 @@
"\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 @@
"\n"
" Основа CU [%6<PRIx64>]: "
-#: 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] <INVALID DATA>\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 " <INVALID DATA>\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 @@
"\n"
"Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
-#: src/readelf.c:6641
+#: src/readelf.c:6666
#, c-format
msgid ""
"\n"
@@ -5312,65 +5317,65 @@
"\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: %#<PRIx64>)"
msgstr " (зміщення: %#<PRIx64>)"
-#: src/readelf.c:6880
+#: src/readelf.c:6905
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (зміщення від кінця: %#<PRIx64>)"
-#: src/readelf.c:6917
+#: src/readelf.c:6942
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7002
+#: src/readelf.c:7027
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "DIE [%<PRIx64>] не вдалося отримати код атрибута: %s"
-#: src/readelf.c:7012
+#: src/readelf.c:7037
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "DIE [%<PRIx64>] не вдалося отримати форму атрибута: %s"
-#: src/readelf.c:7034
+#: src/readelf.c:7059
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "DIE [%<PRIx64>] не вдалося отримати значення атрибута «%s» (%s): %s"
-#: src/readelf.c:7364
+#: src/readelf.c:7389
#, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "некоректний файл (%<PRId64>): %s"
-#: src/readelf.c:7368
+#: src/readelf.c:7393
#, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "немає srcfiles для CU [%<PRIx64>]"
-#: 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 @@
"Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64>:\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 %<PRIu64>:\n"
@@ -5399,7 +5404,7 @@
"%<PRIu8>, Розмір зміщення: %<PRIu8>\n"
" Підпис типу: %#<PRIx64>, Зміщення типу: %#<PRIx64> [%<PRIx64>]\n"
-#: src/readelf.c:7766
+#: src/readelf.c:7791
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5410,38 +5415,38 @@
" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
"Зміщення: %<PRIu8>\n"
-#: src/readelf.c:7776 src/readelf.c:7939
+#: src/readelf.c:7801 src/readelf.c:7964
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr " Тип модуля: %s (%<PRIu8>)"
-#: 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 [%<PRIx64>] in section '%s': %s"
msgstr ""
"не вдалося отримати мітку DIE за зміщенням [%<PRIu64>] у розділі «%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 %<PRIu64>:\n"
@@ -5452,7 +5457,7 @@
" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
"Зміщення: %<PRIu8>\n"
-#: src/readelf.c:7983
+#: src/readelf.c:8008
#, c-format
msgid ""
"\n"
@@ -5463,18 +5468,18 @@
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\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 @@
"\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 " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5535,7 +5540,7 @@
msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n"
-#: src/readelf.c:8522
+#: src/readelf.c:8547
msgid ""
"\n"
"Directory table:"
@@ -5543,12 +5548,12 @@
"\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 @@
"\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 @@
"\n"
"Оператори номерів рядків:"
-#: src/readelf.c:8703
+#: src/readelf.c:8728
msgid ""
"\n"
"Line number statements:"
@@ -5577,118 +5582,118 @@
"\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=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" визначення нового файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, назва="
"%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 %<PRId64>\n"
msgstr " просувати рядок на сталу %d до %<PRId64>\n"
-#: src/readelf.c:8904
+#: src/readelf.c:8929
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " встановити файл у %<PRIu64>\n"
-#: src/readelf.c:8915
+#: src/readelf.c:8940
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " встановити значення стовпчика %<PRIu64>\n"
-#: src/readelf.c:8922
+#: src/readelf.c:8947
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " встановити «%s» у %<PRIuFAST8>\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 @@
#. 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 %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5704,97 +5709,102 @@
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: 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 " <INVALID DATA>\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 " <INVALID DATA>\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%<PRIx64>\n"
msgstr " Зміщення: 0x%<PRIx64>\n"
-#: src/readelf.c:9939
+#: src/readelf.c:10001
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Версія: %<PRIu16>\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%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>"
-#: src/readelf.c:9981
+#: src/readelf.c:10043
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщення: %<PRIu8>\n"
-#: src/readelf.c:9989
+#: src/readelf.c:10051
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " зміщення .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10014
+#: src/readelf.c:10076
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " таблиця кодів операцій розширень, записів — %<PRIu8>:\n"
-#: src/readelf.c:10021
+#: src/readelf.c:10083
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10033
+#: src/readelf.c:10095
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: 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<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" [%5d] зміщення DIE: %6<PRId64>, зміщення CU DIE: %6<PRId64>, назва: %s\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10355
#, c-format
msgid ""
"\n"
@@ -5805,37 +5815,37 @@
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\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<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\n"
-#: src/readelf.c:10438
+#: src/readelf.c:10500
#, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Розмір зсуву: %8<PRIu8>\n"
-#: src/readelf.c:10452
+#: src/readelf.c:10514
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " версія DWARF: %8<PRIu16>\n"
-#: src/readelf.c:10461
+#: src/readelf.c:10523
#, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " Заповнення: %8<PRIx16>\n"
-#: src/readelf.c:10515
+#: src/readelf.c:10577
#, c-format
msgid ""
"\n"
@@ -5844,7 +5854,7 @@
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10617
+#: src/readelf.c:10679
#, c-format
msgid ""
"\n"
@@ -5853,22 +5863,22 @@
"\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 @@
"\n"
" Таблиця місця виклику:"
-#: src/readelf.c:10694
+#: src/readelf.c:10756
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5889,12 +5899,12 @@
" Місце застосування: %#<PRIx64>\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 @@
"\n"
"Розділ GDB [%2zu] «%s» за зміщенням %#<PRIx64> містить %<PRId64> байтів:\n"
-#: src/readelf.c:10823
+#: src/readelf.c:10885
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Версія: %<PRId32>\n"
-#: src/readelf.c:10841
+#: src/readelf.c:10903
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " зміщення CU: %#<PRIx32>\n"
-#: src/readelf.c:10848
+#: src/readelf.c:10910
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " зміщення TU: %#<PRIx32>\n"
-#: src/readelf.c:10855
+#: src/readelf.c:10917
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " зміщення адреси: %#<PRIx32>\n"
-#: src/readelf.c:10862
+#: src/readelf.c:10924
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " зміщення символу: %#<PRIx32>\n"
-#: src/readelf.c:10869
+#: src/readelf.c:10931
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " стале зміщення: %#<PRIx32>\n"
-#: src/readelf.c:10883
+#: src/readelf.c:10945
#, c-format
msgid ""
"\n"
@@ -5942,7 +5952,7 @@
"\n"
" Список CU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10908
+#: src/readelf.c:10970
#, c-format
msgid ""
"\n"
@@ -5951,7 +5961,7 @@
"\n"
" Список TU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10937
+#: src/readelf.c:10999
#, c-format
msgid ""
"\n"
@@ -5960,7 +5970,7 @@
"\n"
" Список адрес зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:10969
+#: src/readelf.c:11031
#, c-format
msgid ""
"\n"
@@ -5969,18 +5979,18 @@
"\n"
" Таблиця символів за зміщенням %#<PRIx32> містить %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 @@
"\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<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %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 @@
"Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12483
+#: src/readelf.c:12545
#, c-format
msgid ""
"\n"
@@ -6022,7 +6032,7 @@
"\n"
"Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12530
+#: src/readelf.c:12592
#, c-format
msgid ""
"\n"
@@ -6031,12 +6041,12 @@
"\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 @@
"\n"
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12567
+#: src/readelf.c:12629
#, c-format
msgid ""
"\n"
@@ -6056,7 +6066,7 @@
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd нестиснено) за "
"зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12581
+#: src/readelf.c:12643
#, c-format
msgid ""
"\n"
@@ -6065,7 +6075,7 @@
"\n"
"У розділі [%zu] «%s» не міститься рядків для створення дампу.\n"
-#: src/readelf.c:12613
+#: src/readelf.c:12675
#, c-format
msgid ""
"\n"
@@ -6074,7 +6084,7 @@
"\n"
"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12618
+#: src/readelf.c:12680
#, c-format
msgid ""
"\n"
@@ -6085,7 +6095,7 @@
"Рядок розділу [%zu] «%s» містить %<PRIu64> байти (%zd нестиснено) на "
"зміщенні %#0<PRIx64>:\n"
-#: src/readelf.c:12667
+#: src/readelf.c:12729
#, c-format
msgid ""
"\n"
@@ -6094,7 +6104,7 @@
"\n"
"розділу [%lu] не існує"
-#: src/readelf.c:12697
+#: src/readelf.c:12759
#, c-format
msgid ""
"\n"
@@ -6103,12 +6113,12 @@
"\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 @@
"\n"
"У архіві «%s» немає покажчика символів\n"
-#: src/readelf.c:12761
+#: src/readelf.c:12823
#, c-format
msgid ""
"\n"
@@ -6126,12 +6136,12 @@
"\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 @@
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 @@
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 @@
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 @@
"Дані 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 @@
"ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n"
"[МОДУЛЬ...]"
-#: src/unstrip.c:2552
+#: src/unstrip.c:2558
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
diff --git a/src/ChangeLog b/src/ChangeLog
index 0313d2a..7f923c5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,16 @@
+2020-10-27 Érico N. Rolim <erico.erc@gmail.com>
+
+ * unstrip.c (make_directories): Use strndup, not strndupa.
+
+2020-09-28 Mark Wielaard <mark@klomp.org>
+
+ * 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 <mark@klomp.org>
* readelf.c (print_cfa_program): Take ehdr as argument. Use it to
diff --git a/src/readelf.c b/src/readelf.c
index 64067a5..f6d13af 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -4993,17 +4993,19 @@
}
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 @@
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 @@
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 (" <INVALID DATA>\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 @@
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
diff --git a/src/unstrip.c b/src/unstrip.c
index a855038..0257d9c 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -311,12 +311,18 @@
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
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 5f2b144..57fc4c8 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,77 @@
+2020-10-31 Mark Wielaard <mark@klomp.org>
+
+ * dwfl-proc-attach.c (dlopen): New external function override.
+
+2020-10-31 Mark Wielaard <mark@klomp.org>
+
+ * test-wrapper.sh: Use =, not == for string compare.
+
+2020-10-29 Mark Wielaard <mark@klomp.org>
+
+ * 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-31 Frank Ch. Eigler <fche@redhat.com>
+
+ * run-debuginfod-find.sh: Modify for tweaked/new metrics.
+
+2020-10-30 Frank Ch. Eigler <fche@redhat.com>
+
+ PR26775
+ * run-debuginfod-find.sh: Modify test for restored
+ thread_work_total semantics for grooming.
+
+2020-10-29 Frank Ch. Eigler <fche@redhat.com>
+
+ PR26775
+ * run-debuginfod-find.sh: Modify test for different
+ thread_work_total semantics for grooming.
+
+2020-10-29 Frank Ch. Eigler <fche@redhat.com>
+
+ PR26810
+ * run-debuginfod-find.sh: Add tests for successful archive fetches across
+ renamed RPMs, even without grooming.
+
+2020-10-25 Mark Wielaard <mark@klomp.org>
+
+ * read_unaligned.c: New test.
+ * Makefile.am (check_PROGRAMS, TESTS): Add read_unaligned.
+ (read_unaligned_LDADD): New variable.
+
+2020-10-28 Tom Tromey <tom@tromey.com>
+
+ PR26773
+ * Makefile.am (check_PROGRAMS, TESTS): Add leb128.
+ (leb128_LDADD): New variable.
+ * leb128.c: New file.
+
+2020-10-19 Mark Wielaard <mark@klomp.org>
+
+ * addrcfi.c (print_register): Make ops_mem 3 elements.
+
+2020-10-19 Mark Wielaard <mark@klomp.org>
+
+ * testfile60.bz2: Removed.
+ * Makefile.am (EXTRA_DIST): Remove testfile60.bz2.
+ * run-allregs.sh: Remove tilegx testfile60 testcase.
+
+2020-10-20 Frank Ch. Eigler <fche@redhat.com>
+
+ 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 <mark@klomp.org>
+
+ * 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 <mark@klomp.org>
* run-readelf-frames.sh: New test.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4629ce6..84f6e88 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -63,7 +63,7 @@
all-dwarf-ranges unit-info next_cfi \
elfcopy addsections xlate_notes elfrdwrnop \
dwelf_elf_e_machine_string \
- getphdrnum
+ getphdrnum leb128 read_unaligned
asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
asm-tst6 asm-tst7 asm-tst8 asm-tst9
@@ -185,7 +185,8 @@
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 read_unaligned
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -204,6 +205,10 @@
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 +261,7 @@
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 \
@@ -362,7 +368,7 @@
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 \
@@ -689,6 +695,8 @@
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/addrcfi.c b/tests/addrcfi.c
index 589b851..2b7d7bd 100644
--- a/tests/addrcfi.c
+++ b/tests/addrcfi.c
@@ -92,7 +92,7 @@
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);
diff --git a/tests/dwfl-bug-fd-leak.c b/tests/dwfl-bug-fd-leak.c
index ee3a916..b091336 100644
--- a/tests/dwfl-bug-fd-leak.c
+++ b/tests/dwfl-bug-fd-leak.c
@@ -101,7 +101,14 @@
/* 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 102ba18..d02e9fc 100644
--- a/tests/dwfl-proc-attach.c
+++ b/tests/dwfl-proc-attach.c
@@ -97,7 +97,26 @@
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;
}
+/* 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__ */
diff --git a/tests/leb128.c b/tests/leb128.c
new file mode 100644
index 0000000..47b57c0
--- /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 <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <libdw.h>
+#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 ();
+}
diff --git a/tests/read_unaligned.c b/tests/read_unaligned.c
new file mode 100644
index 0000000..15e0c00
--- /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 <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <endian.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#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;
+}
diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh
index 1422bd6..87b16c9 100755
--- a/tests/run-allregs.sh
+++ b/tests/run-allregs.sh
@@ -2585,75 +2585,6 @@
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/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh
index 730bb0e..48dbc7d 100755
--- a/tests/run-debuginfod-find.sh
+++ b/tests/run-debuginfod-find.sh
@@ -95,6 +95,10 @@
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,13 +244,13 @@
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)
-wait_ready $PORT1 'scanned_total{source=".rpm archive"}' $rpms
+# 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_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 :)
@@ -255,7 +259,7 @@
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;
@@ -341,7 +345,7 @@
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
+# 1 groom cycle already took place at/soon-after startup, so -USR2 makes 2
wait_ready $PORT1 'thread_work_total{role="groom"}' 2
wait_ready $PORT1 'groom{statistic="file d/e"}' 3
@@ -353,6 +357,38 @@
########################################################################
+# 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
@@ -383,9 +419,9 @@
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 "" ""
@@ -440,6 +476,10 @@
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'
+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
diff --git a/tests/run-readelf-compressed-zstd.sh b/tests/run-readelf-compressed-zstd.sh
new file mode 100755
index 0000000..9620809
--- /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 <http://www.gnu.org/licenses/>.
+
+. $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
diff --git a/tests/test-wrapper.sh b/tests/test-wrapper.sh
index 09b4d49..c5d3f15 100755
--- a/tests/test-wrapper.sh
+++ b/tests/test-wrapper.sh
@@ -44,6 +44,7 @@
*.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 @@
LD_LIBRARY_PATH="${libdir}:${libdir}/elfutils$old_path"
fi
export LD_LIBRARY_PATH
+ is_shell_script="no"
;;
esac
@@ -62,4 +64,10 @@
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/testfile60.bz2 b/tests/testfile60.bz2
deleted file mode 100755
index 6a0cd7b..0000000
--- a/tests/testfile60.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/vdsosyms.c b/tests/vdsosyms.c
index 7bfa738..83ab034 100644
--- a/tests/vdsosyms.c
+++ b/tests/vdsosyms.c
@@ -103,6 +103,8 @@
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;
}