Snap for 6686656 from 197f13f7a0bdd4c7274032197329eac70d99bb61 to sdk-release
Change-Id: Iaa3c4d0736f22418c04338c503e9fd74e635e244
diff --git a/.gitignore b/.gitignore
index 43fb727..c979094 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@
/config/install-sh
/config/libdw.pc
/config/libelf.pc
+/config/libdebuginfod.pc
/config/missing
/config/test-driver
/config/ylwrap
@@ -43,6 +44,8 @@
/libcpu/*_gendis
/libcpu/*_lex.c
/libcpu/*_parse.[ch]
+/debuginfod/debuginfod
+/debuginfod/debuginfod-find
/libdw/known-dwarf.h
/po/*.gmo
/po/*.pot
@@ -76,8 +79,10 @@
/tests/*.trs
/tests/addrcfi
/tests/addrscopes
+/tests/addsections
/tests/aggregate_size
/tests/alldts
+/tests/all-dwarf-ranges
/tests/allfcts
/tests/allregs
/tests/arextract
@@ -92,6 +97,7 @@
/tests/asm-tst7
/tests/asm-tst8
/tests/asm-tst9
+/tests/attr-integrate-skel
/tests/backtrace
/tests/backtrace-child
/tests/backtrace-child-biarch
@@ -99,28 +105,35 @@
/tests/backtrace-dwarf
/tests/buildid
/tests/debugaltlink
+/tests/debuginfod_build_id_find
/tests/debuglink
/tests/deleted
+/tests/dwarfcfi
+/tests/dwarf_default_lower_bound
+/tests/dwarf-die-addr-die
/tests/dwarf-getmacros
/tests/dwarf-getstring
/tests/dwarf-ranges
+/tests/dwelf_elf_e_machine_string
/tests/dwelfgnucompressed
/tests/dwfl-addr-sect
/tests/dwfl-bug-addr-overflow
/tests/dwfl-bug-fd-leak
/tests/dwfl-bug-getmodules
/tests/dwfl-bug-report
+/tests/dwfllines
+/tests/dwflmodtest
/tests/dwfl-proc-attach
/tests/dwfl-report-elf-align
/tests/dwfl-report-segment-contiguous
-/tests/dwfllines
-/tests/dwflmodtest
/tests/dwflsyms
/tests/early-offscn
/tests/ecp
+/tests/elfcopy
/tests/elfgetchdr
/tests/elfgetzdata
/tests/elfputzdata
+/tests/elfrdwrnop
/tests/elfshphehdr
/tests/elfstrmerge
/tests/elfstrtab
@@ -132,8 +145,11 @@
/tests/get-aranges
/tests/get-files
/tests/get-lines
+/tests/getphdrnum
/tests/get-pubnames
/tests/getsrc_die
+/tests/get-units-invalid
+/tests/get-units-split
/tests/hash
/tests/line2addr
/tests/low_high_pc
@@ -141,6 +157,9 @@
/tests/newdata
/tests/newfile
/tests/newscn
+/tests/next_cfi
+/tests/next-files
+/tests/next-lines
/tests/peel_type
/tests/rdwrmmap
/tests/rerequest_tag
@@ -157,12 +176,14 @@
/tests/test-nlist
/tests/typeiter
/tests/typeiter2
+/tests/unit-info
/tests/update1
/tests/update2
/tests/update3
/tests/update4
/tests/varlocs
-/tests/vendorelf
/tests/vdsosyms
+/tests/vendorelf
+/tests/xlate_notes
/tests/zstrptr
/version.h
diff --git a/Android.bp b/Android.bp
index 375e36d..992122f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,68 @@
+// Copyright (C) 2013 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_defaults {
+ name: "elfutils_defaults",
+ cflags: [
+ "-DHAVE_CONFIG_H",
+ "-D_GNU_SOURCE",
+ "-std=gnu99",
+ "-Werror",
+ // to suppress the "pointer of type ‘void *’ used in arithmetic" warning
+ "-Wno-pointer-arith",
+ "-Wno-typedef-redefinition",
+ ],
+ header_libs: [
+ "elfutils_headers",
+ ],
+ export_header_lib_headers: ["elfutils_headers"],
+}
+
+cc_library {
+ name: "libelf",
+ host_supported: true,
+ vendor_available: true,
+ defaults: ["elfutils_defaults"],
+
+ srcs: ["libelf/*.c",],
+
+ static_libs: ["libz"],
+
+ export_include_dirs: ["libelf"],
+
+ target: {
+ darwin: {
+ enabled: false,
+ },
+ android: {
+ cflags: [
+ "-D_FILE_OFFSET_BITS=64",
+ "-include AndroidFixup.h",
+ ],
+ shared: {
+ enabled: false,
+ },
+ },
+ },
+
+ visibility: [
+ "//device/google/contexthub/util/nanoapp_postprocess",
+ "//external/igt-gpu-tools",
+ "//external/mesa3d",
+ ],
+}
+
cc_library_headers {
name: "elfutils_headers",
host_supported: true,
@@ -15,4 +80,3 @@
visibility: [":__subpackages__"],
}
-subdirs = ["libelf"]
diff --git a/ChangeLog b/ChangeLog
index 854568e..763fa00 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2020-06-11 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Set version to 0.180.
+ * NEWS: Add 0.180 section.
+ * .gitignore: Update with new generated file.
+
+2020-06-10 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac (MODVERSION): Remove.
+
2020-03-30 Mark Wielaard <mark@klomp.org>
* configure.ac: Set version to 0.179.
diff --git a/CleanSpec.mk b/CleanSpec.mk
deleted file mode 100644
index 20d1ae7..0000000
--- a/CleanSpec.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (C) 2007 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# If you don't need to do a full clean build but would like to touch
-# a file or delete some intermediate files, add a clean step to the end
-# of the list. These steps will only be run once, if they haven't been
-# run before.
-#
-# E.g.:
-# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
-# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
-#
-# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
-# files that are missing or have been moved.
-#
-# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
-# Use $(OUT_DIR) to refer to the "out" directory.
-#
-# If you need to re-do something that's already mentioned, just copy
-# the command and add it to the bottom of the list. E.g., if a change
-# that you made last week required touching a file and a change you
-# made today requires touching the same file, just copy the old
-# touch step and add it to the end of the list.
-#
-# ************************************************
-# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
-# ************************************************
-
-# For example:
-#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
-#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
-#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
-#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
-
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libdw_intermediates)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libdwfl_intermediates)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libelf_intermediates)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libebl_intermediates)
-$(call add-clean-step, rm -rf $(HOST_OUT)/obj/STATIC_LIBRARIES/libdw_intermediates)
-$(call add-clean-step, rm -rf $(HOST_OUT)/obj/STATIC_LIBRARIES/libdwfl_intermediates)
-$(call add-clean-step, rm -rf $(HOST_OUT)/obj/STATIC_LIBRARIES/libelf_intermediates)
-$(call add-clean-step, rm -rf $(HOST_OUT)/obj/STATIC_LIBRARIES/libebl_intermediates)
-
-# ************************************************
-# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
-# ************************************************
diff --git a/NEWS b/NEWS
index d26dcce..3d097c6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,17 @@
+Version 0.180
+
+elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.
+
+libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.
+
+libdw: Use correct CU to resolve file names in dwarf_decl_file.
+
+libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
+
+size: Also obey radix printing for bsd format.
+
+nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.
+
Version 0.179
debuginfod-client: When DEBUGINFOD_PROGRESS is set and the program doesn't
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 3f5f9bb..7d3578b 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,23 @@
+2020-06-10 Mark Wielard <mark@klomp.org>
+
+ * aarch64_init.c (aarch64_init): Remove ehlen, return eh.
+ * alpha_init.c (alpha_init): Likewise.
+ * arm_init.c (arm_init): Likewise.
+ * bpf_init.c (bpf_init): Likewise.
+ * csky_init.c (csky_init): Likewise.
+ * i386_init.c (i386_init): Likewise.
+ * ia64_init.c (ia64_init): Likewise.
+ * m68k_init.c (m68k_init): Likewise.
+ * ppc64_init.c (ppc64_init): Likewise.
+ * ppc_init.c (ppc_init): Likewise.
+ * riscv_init.c (riscv_init): Likewise.
+ * s390_init.c (s390_init): Likewise.
+ * sh_init.c (sh_init): Likewise.
+ * sparc_init.c (sparc_init): Likewise.
+ * tilegx_init.c (tilegx_init): Likewise.
+ * x86_64_init.c (x86_64_init): Likewise.
+ * libebl_CPU.h (init): Adjust EBLHOOK signature.
+
2019-07-05 Omar Sandoval <osandov@fb.com>
* Makefile.am: Replace libcpu_{i386,x86_64,bpf}.a with libcpu.a.
diff --git a/backends/aarch64_init.c b/backends/aarch64_init.c
index 95268ae..66bfae9 100644
--- a/backends/aarch64_init.c
+++ b/backends/aarch64_init.c
@@ -38,16 +38,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
aarch64_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
aarch64_init_reloc (eh);
HOOK (eh, register_info);
@@ -65,5 +60,5 @@
HOOK (eh, set_initial_registers_tid);
HOOK (eh, unwind);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/alpha_init.c b/backends/alpha_init.c
index f66f40c..c69aec6 100644
--- a/backends/alpha_init.c
+++ b/backends/alpha_init.c
@@ -39,16 +39,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
alpha_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
alpha_init_reloc (eh);
HOOK (eh, dynamic_tag_name);
@@ -64,5 +59,5 @@
HOOK (eh, auxv_info);
eh->sysvhash_entrysize = sizeof (Elf64_Xword);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/arm_init.c b/backends/arm_init.c
index af023f0..edd53b7 100644
--- a/backends/arm_init.c
+++ b/backends/arm_init.c
@@ -39,16 +39,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
arm_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
arm_init_reloc (eh);
HOOK (eh, segment_type_name);
@@ -72,5 +67,5 @@
/* Bit zero encodes whether an function address is THUMB or ARM. */
eh->func_addr_mask = ~(GElf_Addr)1;
- return MODVERSION;
+ return eh;
}
diff --git a/backends/bpf_init.c b/backends/bpf_init.c
index d407d37..f20f339 100644
--- a/backends/bpf_init.c
+++ b/backends/bpf_init.c
@@ -39,20 +39,16 @@
#include "common-reloc.c"
-const char *
+Ebl *
bpf_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh, size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
bpf_init_reloc (eh);
HOOK (eh, register_info);
HOOK (eh, disasm);
HOOK (eh, reloc_simple_type);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/csky_init.c b/backends/csky_init.c
index b34a03a..b2863ce 100644
--- a/backends/csky_init.c
+++ b/backends/csky_init.c
@@ -37,16 +37,11 @@
/* This defines the common reloc hooks based on csky_reloc.def. */
#include "common-reloc.c"
-const char *
+Ebl *
csky_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
csky_init_reloc (eh);
HOOK (eh, abi_cfi);
@@ -61,5 +56,5 @@
/* gcc/config/ #define DWARF_FRAME_REGISTERS. */
eh->frame_nregs = 38;
- return MODVERSION;
+ return eh;
}
diff --git a/backends/i386_init.c b/backends/i386_init.c
index 67428b5..3f6b9ed 100644
--- a/backends/i386_init.c
+++ b/backends/i386_init.c
@@ -38,16 +38,11 @@
/* This defines the common reloc hooks based on i386_reloc.def. */
#include "common-reloc.c"
-const char *
+Ebl *
i386_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
i386_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -66,5 +61,5 @@
HOOK (eh, set_initial_registers_tid);
HOOK (eh, unwind);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/ia64_init.c b/backends/ia64_init.c
index 2d1f43f..b46b35c 100644
--- a/backends/ia64_init.c
+++ b/backends/ia64_init.c
@@ -38,16 +38,11 @@
/* This defines the common reloc hooks based on ia64_reloc.def. */
#include "common-reloc.c"
-const char *
+Ebl *
ia64_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
ia64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -61,5 +56,5 @@
HOOK (eh, return_value_location);
HOOK (eh, check_reloc_target_type);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h
index ef2b922..0e507bd 100644
--- a/backends/libebl_CPU.h
+++ b/backends/libebl_CPU.h
@@ -37,8 +37,7 @@
#define EBLHOOK_2(a, b) a##b
/* Constructor. */
-extern const char *EBLHOOK(init) (Elf *elf, GElf_Half machine,
- Ebl *eh, size_t ehlen);
+extern Ebl *EBLHOOK(init) (Elf *elf, GElf_Half machine, Ebl *eh);
#include "ebl-hooks.h"
diff --git a/backends/m68k_init.c b/backends/m68k_init.c
index 05d544c..7b94f23 100644
--- a/backends/m68k_init.c
+++ b/backends/m68k_init.c
@@ -37,16 +37,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
m68k_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
m68k_init_reloc (eh);
HOOK (eh, gotpc_reloc_check);
@@ -59,5 +54,5 @@
eh->frame_nregs = 25;
HOOK (eh, set_initial_registers_tid);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
index c2e7043..f509aef 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -41,16 +41,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
ppc64_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
ppc64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -107,5 +102,5 @@
}
}
- return MODVERSION;
+ return eh;
}
diff --git a/backends/ppc_init.c b/backends/ppc_init.c
index eb286c2..ac440ab 100644
--- a/backends/ppc_init.c
+++ b/backends/ppc_init.c
@@ -39,16 +39,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
ppc_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
ppc_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -69,5 +64,5 @@
HOOK (eh, set_initial_registers_tid);
HOOK (eh, dwarf_to_regno);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/riscv_init.c b/backends/riscv_init.c
index 9be5c6f..551e7bb 100644
--- a/backends/riscv_init.c
+++ b/backends/riscv_init.c
@@ -43,16 +43,11 @@
extern __typeof (EBLHOOK (core_note)) riscv64_core_note attribute_hidden;
-const char *
+Ebl *
riscv_init (Elf *elf,
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
riscv_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -73,5 +68,5 @@
== EF_RISCV_FLOAT_ABI_DOUBLE))
eh->return_value_location = riscv_return_value_location_lp64d;
- return MODVERSION;
+ return eh;
}
diff --git a/backends/s390_init.c b/backends/s390_init.c
index b4f3e7f..fd79502 100644
--- a/backends/s390_init.c
+++ b/backends/s390_init.c
@@ -40,16 +40,11 @@
extern __typeof (s390_core_note) s390x_core_note;
-const char *
+Ebl *
s390_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
s390_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -75,5 +70,5 @@
if (eh->class == ELFCLASS64)
eh->sysvhash_entrysize = sizeof (Elf64_Xword);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/sh_init.c b/backends/sh_init.c
index 24f4d4a..05cf8b1 100644
--- a/backends/sh_init.c
+++ b/backends/sh_init.c
@@ -39,16 +39,11 @@
#include "common-reloc.c"
-const char *
+Ebl *
sh_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
sh_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -58,5 +53,5 @@
HOOK (eh, register_info);
HOOK (eh, return_value_location);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/sparc_init.c b/backends/sparc_init.c
index 6daff11..647a789 100644
--- a/backends/sparc_init.c
+++ b/backends/sparc_init.c
@@ -44,16 +44,11 @@
extern __typeof (EBLHOOK (core_note)) sparc64_core_note attribute_hidden;
-const char *
+Ebl *
sparc_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
sparc_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -79,5 +74,5 @@
eh->ra_offset = 8;
HOOK (eh, set_initial_registers_tid);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/tilegx_init.c b/backends/tilegx_init.c
index 66df931..0f79542 100644
--- a/backends/tilegx_init.c
+++ b/backends/tilegx_init.c
@@ -37,16 +37,11 @@
/* This defines the common reloc hooks based on tilegx_reloc.def. */
#include "common-reloc.c"
-const char *
+Ebl *
tilegx_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
tilegx_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -54,5 +49,5 @@
HOOK (eh, register_info);
HOOK (eh, core_note);
- return MODVERSION;
+ return eh;
}
diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c
index 8abafb7..44c1ad2 100644
--- a/backends/x86_64_init.c
+++ b/backends/x86_64_init.c
@@ -41,16 +41,11 @@
extern __typeof (EBLHOOK (core_note)) x32_core_note attribute_hidden;
-const char *
+Ebl *
x86_64_init (Elf *elf __attribute__ ((unused)),
GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
+ Ebl *eh)
{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
/* We handle it. */
x86_64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
@@ -70,5 +65,5 @@
HOOK (eh, set_initial_registers_tid);
HOOK (eh, unwind);
- return MODVERSION;
+ return eh;
}
diff --git a/config.h b/config.h
index 4bfca0b..5fd047b 100644
--- a/config.h
+++ b/config.h
@@ -7,6 +7,12 @@
/* Should ar and ranlib use -D behavior by default? */
#define DEFAULT_AR_DETERMINISTIC false
+/* Build debuginfod */
+/* #undef ENABLE_DEBUGINFOD */
+
+/* define if the compiler supports basic C++11 syntax */
+#define HAVE_CXX11 1
+
/* Define to 1 if you have the declaration of `mempcpy', and to 0 if you
don't. */
#define HAVE_DECL_MEMPCPY 1
@@ -24,7 +30,7 @@
#define HAVE_DECL_RAWMEMCHR 1
/* Defined if __attribute__((fallthrough)) is supported */
-/* #undef HAVE_FALLTHROUGH */
+/* #undef HAVE_FALLTHROUGH */
/* Defined if __attribute__((gcc_struct)) is supported */
/* #undef HAVE_GCC_STRUCT */
@@ -38,6 +44,9 @@
/* Define to 1 if you have the `process_vm_readv' function. */
#define HAVE_PROCESS_VM_READV 1
+/* Define to 1 if `stdatomic.h` is provided by the system, 0 otherwise. */
+#define HAVE_STDATOMIC_H 1
+
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@@ -65,12 +74,6 @@
/* Defined if __attribute__((visibility())) is supported */
#define HAVE_VISIBILITY 1
-/* $libdir subdirectory containing libebl modules. */
-#define LIBEBL_SUBDIR "elfutils"
-
-/* Identifier for modules in the build. */
-#define MODVERSION "Build for elfutils 173 x86_64-pc-linux-gnu"
-
/* Name of package */
#define PACKAGE "elfutils"
@@ -81,7 +84,7 @@
#define PACKAGE_NAME "elfutils"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "elfutils 0.173"
+#define PACKAGE_STRING "elfutils 0.180"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "elfutils"
@@ -90,14 +93,10 @@
#define PACKAGE_URL "http://elfutils.org/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.173"
+#define PACKAGE_VERSION "0.180"
/* The size of `long', as computed by sizeof. */
-#if __LP64__
#define SIZEOF_LONG 8
-#else
-#define SIZEOF_LONG 4
-#endif
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
@@ -118,7 +117,7 @@
#define USE_ZLIB 1
/* Version number of package */
-#define VERSION "0.173"
+#define VERSION "0.180"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
diff --git a/config/ChangeLog b/config/ChangeLog
index b8ac8bc..2ad9370 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,16 @@
+2020-06-11 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Update for 0.189.
+
+2020-04-21 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.sysconfig (DEBUGINFOD_PATHS): Add /var/lib/pulp.
+
+2020-03-30 Mark Wielaard <mark@klomp.org>
+
+ * upload-release.sh: chmod uploaded dir and files to make them
+ readable.
+
2020-03-30 Mark Wielaard <mark@klomp.org>
* elfutils.spec.in: Update for 0.179.
diff --git a/config/debuginfod.sysconfig b/config/debuginfod.sysconfig
index c56bcf3..4460387 100644
--- a/config/debuginfod.sysconfig
+++ b/config/debuginfod.sysconfig
@@ -3,7 +3,7 @@
#DEBUGINFOD_VERBOSE="-v"
# some common places to find trustworthy ELF/DWARF files and RPMs
-DEBUGINFOD_PATHS="-t43200 -F -R /usr/lib/debug /usr/bin /usr/libexec /usr/sbin /usr/lib /usr/lib64 /var/cache/yum /var/cache/dnf"
+DEBUGINFOD_PATHS="-t43200 -F -R /usr/lib/debug /usr/bin /usr/libexec /usr/sbin /usr/lib /usr/lib64 /var/cache/yum /var/cache/dnf /var/lib/pulp"
# prefer reliability/durability over performance
#DEBUGINFOD_PRAGMAS="-D 'pragma synchronous=full;'"
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index 9f61488..7388829 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -327,6 +327,14 @@
%systemd_postun_with_restart debuginfod.service
%changelog
+* Thu Jun 11 2020 Mark Wielaard <mark@klomp.org> 0.180-1
+- elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.
+- libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.
+- libdw: Use correct CU to resolve file names in dwarf_decl_file.
+- libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
+- size: Also obey radix printing for bsd format.
+- nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.
+
* Mon Mar 30 2020 Mark Wielaard <mark@klomp.org> 0.179-1
- debuginfod-client: When DEBUGINFOD_PROGRESS is set and the program
doesn't install its own debuginfod_progressfn_t show download
diff --git a/config/upload-release.sh b/config/upload-release.sh
index df5e3a0..b52642e 100755
--- a/config/upload-release.sh
+++ b/config/upload-release.sh
@@ -50,6 +50,8 @@
# Upload
scp -r $VERSION sourceware.org:/sourceware/ftp/pub/elfutils/
ssh sourceware.org "(cd /sourceware/ftp/pub/elfutils \
+ && chmod go+rx $VERSION \
+ && chmod go+r $VERSION/elfutils-$VERSION.tar.bz2* \
&& ln -sf $VERSION/elfutils-$VERSION.tar.bz2 elfutils-latest.tar.bz2 \
&& ln -sf $VERSION/elfutils-$VERSION.tar.bz2.sig elfutils-latest.tar.bz2.sig \
&& ls -lah elfutils-latest*)"
diff --git a/configure.ac b/configure.ac
index a39e800..74cc749 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.179],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
+AC_INIT([elfutils],[0.180],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
dnl Workaround for older autoconf < 2.64
m4_ifndef([AC_PACKAGE_URL],
@@ -41,7 +41,7 @@
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_FILES([config/Makefile])
-AC_COPYRIGHT([Copyright (C) 1996-2018 The elfutils developers.])
+AC_COPYRIGHT([Copyright (C) 1996-2020 The elfutils developers.])
AC_PREREQ(2.63) dnl Minimum Autoconf version required.
dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
@@ -627,12 +627,6 @@
# Round up to the next release API (x.y) version.
eu_version=$(( (eu_version + 999) / 1000 ))
-dnl Unique ID for this build.
-MODVERSION="Build for ${eu_version} ${ac_cv_build}"
-AC_SUBST([MODVERSION])
-AC_DEFINE_UNQUOTED(MODVERSION, "$MODVERSION")
-AH_TEMPLATE([MODVERSION], [Identifier for modules in the build.])
-
AC_CHECK_SIZEOF(long)
# On aarch64 before glibc 2.20 we would get the kernel user_pt_regs instead
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 51c7984..f4ab6d4 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2020-06-11 Mark Wielaaard <mark@klomp.org>
+
+ * printversion.c (print_version): Update copyright year.
+
2019-08-25 Srđan Milaković <sm108@rice.edu>
* dynamicsizehash_concurrent.{c,h}: New files.
diff --git a/lib/printversion.c b/lib/printversion.c
index 17832f4..28981d2 100644
--- a/lib/printversion.c
+++ b/lib/printversion.c
@@ -41,5 +41,5 @@
Copyright (C) %s The elfutils developers <%s>.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2018", PACKAGE_URL);
+"), "2020", PACKAGE_URL);
}
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index 7b0d3df..2c092ab 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,7 @@
+2020-04-25 Mark Wielaard <mark@klomp.org>
+
+ * asm_end.c (text_end): Call fflush instead of fclose.
+
2020-01-08 Mark Wielaard <mark@klomp.org>
* libasm.h: Don't include libebl.h. Define an opaque Ebl handle.
diff --git a/libasm/asm_end.c b/libasm/asm_end.c
index 99e9501..3b8582f 100644
--- a/libasm/asm_end.c
+++ b/libasm/asm_end.c
@@ -47,7 +47,7 @@
static int
text_end (AsmCtx_t *ctx __attribute__ ((unused)))
{
- if (fclose (ctx->out.file) != 0)
+ if (fflush (ctx->out.file) != 0)
{
__libasm_seterrno (ASM_E_IOERROR);
return -1;
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
index 7079651..a342b7f 100644
--- a/libcpu/ChangeLog
+++ b/libcpu/ChangeLog
@@ -1,3 +1,12 @@
+2020-05-09 Mark Wielaard <mark@klomp.org>
+
+ * i386_parse.y (new_bitfield): Call free newp on error.
+
+2020-04-16 Mark Wielaard <mark@klomp.org>
+
+ * i386_disasm.c (i386_disasm): Replace assert with goto invalid_op
+ for bad prefix.
+
2019-12-11 Omar Sandoval <osandov@fb.com>
* Makefile.am (i386_lex_CFLAGS): Add -Wno-implicit-fallthrough.
diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c
index 4422ffa..32df8cd 100644
--- a/libcpu/i386_disasm.c
+++ b/libcpu/i386_disasm.c
@@ -407,7 +407,8 @@
++curr;
- assert (last_prefix_bit != 0);
+ if (last_prefix_bit == 0)
+ goto invalid_op;
correct_prefix = last_prefix_bit;
}
@@ -445,8 +446,8 @@
the input data. */
goto do_ret;
- assert (correct_prefix == 0
- || (prefixes & correct_prefix) != 0);
+ if (correct_prefix != 0 && (prefixes & correct_prefix) == 0)
+ goto invalid_op;
prefixes ^= correct_prefix;
if (0)
@@ -473,7 +474,8 @@
if (data == end)
{
- assert (prefixes != 0);
+ if (prefixes == 0)
+ goto invalid_op;
goto print_prefix;
}
@@ -1125,6 +1127,7 @@
}
/* Invalid (or at least unhandled) opcode. */
+ invalid_op:
if (prefixes != 0)
goto print_prefix;
/* Make sure we get past the unrecognized opcode if we haven't yet. */
diff --git a/libcpu/i386_parse.y b/libcpu/i386_parse.y
index 910d545..90c7bd9 100644
--- a/libcpu/i386_parse.y
+++ b/libcpu/i386_parse.y
@@ -579,6 +579,7 @@
error (0, 0, "%d: duplicated definition of bitfield '%s'",
i386_lineno, name);
free (name);
+ free (newp);
return;
}
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 59f33f9..c75b095 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,24 @@
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * libdw_visit_scopes.c (walk_children): Don't recurse into imported
+ DW_TAG_compile_units.
+
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_decl_file.c (dwarf_decl_file): Use attr CU instead of DIE
+ CU to resolve file name.
+ * dwarf_ranges.c(dwarf_ranges): Document which CU we use when.
+ * libdw.h (dwarf_attr_integrate): Extend documentation.
+
+2020-04-25 Mark Wielaard <mark@klomp.org>
+
+ * libdw_alloc.c (__libdw_alloc_tail): Call Dwarf oom_handler()
+ when malloc fails.
+
+2020-04-17 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_begin_elf.c (check_section): Handle .gnu.debuglto_ prefix.
+
2019-10-28 Aaron Merey <amerey@redhat.com>
* Makefile.am (libdw_so_LDLIBS): Add -ldl for libdebuginfod.so dlopen.
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
index 8534308..474ed13 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -137,6 +137,10 @@
gnu_compressed = true;
break;
}
+ else if (scnlen > 14 /* .gnu.debuglto_ prefix. */
+ && strncmp (scnname, ".gnu.debuglto_", 14) == 0
+ && strcmp (&scnname[14], dwarf_scnnames[cnt]) == 0)
+ break;
}
if (cnt >= ndwarf_scnnames)
diff --git a/libdw/dwarf_decl_file.c b/libdw/dwarf_decl_file.c
index 5657132..d4aa0a1 100644
--- a/libdw/dwarf_decl_file.c
+++ b/libdw/dwarf_decl_file.c
@@ -55,7 +55,7 @@
}
/* Get the array of source files for the CU. */
- struct Dwarf_CU *cu = die->cu;
+ struct Dwarf_CU *cu = attr_mem.cu;
if (cu->lines == NULL)
{
Dwarf_Lines *lines;
diff --git a/libdw/dwarf_ranges.c b/libdw/dwarf_ranges.c
index f67d8a5..520f9ff 100644
--- a/libdw/dwarf_ranges.c
+++ b/libdw/dwarf_ranges.c
@@ -506,6 +506,11 @@
Dwarf_Attribute attr_mem;
Dwarf_Attribute *attr = INTUSE(dwarf_attr) (die, DW_AT_ranges,
&attr_mem);
+ /* Note that above we use dwarf_attr, not dwarf_attr_integrate.
+ The only case where the ranges can come from another DIE
+ attribute are the split CU case. In that case we also have a
+ different CU to check against. But that is already set up
+ above using __libdw_find_split_unit. */
if (attr == NULL
&& is_cudie (die)
&& die->cu->unit_type == DW_UT_split_compile)
diff --git a/libdw/known-dwarf.h b/libdw/known-dwarf.h
deleted file mode 100644
index 364d7ca..0000000
--- a/libdw/known-dwarf.h
+++ /dev/null
@@ -1,633 +0,0 @@
-/* Generated by config/known-dwarf.awk from libdw/dwarf.h contents. */
-
-#define DWARF_ALL_KNOWN_DW_ACCESS \
- DWARF_ONE_KNOWN_DW_ACCESS (private, DW_ACCESS_private) \
- DWARF_ONE_KNOWN_DW_ACCESS (protected, DW_ACCESS_protected) \
- DWARF_ONE_KNOWN_DW_ACCESS (public, DW_ACCESS_public) \
- /* End of DW_ACCESS_*. */
-
-#define DWARF_ALL_KNOWN_DW_AT \
- DWARF_ONE_KNOWN_DW_AT (GNU_all_call_sites, DW_AT_GNU_all_call_sites) \
- DWARF_ONE_KNOWN_DW_AT (GNU_all_source_call_sites, DW_AT_GNU_all_source_call_sites) \
- DWARF_ONE_KNOWN_DW_AT (GNU_all_tail_call_sites, DW_AT_GNU_all_tail_call_sites) \
- DWARF_ONE_KNOWN_DW_AT (GNU_call_site_data_value, DW_AT_GNU_call_site_data_value) \
- DWARF_ONE_KNOWN_DW_AT (GNU_call_site_target, DW_AT_GNU_call_site_target) \
- DWARF_ONE_KNOWN_DW_AT (GNU_call_site_target_clobbered, DW_AT_GNU_call_site_target_clobbered) \
- DWARF_ONE_KNOWN_DW_AT (GNU_call_site_value, DW_AT_GNU_call_site_value) \
- DWARF_ONE_KNOWN_DW_AT (GNU_deleted, DW_AT_GNU_deleted) \
- DWARF_ONE_KNOWN_DW_AT (GNU_exclusive_locks_required, DW_AT_GNU_exclusive_locks_required) \
- DWARF_ONE_KNOWN_DW_AT (GNU_guarded, DW_AT_GNU_guarded) \
- DWARF_ONE_KNOWN_DW_AT (GNU_guarded_by, DW_AT_GNU_guarded_by) \
- DWARF_ONE_KNOWN_DW_AT (GNU_locks_excluded, DW_AT_GNU_locks_excluded) \
- DWARF_ONE_KNOWN_DW_AT (GNU_macros, DW_AT_GNU_macros) \
- DWARF_ONE_KNOWN_DW_AT (GNU_odr_signature, DW_AT_GNU_odr_signature) \
- DWARF_ONE_KNOWN_DW_AT (GNU_pt_guarded, DW_AT_GNU_pt_guarded) \
- DWARF_ONE_KNOWN_DW_AT (GNU_pt_guarded_by, DW_AT_GNU_pt_guarded_by) \
- DWARF_ONE_KNOWN_DW_AT (GNU_shared_locks_required, DW_AT_GNU_shared_locks_required) \
- DWARF_ONE_KNOWN_DW_AT (GNU_tail_call, DW_AT_GNU_tail_call) \
- DWARF_ONE_KNOWN_DW_AT (GNU_template_name, DW_AT_GNU_template_name) \
- DWARF_ONE_KNOWN_DW_AT (GNU_vector, DW_AT_GNU_vector) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_abstract_name, DW_AT_MIPS_abstract_name) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_allocatable_dopetype, DW_AT_MIPS_allocatable_dopetype) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_assumed_shape_dopetype, DW_AT_MIPS_assumed_shape_dopetype) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_assumed_size, DW_AT_MIPS_assumed_size) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_clone_origin, DW_AT_MIPS_clone_origin) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_epilog_begin, DW_AT_MIPS_epilog_begin) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_fde, DW_AT_MIPS_fde) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_has_inlines, DW_AT_MIPS_has_inlines) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_linkage_name, DW_AT_MIPS_linkage_name) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_loop_begin, DW_AT_MIPS_loop_begin) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_loop_unroll_factor, DW_AT_MIPS_loop_unroll_factor) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_ptr_dopetype, DW_AT_MIPS_ptr_dopetype) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_software_pipeline_depth, DW_AT_MIPS_software_pipeline_depth) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_stride, DW_AT_MIPS_stride) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_stride_byte, DW_AT_MIPS_stride_byte) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_stride_elem, DW_AT_MIPS_stride_elem) \
- DWARF_ONE_KNOWN_DW_AT (MIPS_tail_loop_begin, DW_AT_MIPS_tail_loop_begin) \
- DWARF_ONE_KNOWN_DW_AT (abstract_origin, DW_AT_abstract_origin) \
- DWARF_ONE_KNOWN_DW_AT (accessibility, DW_AT_accessibility) \
- DWARF_ONE_KNOWN_DW_AT (address_class, DW_AT_address_class) \
- DWARF_ONE_KNOWN_DW_AT (allocated, DW_AT_allocated) \
- DWARF_ONE_KNOWN_DW_AT (artificial, DW_AT_artificial) \
- DWARF_ONE_KNOWN_DW_AT (associated, DW_AT_associated) \
- DWARF_ONE_KNOWN_DW_AT (base_types, DW_AT_base_types) \
- DWARF_ONE_KNOWN_DW_AT (binary_scale, DW_AT_binary_scale) \
- DWARF_ONE_KNOWN_DW_AT (bit_offset, DW_AT_bit_offset) \
- DWARF_ONE_KNOWN_DW_AT (bit_size, DW_AT_bit_size) \
- DWARF_ONE_KNOWN_DW_AT (bit_stride, DW_AT_bit_stride) \
- DWARF_ONE_KNOWN_DW_AT (body_begin, DW_AT_body_begin) \
- DWARF_ONE_KNOWN_DW_AT (body_end, DW_AT_body_end) \
- DWARF_ONE_KNOWN_DW_AT (byte_size, DW_AT_byte_size) \
- DWARF_ONE_KNOWN_DW_AT (byte_stride, DW_AT_byte_stride) \
- DWARF_ONE_KNOWN_DW_AT (call_column, DW_AT_call_column) \
- DWARF_ONE_KNOWN_DW_AT (call_file, DW_AT_call_file) \
- DWARF_ONE_KNOWN_DW_AT (call_line, DW_AT_call_line) \
- DWARF_ONE_KNOWN_DW_AT (calling_convention, DW_AT_calling_convention) \
- DWARF_ONE_KNOWN_DW_AT (common_reference, DW_AT_common_reference) \
- DWARF_ONE_KNOWN_DW_AT (comp_dir, DW_AT_comp_dir) \
- DWARF_ONE_KNOWN_DW_AT (const_expr, DW_AT_const_expr) \
- DWARF_ONE_KNOWN_DW_AT (const_value, DW_AT_const_value) \
- DWARF_ONE_KNOWN_DW_AT (containing_type, DW_AT_containing_type) \
- DWARF_ONE_KNOWN_DW_AT (count, DW_AT_count) \
- DWARF_ONE_KNOWN_DW_AT (data_bit_offset, DW_AT_data_bit_offset) \
- DWARF_ONE_KNOWN_DW_AT (data_location, DW_AT_data_location) \
- DWARF_ONE_KNOWN_DW_AT (data_member_location, DW_AT_data_member_location) \
- DWARF_ONE_KNOWN_DW_AT (decimal_scale, DW_AT_decimal_scale) \
- DWARF_ONE_KNOWN_DW_AT (decimal_sign, DW_AT_decimal_sign) \
- DWARF_ONE_KNOWN_DW_AT (decl_column, DW_AT_decl_column) \
- DWARF_ONE_KNOWN_DW_AT (decl_file, DW_AT_decl_file) \
- DWARF_ONE_KNOWN_DW_AT (decl_line, DW_AT_decl_line) \
- DWARF_ONE_KNOWN_DW_AT (declaration, DW_AT_declaration) \
- DWARF_ONE_KNOWN_DW_AT (default_value, DW_AT_default_value) \
- DWARF_ONE_KNOWN_DW_AT (description, DW_AT_description) \
- DWARF_ONE_KNOWN_DW_AT (digit_count, DW_AT_digit_count) \
- DWARF_ONE_KNOWN_DW_AT (discr, DW_AT_discr) \
- DWARF_ONE_KNOWN_DW_AT (discr_list, DW_AT_discr_list) \
- DWARF_ONE_KNOWN_DW_AT (discr_value, DW_AT_discr_value) \
- DWARF_ONE_KNOWN_DW_AT (element_list, DW_AT_element_list) \
- DWARF_ONE_KNOWN_DW_AT (elemental, DW_AT_elemental) \
- DWARF_ONE_KNOWN_DW_AT (encoding, DW_AT_encoding) \
- DWARF_ONE_KNOWN_DW_AT (endianity, DW_AT_endianity) \
- DWARF_ONE_KNOWN_DW_AT (entry_pc, DW_AT_entry_pc) \
- DWARF_ONE_KNOWN_DW_AT (enum_class, DW_AT_enum_class) \
- DWARF_ONE_KNOWN_DW_AT (explicit, DW_AT_explicit) \
- DWARF_ONE_KNOWN_DW_AT (extension, DW_AT_extension) \
- DWARF_ONE_KNOWN_DW_AT (external, DW_AT_external) \
- DWARF_ONE_KNOWN_DW_AT (frame_base, DW_AT_frame_base) \
- DWARF_ONE_KNOWN_DW_AT (friend, DW_AT_friend) \
- DWARF_ONE_KNOWN_DW_AT (high_pc, DW_AT_high_pc) \
- DWARF_ONE_KNOWN_DW_AT (identifier_case, DW_AT_identifier_case) \
- DWARF_ONE_KNOWN_DW_AT (import, DW_AT_import) \
- DWARF_ONE_KNOWN_DW_AT (inline, DW_AT_inline) \
- DWARF_ONE_KNOWN_DW_AT (is_optional, DW_AT_is_optional) \
- DWARF_ONE_KNOWN_DW_AT (language, DW_AT_language) \
- DWARF_ONE_KNOWN_DW_AT (linkage_name, DW_AT_linkage_name) \
- DWARF_ONE_KNOWN_DW_AT (location, DW_AT_location) \
- DWARF_ONE_KNOWN_DW_AT (low_pc, DW_AT_low_pc) \
- DWARF_ONE_KNOWN_DW_AT (lower_bound, DW_AT_lower_bound) \
- DWARF_ONE_KNOWN_DW_AT (mac_info, DW_AT_mac_info) \
- DWARF_ONE_KNOWN_DW_AT (macro_info, DW_AT_macro_info) \
- DWARF_ONE_KNOWN_DW_AT (main_subprogram, DW_AT_main_subprogram) \
- DWARF_ONE_KNOWN_DW_AT (member, DW_AT_member) \
- DWARF_ONE_KNOWN_DW_AT (mutable, DW_AT_mutable) \
- DWARF_ONE_KNOWN_DW_AT (name, DW_AT_name) \
- DWARF_ONE_KNOWN_DW_AT (namelist_item, DW_AT_namelist_item) \
- DWARF_ONE_KNOWN_DW_AT (noreturn, DW_AT_noreturn) \
- DWARF_ONE_KNOWN_DW_AT (object_pointer, DW_AT_object_pointer) \
- DWARF_ONE_KNOWN_DW_AT (ordering, DW_AT_ordering) \
- DWARF_ONE_KNOWN_DW_AT (picture_string, DW_AT_picture_string) \
- DWARF_ONE_KNOWN_DW_AT (priority, DW_AT_priority) \
- DWARF_ONE_KNOWN_DW_AT (producer, DW_AT_producer) \
- DWARF_ONE_KNOWN_DW_AT (prototyped, DW_AT_prototyped) \
- DWARF_ONE_KNOWN_DW_AT (pure, DW_AT_pure) \
- DWARF_ONE_KNOWN_DW_AT (ranges, DW_AT_ranges) \
- DWARF_ONE_KNOWN_DW_AT (recursive, DW_AT_recursive) \
- DWARF_ONE_KNOWN_DW_AT (return_addr, DW_AT_return_addr) \
- DWARF_ONE_KNOWN_DW_AT (segment, DW_AT_segment) \
- DWARF_ONE_KNOWN_DW_AT (sf_names, DW_AT_sf_names) \
- DWARF_ONE_KNOWN_DW_AT (sibling, DW_AT_sibling) \
- DWARF_ONE_KNOWN_DW_AT (signature, DW_AT_signature) \
- DWARF_ONE_KNOWN_DW_AT (small, DW_AT_small) \
- DWARF_ONE_KNOWN_DW_AT (specification, DW_AT_specification) \
- DWARF_ONE_KNOWN_DW_AT (src_coords, DW_AT_src_coords) \
- DWARF_ONE_KNOWN_DW_AT (src_info, DW_AT_src_info) \
- DWARF_ONE_KNOWN_DW_AT (start_scope, DW_AT_start_scope) \
- DWARF_ONE_KNOWN_DW_AT (static_link, DW_AT_static_link) \
- DWARF_ONE_KNOWN_DW_AT (stmt_list, DW_AT_stmt_list) \
- DWARF_ONE_KNOWN_DW_AT (string_length, DW_AT_string_length) \
- DWARF_ONE_KNOWN_DW_AT (subscr_data, DW_AT_subscr_data) \
- DWARF_ONE_KNOWN_DW_AT (threads_scaled, DW_AT_threads_scaled) \
- DWARF_ONE_KNOWN_DW_AT (trampoline, DW_AT_trampoline) \
- DWARF_ONE_KNOWN_DW_AT (type, DW_AT_type) \
- DWARF_ONE_KNOWN_DW_AT (upper_bound, DW_AT_upper_bound) \
- DWARF_ONE_KNOWN_DW_AT (use_UTF8, DW_AT_use_UTF8) \
- DWARF_ONE_KNOWN_DW_AT (use_location, DW_AT_use_location) \
- DWARF_ONE_KNOWN_DW_AT (variable_parameter, DW_AT_variable_parameter) \
- DWARF_ONE_KNOWN_DW_AT (virtuality, DW_AT_virtuality) \
- DWARF_ONE_KNOWN_DW_AT (visibility, DW_AT_visibility) \
- DWARF_ONE_KNOWN_DW_AT (vtable_elem_location, DW_AT_vtable_elem_location) \
- /* End of DW_AT_*. */
-
-#define DWARF_ALL_KNOWN_DW_ATE \
- DWARF_ONE_KNOWN_DW_ATE (UTF, DW_ATE_UTF) \
- DWARF_ONE_KNOWN_DW_ATE (address, DW_ATE_address) \
- DWARF_ONE_KNOWN_DW_ATE (boolean, DW_ATE_boolean) \
- DWARF_ONE_KNOWN_DW_ATE (complex_float, DW_ATE_complex_float) \
- DWARF_ONE_KNOWN_DW_ATE (decimal_float, DW_ATE_decimal_float) \
- DWARF_ONE_KNOWN_DW_ATE (edited, DW_ATE_edited) \
- DWARF_ONE_KNOWN_DW_ATE (float, DW_ATE_float) \
- DWARF_ONE_KNOWN_DW_ATE (imaginary_float, DW_ATE_imaginary_float) \
- DWARF_ONE_KNOWN_DW_ATE (numeric_string, DW_ATE_numeric_string) \
- DWARF_ONE_KNOWN_DW_ATE (packed_decimal, DW_ATE_packed_decimal) \
- DWARF_ONE_KNOWN_DW_ATE (signed, DW_ATE_signed) \
- DWARF_ONE_KNOWN_DW_ATE (signed_char, DW_ATE_signed_char) \
- DWARF_ONE_KNOWN_DW_ATE (signed_fixed, DW_ATE_signed_fixed) \
- DWARF_ONE_KNOWN_DW_ATE (unsigned, DW_ATE_unsigned) \
- DWARF_ONE_KNOWN_DW_ATE (unsigned_char, DW_ATE_unsigned_char) \
- DWARF_ONE_KNOWN_DW_ATE (unsigned_fixed, DW_ATE_unsigned_fixed) \
- DWARF_ONE_KNOWN_DW_ATE (void, DW_ATE_void) \
- /* End of DW_ATE_*. */
-
-#define DWARF_ALL_KNOWN_DW_CC \
- DWARF_ONE_KNOWN_DW_CC (nocall, DW_CC_nocall) \
- DWARF_ONE_KNOWN_DW_CC (normal, DW_CC_normal) \
- DWARF_ONE_KNOWN_DW_CC (program, DW_CC_program) \
- /* End of DW_CC_*. */
-
-#define DWARF_ALL_KNOWN_DW_CFA \
- DWARF_ONE_KNOWN_DW_CFA (GNU_args_size, DW_CFA_GNU_args_size) \
- DWARF_ONE_KNOWN_DW_CFA (GNU_negative_offset_extended, DW_CFA_GNU_negative_offset_extended) \
- DWARF_ONE_KNOWN_DW_CFA (GNU_window_save, DW_CFA_GNU_window_save) \
- DWARF_ONE_KNOWN_DW_CFA (MIPS_advance_loc8, DW_CFA_MIPS_advance_loc8) \
- DWARF_ONE_KNOWN_DW_CFA (advance_loc, DW_CFA_advance_loc) \
- DWARF_ONE_KNOWN_DW_CFA (advance_loc1, DW_CFA_advance_loc1) \
- DWARF_ONE_KNOWN_DW_CFA (advance_loc2, DW_CFA_advance_loc2) \
- DWARF_ONE_KNOWN_DW_CFA (advance_loc4, DW_CFA_advance_loc4) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa, DW_CFA_def_cfa) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa_expression, DW_CFA_def_cfa_expression) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa_offset, DW_CFA_def_cfa_offset) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa_offset_sf, DW_CFA_def_cfa_offset_sf) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa_register, DW_CFA_def_cfa_register) \
- DWARF_ONE_KNOWN_DW_CFA (def_cfa_sf, DW_CFA_def_cfa_sf) \
- DWARF_ONE_KNOWN_DW_CFA (expression, DW_CFA_expression) \
- DWARF_ONE_KNOWN_DW_CFA (extended, DW_CFA_extended) \
- DWARF_ONE_KNOWN_DW_CFA (nop, DW_CFA_nop) \
- DWARF_ONE_KNOWN_DW_CFA (offset, DW_CFA_offset) \
- DWARF_ONE_KNOWN_DW_CFA (offset_extended, DW_CFA_offset_extended) \
- DWARF_ONE_KNOWN_DW_CFA (offset_extended_sf, DW_CFA_offset_extended_sf) \
- DWARF_ONE_KNOWN_DW_CFA (register, DW_CFA_register) \
- DWARF_ONE_KNOWN_DW_CFA (remember_state, DW_CFA_remember_state) \
- DWARF_ONE_KNOWN_DW_CFA (restore, DW_CFA_restore) \
- DWARF_ONE_KNOWN_DW_CFA (restore_extended, DW_CFA_restore_extended) \
- DWARF_ONE_KNOWN_DW_CFA (restore_state, DW_CFA_restore_state) \
- DWARF_ONE_KNOWN_DW_CFA (same_value, DW_CFA_same_value) \
- DWARF_ONE_KNOWN_DW_CFA (set_loc, DW_CFA_set_loc) \
- DWARF_ONE_KNOWN_DW_CFA (undefined, DW_CFA_undefined) \
- DWARF_ONE_KNOWN_DW_CFA (val_expression, DW_CFA_val_expression) \
- DWARF_ONE_KNOWN_DW_CFA (val_offset, DW_CFA_val_offset) \
- DWARF_ONE_KNOWN_DW_CFA (val_offset_sf, DW_CFA_val_offset_sf) \
- /* End of DW_CFA_*. */
-
-#define DWARF_ALL_KNOWN_DW_CHILDREN \
- DWARF_ONE_KNOWN_DW_CHILDREN (no, DW_CHILDREN_no) \
- DWARF_ONE_KNOWN_DW_CHILDREN (yes, DW_CHILDREN_yes) \
- /* End of DW_CHILDREN_*. */
-
-#define DWARF_ALL_KNOWN_DW_CIE_ID \
- DWARF_ONE_KNOWN_DW_CIE_ID (32, DW_CIE_ID_32) \
- DWARF_ONE_KNOWN_DW_CIE_ID (64, DW_CIE_ID_64) \
- /* End of DW_CIE_ID_*. */
-
-#define DWARF_ALL_KNOWN_DW_DS \
- DWARF_ONE_KNOWN_DW_DS (leading_overpunch, DW_DS_leading_overpunch) \
- DWARF_ONE_KNOWN_DW_DS (leading_separate, DW_DS_leading_separate) \
- DWARF_ONE_KNOWN_DW_DS (trailing_overpunch, DW_DS_trailing_overpunch) \
- DWARF_ONE_KNOWN_DW_DS (trailing_separate, DW_DS_trailing_separate) \
- DWARF_ONE_KNOWN_DW_DS (unsigned, DW_DS_unsigned) \
- /* End of DW_DS_*. */
-
-#define DWARF_ALL_KNOWN_DW_DSC \
- DWARF_ONE_KNOWN_DW_DSC (label, DW_DSC_label) \
- DWARF_ONE_KNOWN_DW_DSC (range, DW_DSC_range) \
- /* End of DW_DSC_*. */
-
-#define DWARF_ALL_KNOWN_DW_EH_PE \
- DWARF_ONE_KNOWN_DW_EH_PE (absptr, DW_EH_PE_absptr) \
- DWARF_ONE_KNOWN_DW_EH_PE (aligned, DW_EH_PE_aligned) \
- DWARF_ONE_KNOWN_DW_EH_PE (datarel, DW_EH_PE_datarel) \
- DWARF_ONE_KNOWN_DW_EH_PE (funcrel, DW_EH_PE_funcrel) \
- DWARF_ONE_KNOWN_DW_EH_PE (indirect, DW_EH_PE_indirect) \
- DWARF_ONE_KNOWN_DW_EH_PE (omit, DW_EH_PE_omit) \
- DWARF_ONE_KNOWN_DW_EH_PE (pcrel, DW_EH_PE_pcrel) \
- DWARF_ONE_KNOWN_DW_EH_PE (sdata2, DW_EH_PE_sdata2) \
- DWARF_ONE_KNOWN_DW_EH_PE (sdata4, DW_EH_PE_sdata4) \
- DWARF_ONE_KNOWN_DW_EH_PE (sdata8, DW_EH_PE_sdata8) \
- DWARF_ONE_KNOWN_DW_EH_PE (signed, DW_EH_PE_signed) \
- DWARF_ONE_KNOWN_DW_EH_PE (sleb128, DW_EH_PE_sleb128) \
- DWARF_ONE_KNOWN_DW_EH_PE (textrel, DW_EH_PE_textrel) \
- DWARF_ONE_KNOWN_DW_EH_PE (udata2, DW_EH_PE_udata2) \
- DWARF_ONE_KNOWN_DW_EH_PE (udata4, DW_EH_PE_udata4) \
- DWARF_ONE_KNOWN_DW_EH_PE (udata8, DW_EH_PE_udata8) \
- DWARF_ONE_KNOWN_DW_EH_PE (uleb128, DW_EH_PE_uleb128) \
- /* End of DW_EH_PE_*. */
-
-#define DWARF_ALL_KNOWN_DW_END \
- DWARF_ONE_KNOWN_DW_END (big, DW_END_big) \
- DWARF_ONE_KNOWN_DW_END (default, DW_END_default) \
- DWARF_ONE_KNOWN_DW_END (little, DW_END_little) \
- /* End of DW_END_*. */
-
-#define DWARF_ALL_KNOWN_DW_FORM \
- DWARF_ONE_KNOWN_DW_FORM (GNU_ref_alt, DW_FORM_GNU_ref_alt) \
- DWARF_ONE_KNOWN_DW_FORM (GNU_strp_alt, DW_FORM_GNU_strp_alt) \
- DWARF_ONE_KNOWN_DW_FORM (addr, DW_FORM_addr) \
- DWARF_ONE_KNOWN_DW_FORM (block, DW_FORM_block) \
- DWARF_ONE_KNOWN_DW_FORM (block1, DW_FORM_block1) \
- DWARF_ONE_KNOWN_DW_FORM (block2, DW_FORM_block2) \
- DWARF_ONE_KNOWN_DW_FORM (block4, DW_FORM_block4) \
- DWARF_ONE_KNOWN_DW_FORM (data1, DW_FORM_data1) \
- DWARF_ONE_KNOWN_DW_FORM (data2, DW_FORM_data2) \
- DWARF_ONE_KNOWN_DW_FORM (data4, DW_FORM_data4) \
- DWARF_ONE_KNOWN_DW_FORM (data8, DW_FORM_data8) \
- DWARF_ONE_KNOWN_DW_FORM (exprloc, DW_FORM_exprloc) \
- DWARF_ONE_KNOWN_DW_FORM (flag, DW_FORM_flag) \
- DWARF_ONE_KNOWN_DW_FORM (flag_present, DW_FORM_flag_present) \
- DWARF_ONE_KNOWN_DW_FORM (indirect, DW_FORM_indirect) \
- DWARF_ONE_KNOWN_DW_FORM (ref1, DW_FORM_ref1) \
- DWARF_ONE_KNOWN_DW_FORM (ref2, DW_FORM_ref2) \
- DWARF_ONE_KNOWN_DW_FORM (ref4, DW_FORM_ref4) \
- DWARF_ONE_KNOWN_DW_FORM (ref8, DW_FORM_ref8) \
- DWARF_ONE_KNOWN_DW_FORM (ref_addr, DW_FORM_ref_addr) \
- DWARF_ONE_KNOWN_DW_FORM (ref_sig8, DW_FORM_ref_sig8) \
- DWARF_ONE_KNOWN_DW_FORM (ref_udata, DW_FORM_ref_udata) \
- DWARF_ONE_KNOWN_DW_FORM (sdata, DW_FORM_sdata) \
- DWARF_ONE_KNOWN_DW_FORM (sec_offset, DW_FORM_sec_offset) \
- DWARF_ONE_KNOWN_DW_FORM (string, DW_FORM_string) \
- DWARF_ONE_KNOWN_DW_FORM (strp, DW_FORM_strp) \
- DWARF_ONE_KNOWN_DW_FORM (udata, DW_FORM_udata) \
- /* End of DW_FORM_*. */
-
-#define DWARF_ALL_KNOWN_DW_ID \
- DWARF_ONE_KNOWN_DW_ID (case_insensitive, DW_ID_case_insensitive) \
- DWARF_ONE_KNOWN_DW_ID (case_sensitive, DW_ID_case_sensitive) \
- DWARF_ONE_KNOWN_DW_ID (down_case, DW_ID_down_case) \
- DWARF_ONE_KNOWN_DW_ID (up_case, DW_ID_up_case) \
- /* End of DW_ID_*. */
-
-#define DWARF_ALL_KNOWN_DW_INL \
- DWARF_ONE_KNOWN_DW_INL (declared_inlined, DW_INL_declared_inlined) \
- DWARF_ONE_KNOWN_DW_INL (declared_not_inlined, DW_INL_declared_not_inlined) \
- DWARF_ONE_KNOWN_DW_INL (inlined, DW_INL_inlined) \
- DWARF_ONE_KNOWN_DW_INL (not_inlined, DW_INL_not_inlined) \
- /* End of DW_INL_*. */
-
-#define DWARF_ALL_KNOWN_DW_LANG \
- DWARF_ONE_KNOWN_DW_LANG (Ada83, DW_LANG_Ada83) \
- DWARF_ONE_KNOWN_DW_LANG (Ada95, DW_LANG_Ada95) \
- DWARF_ONE_KNOWN_DW_LANG (C, DW_LANG_C) \
- DWARF_ONE_KNOWN_DW_LANG (C11, DW_LANG_C11) \
- DWARF_ONE_KNOWN_DW_LANG (C89, DW_LANG_C89) \
- DWARF_ONE_KNOWN_DW_LANG (C99, DW_LANG_C99) \
- DWARF_ONE_KNOWN_DW_LANG (C_plus_plus, DW_LANG_C_plus_plus) \
- DWARF_ONE_KNOWN_DW_LANG (C_plus_plus_11, DW_LANG_C_plus_plus_11) \
- DWARF_ONE_KNOWN_DW_LANG (C_plus_plus_14, DW_LANG_C_plus_plus_14) \
- DWARF_ONE_KNOWN_DW_LANG (Cobol74, DW_LANG_Cobol74) \
- DWARF_ONE_KNOWN_DW_LANG (Cobol85, DW_LANG_Cobol85) \
- DWARF_ONE_KNOWN_DW_LANG (D, DW_LANG_D) \
- DWARF_ONE_KNOWN_DW_LANG (Fortran03, DW_LANG_Fortran03) \
- DWARF_ONE_KNOWN_DW_LANG (Fortran08, DW_LANG_Fortran08) \
- DWARF_ONE_KNOWN_DW_LANG (Fortran77, DW_LANG_Fortran77) \
- DWARF_ONE_KNOWN_DW_LANG (Fortran90, DW_LANG_Fortran90) \
- DWARF_ONE_KNOWN_DW_LANG (Fortran95, DW_LANG_Fortran95) \
- DWARF_ONE_KNOWN_DW_LANG (Go, DW_LANG_Go) \
- DWARF_ONE_KNOWN_DW_LANG (Haskell, DW_LANG_Haskell) \
- DWARF_ONE_KNOWN_DW_LANG (Java, DW_LANG_Java) \
- DWARF_ONE_KNOWN_DW_LANG (Mips_Assembler, DW_LANG_Mips_Assembler) \
- DWARF_ONE_KNOWN_DW_LANG (Modula2, DW_LANG_Modula2) \
- DWARF_ONE_KNOWN_DW_LANG (ObjC, DW_LANG_ObjC) \
- DWARF_ONE_KNOWN_DW_LANG (ObjC_plus_plus, DW_LANG_ObjC_plus_plus) \
- DWARF_ONE_KNOWN_DW_LANG (PL1, DW_LANG_PL1) \
- DWARF_ONE_KNOWN_DW_LANG (Pascal83, DW_LANG_Pascal83) \
- DWARF_ONE_KNOWN_DW_LANG (Python, DW_LANG_Python) \
- DWARF_ONE_KNOWN_DW_LANG (UPC, DW_LANG_UPC) \
- /* End of DW_LANG_*. */
-
-#define DWARF_ALL_KNOWN_DW_LNE \
- DWARF_ONE_KNOWN_DW_LNE (define_file, DW_LNE_define_file) \
- DWARF_ONE_KNOWN_DW_LNE (end_sequence, DW_LNE_end_sequence) \
- DWARF_ONE_KNOWN_DW_LNE (set_address, DW_LNE_set_address) \
- DWARF_ONE_KNOWN_DW_LNE (set_discriminator, DW_LNE_set_discriminator) \
- /* End of DW_LNE_*. */
-
-#define DWARF_ALL_KNOWN_DW_LNS \
- DWARF_ONE_KNOWN_DW_LNS (advance_line, DW_LNS_advance_line) \
- DWARF_ONE_KNOWN_DW_LNS (advance_pc, DW_LNS_advance_pc) \
- DWARF_ONE_KNOWN_DW_LNS (const_add_pc, DW_LNS_const_add_pc) \
- DWARF_ONE_KNOWN_DW_LNS (copy, DW_LNS_copy) \
- DWARF_ONE_KNOWN_DW_LNS (fixed_advance_pc, DW_LNS_fixed_advance_pc) \
- DWARF_ONE_KNOWN_DW_LNS (negate_stmt, DW_LNS_negate_stmt) \
- DWARF_ONE_KNOWN_DW_LNS (set_basic_block, DW_LNS_set_basic_block) \
- DWARF_ONE_KNOWN_DW_LNS (set_column, DW_LNS_set_column) \
- DWARF_ONE_KNOWN_DW_LNS (set_epilogue_begin, DW_LNS_set_epilogue_begin) \
- DWARF_ONE_KNOWN_DW_LNS (set_file, DW_LNS_set_file) \
- DWARF_ONE_KNOWN_DW_LNS (set_isa, DW_LNS_set_isa) \
- DWARF_ONE_KNOWN_DW_LNS (set_prologue_end, DW_LNS_set_prologue_end) \
- /* End of DW_LNS_*. */
-
-#define DWARF_ALL_KNOWN_DW_MACINFO \
- DWARF_ONE_KNOWN_DW_MACINFO (define, DW_MACINFO_define) \
- DWARF_ONE_KNOWN_DW_MACINFO (end_file, DW_MACINFO_end_file) \
- DWARF_ONE_KNOWN_DW_MACINFO (start_file, DW_MACINFO_start_file) \
- DWARF_ONE_KNOWN_DW_MACINFO (undef, DW_MACINFO_undef) \
- DWARF_ONE_KNOWN_DW_MACINFO (vendor_ext, DW_MACINFO_vendor_ext) \
- /* End of DW_MACINFO_*. */
-
-#define DWARF_ALL_KNOWN_DW_MACRO_GNU \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (define, DW_MACRO_GNU_define) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (define_indirect, DW_MACRO_GNU_define_indirect) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (end_file, DW_MACRO_GNU_end_file) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (start_file, DW_MACRO_GNU_start_file) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (transparent_include, DW_MACRO_GNU_transparent_include) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (undef, DW_MACRO_GNU_undef) \
- DWARF_ONE_KNOWN_DW_MACRO_GNU (undef_indirect, DW_MACRO_GNU_undef_indirect) \
- /* End of DW_MACRO_GNU_*. */
-
-#define DWARF_ALL_KNOWN_DW_OP \
- DWARF_ONE_KNOWN_DW_OP (GNU_const_type, DW_OP_GNU_const_type) \
- DWARF_ONE_KNOWN_DW_OP (GNU_convert, DW_OP_GNU_convert) \
- DWARF_ONE_KNOWN_DW_OP (GNU_deref_type, DW_OP_GNU_deref_type) \
- DWARF_ONE_KNOWN_DW_OP (GNU_encoded_addr, DW_OP_GNU_encoded_addr) \
- DWARF_ONE_KNOWN_DW_OP (GNU_entry_value, DW_OP_GNU_entry_value) \
- DWARF_ONE_KNOWN_DW_OP (GNU_implicit_pointer, DW_OP_GNU_implicit_pointer) \
- DWARF_ONE_KNOWN_DW_OP (GNU_parameter_ref, DW_OP_GNU_parameter_ref) \
- DWARF_ONE_KNOWN_DW_OP (GNU_push_tls_address, DW_OP_GNU_push_tls_address) \
- DWARF_ONE_KNOWN_DW_OP (GNU_regval_type, DW_OP_GNU_regval_type) \
- DWARF_ONE_KNOWN_DW_OP (GNU_reinterpret, DW_OP_GNU_reinterpret) \
- DWARF_ONE_KNOWN_DW_OP (GNU_uninit, DW_OP_GNU_uninit) \
- DWARF_ONE_KNOWN_DW_OP (abs, DW_OP_abs) \
- DWARF_ONE_KNOWN_DW_OP (addr, DW_OP_addr) \
- DWARF_ONE_KNOWN_DW_OP (and, DW_OP_and) \
- DWARF_ONE_KNOWN_DW_OP (bit_piece, DW_OP_bit_piece) \
- DWARF_ONE_KNOWN_DW_OP (bra, DW_OP_bra) \
- DWARF_ONE_KNOWN_DW_OP (breg0, DW_OP_breg0) \
- DWARF_ONE_KNOWN_DW_OP (breg1, DW_OP_breg1) \
- DWARF_ONE_KNOWN_DW_OP (breg10, DW_OP_breg10) \
- DWARF_ONE_KNOWN_DW_OP (breg11, DW_OP_breg11) \
- DWARF_ONE_KNOWN_DW_OP (breg12, DW_OP_breg12) \
- DWARF_ONE_KNOWN_DW_OP (breg13, DW_OP_breg13) \
- DWARF_ONE_KNOWN_DW_OP (breg14, DW_OP_breg14) \
- DWARF_ONE_KNOWN_DW_OP (breg15, DW_OP_breg15) \
- DWARF_ONE_KNOWN_DW_OP (breg16, DW_OP_breg16) \
- DWARF_ONE_KNOWN_DW_OP (breg17, DW_OP_breg17) \
- DWARF_ONE_KNOWN_DW_OP (breg18, DW_OP_breg18) \
- DWARF_ONE_KNOWN_DW_OP (breg19, DW_OP_breg19) \
- DWARF_ONE_KNOWN_DW_OP (breg2, DW_OP_breg2) \
- DWARF_ONE_KNOWN_DW_OP (breg20, DW_OP_breg20) \
- DWARF_ONE_KNOWN_DW_OP (breg21, DW_OP_breg21) \
- DWARF_ONE_KNOWN_DW_OP (breg22, DW_OP_breg22) \
- DWARF_ONE_KNOWN_DW_OP (breg23, DW_OP_breg23) \
- DWARF_ONE_KNOWN_DW_OP (breg24, DW_OP_breg24) \
- DWARF_ONE_KNOWN_DW_OP (breg25, DW_OP_breg25) \
- DWARF_ONE_KNOWN_DW_OP (breg26, DW_OP_breg26) \
- DWARF_ONE_KNOWN_DW_OP (breg27, DW_OP_breg27) \
- DWARF_ONE_KNOWN_DW_OP (breg28, DW_OP_breg28) \
- DWARF_ONE_KNOWN_DW_OP (breg29, DW_OP_breg29) \
- DWARF_ONE_KNOWN_DW_OP (breg3, DW_OP_breg3) \
- DWARF_ONE_KNOWN_DW_OP (breg30, DW_OP_breg30) \
- DWARF_ONE_KNOWN_DW_OP (breg31, DW_OP_breg31) \
- DWARF_ONE_KNOWN_DW_OP (breg4, DW_OP_breg4) \
- DWARF_ONE_KNOWN_DW_OP (breg5, DW_OP_breg5) \
- DWARF_ONE_KNOWN_DW_OP (breg6, DW_OP_breg6) \
- DWARF_ONE_KNOWN_DW_OP (breg7, DW_OP_breg7) \
- DWARF_ONE_KNOWN_DW_OP (breg8, DW_OP_breg8) \
- DWARF_ONE_KNOWN_DW_OP (breg9, DW_OP_breg9) \
- DWARF_ONE_KNOWN_DW_OP (bregx, DW_OP_bregx) \
- DWARF_ONE_KNOWN_DW_OP (call2, DW_OP_call2) \
- DWARF_ONE_KNOWN_DW_OP (call4, DW_OP_call4) \
- DWARF_ONE_KNOWN_DW_OP (call_frame_cfa, DW_OP_call_frame_cfa) \
- DWARF_ONE_KNOWN_DW_OP (call_ref, DW_OP_call_ref) \
- DWARF_ONE_KNOWN_DW_OP (const1s, DW_OP_const1s) \
- DWARF_ONE_KNOWN_DW_OP (const1u, DW_OP_const1u) \
- DWARF_ONE_KNOWN_DW_OP (const2s, DW_OP_const2s) \
- DWARF_ONE_KNOWN_DW_OP (const2u, DW_OP_const2u) \
- DWARF_ONE_KNOWN_DW_OP (const4s, DW_OP_const4s) \
- DWARF_ONE_KNOWN_DW_OP (const4u, DW_OP_const4u) \
- DWARF_ONE_KNOWN_DW_OP (const8s, DW_OP_const8s) \
- DWARF_ONE_KNOWN_DW_OP (const8u, DW_OP_const8u) \
- DWARF_ONE_KNOWN_DW_OP (consts, DW_OP_consts) \
- DWARF_ONE_KNOWN_DW_OP (constu, DW_OP_constu) \
- DWARF_ONE_KNOWN_DW_OP (deref, DW_OP_deref) \
- DWARF_ONE_KNOWN_DW_OP (deref_size, DW_OP_deref_size) \
- DWARF_ONE_KNOWN_DW_OP (div, DW_OP_div) \
- DWARF_ONE_KNOWN_DW_OP (drop, DW_OP_drop) \
- DWARF_ONE_KNOWN_DW_OP (dup, DW_OP_dup) \
- DWARF_ONE_KNOWN_DW_OP (eq, DW_OP_eq) \
- DWARF_ONE_KNOWN_DW_OP (fbreg, DW_OP_fbreg) \
- DWARF_ONE_KNOWN_DW_OP (form_tls_address, DW_OP_form_tls_address) \
- DWARF_ONE_KNOWN_DW_OP (ge, DW_OP_ge) \
- DWARF_ONE_KNOWN_DW_OP (gt, DW_OP_gt) \
- DWARF_ONE_KNOWN_DW_OP (implicit_value, DW_OP_implicit_value) \
- DWARF_ONE_KNOWN_DW_OP (le, DW_OP_le) \
- DWARF_ONE_KNOWN_DW_OP (lit0, DW_OP_lit0) \
- DWARF_ONE_KNOWN_DW_OP (lit1, DW_OP_lit1) \
- DWARF_ONE_KNOWN_DW_OP (lit10, DW_OP_lit10) \
- DWARF_ONE_KNOWN_DW_OP (lit11, DW_OP_lit11) \
- DWARF_ONE_KNOWN_DW_OP (lit12, DW_OP_lit12) \
- DWARF_ONE_KNOWN_DW_OP (lit13, DW_OP_lit13) \
- DWARF_ONE_KNOWN_DW_OP (lit14, DW_OP_lit14) \
- DWARF_ONE_KNOWN_DW_OP (lit15, DW_OP_lit15) \
- DWARF_ONE_KNOWN_DW_OP (lit16, DW_OP_lit16) \
- DWARF_ONE_KNOWN_DW_OP (lit17, DW_OP_lit17) \
- DWARF_ONE_KNOWN_DW_OP (lit18, DW_OP_lit18) \
- DWARF_ONE_KNOWN_DW_OP (lit19, DW_OP_lit19) \
- DWARF_ONE_KNOWN_DW_OP (lit2, DW_OP_lit2) \
- DWARF_ONE_KNOWN_DW_OP (lit20, DW_OP_lit20) \
- DWARF_ONE_KNOWN_DW_OP (lit21, DW_OP_lit21) \
- DWARF_ONE_KNOWN_DW_OP (lit22, DW_OP_lit22) \
- DWARF_ONE_KNOWN_DW_OP (lit23, DW_OP_lit23) \
- DWARF_ONE_KNOWN_DW_OP (lit24, DW_OP_lit24) \
- DWARF_ONE_KNOWN_DW_OP (lit25, DW_OP_lit25) \
- DWARF_ONE_KNOWN_DW_OP (lit26, DW_OP_lit26) \
- DWARF_ONE_KNOWN_DW_OP (lit27, DW_OP_lit27) \
- DWARF_ONE_KNOWN_DW_OP (lit28, DW_OP_lit28) \
- DWARF_ONE_KNOWN_DW_OP (lit29, DW_OP_lit29) \
- DWARF_ONE_KNOWN_DW_OP (lit3, DW_OP_lit3) \
- DWARF_ONE_KNOWN_DW_OP (lit30, DW_OP_lit30) \
- DWARF_ONE_KNOWN_DW_OP (lit31, DW_OP_lit31) \
- DWARF_ONE_KNOWN_DW_OP (lit4, DW_OP_lit4) \
- DWARF_ONE_KNOWN_DW_OP (lit5, DW_OP_lit5) \
- DWARF_ONE_KNOWN_DW_OP (lit6, DW_OP_lit6) \
- DWARF_ONE_KNOWN_DW_OP (lit7, DW_OP_lit7) \
- DWARF_ONE_KNOWN_DW_OP (lit8, DW_OP_lit8) \
- DWARF_ONE_KNOWN_DW_OP (lit9, DW_OP_lit9) \
- DWARF_ONE_KNOWN_DW_OP (lt, DW_OP_lt) \
- DWARF_ONE_KNOWN_DW_OP (minus, DW_OP_minus) \
- DWARF_ONE_KNOWN_DW_OP (mod, DW_OP_mod) \
- DWARF_ONE_KNOWN_DW_OP (mul, DW_OP_mul) \
- DWARF_ONE_KNOWN_DW_OP (ne, DW_OP_ne) \
- DWARF_ONE_KNOWN_DW_OP (neg, DW_OP_neg) \
- DWARF_ONE_KNOWN_DW_OP (nop, DW_OP_nop) \
- DWARF_ONE_KNOWN_DW_OP (not, DW_OP_not) \
- DWARF_ONE_KNOWN_DW_OP (or, DW_OP_or) \
- DWARF_ONE_KNOWN_DW_OP (over, DW_OP_over) \
- DWARF_ONE_KNOWN_DW_OP (pick, DW_OP_pick) \
- DWARF_ONE_KNOWN_DW_OP (piece, DW_OP_piece) \
- DWARF_ONE_KNOWN_DW_OP (plus, DW_OP_plus) \
- DWARF_ONE_KNOWN_DW_OP (plus_uconst, DW_OP_plus_uconst) \
- DWARF_ONE_KNOWN_DW_OP (push_object_address, DW_OP_push_object_address) \
- DWARF_ONE_KNOWN_DW_OP (reg0, DW_OP_reg0) \
- DWARF_ONE_KNOWN_DW_OP (reg1, DW_OP_reg1) \
- DWARF_ONE_KNOWN_DW_OP (reg10, DW_OP_reg10) \
- DWARF_ONE_KNOWN_DW_OP (reg11, DW_OP_reg11) \
- DWARF_ONE_KNOWN_DW_OP (reg12, DW_OP_reg12) \
- DWARF_ONE_KNOWN_DW_OP (reg13, DW_OP_reg13) \
- DWARF_ONE_KNOWN_DW_OP (reg14, DW_OP_reg14) \
- DWARF_ONE_KNOWN_DW_OP (reg15, DW_OP_reg15) \
- DWARF_ONE_KNOWN_DW_OP (reg16, DW_OP_reg16) \
- DWARF_ONE_KNOWN_DW_OP (reg17, DW_OP_reg17) \
- DWARF_ONE_KNOWN_DW_OP (reg18, DW_OP_reg18) \
- DWARF_ONE_KNOWN_DW_OP (reg19, DW_OP_reg19) \
- DWARF_ONE_KNOWN_DW_OP (reg2, DW_OP_reg2) \
- DWARF_ONE_KNOWN_DW_OP (reg20, DW_OP_reg20) \
- DWARF_ONE_KNOWN_DW_OP (reg21, DW_OP_reg21) \
- DWARF_ONE_KNOWN_DW_OP (reg22, DW_OP_reg22) \
- DWARF_ONE_KNOWN_DW_OP (reg23, DW_OP_reg23) \
- DWARF_ONE_KNOWN_DW_OP (reg24, DW_OP_reg24) \
- DWARF_ONE_KNOWN_DW_OP (reg25, DW_OP_reg25) \
- DWARF_ONE_KNOWN_DW_OP (reg26, DW_OP_reg26) \
- DWARF_ONE_KNOWN_DW_OP (reg27, DW_OP_reg27) \
- DWARF_ONE_KNOWN_DW_OP (reg28, DW_OP_reg28) \
- DWARF_ONE_KNOWN_DW_OP (reg29, DW_OP_reg29) \
- DWARF_ONE_KNOWN_DW_OP (reg3, DW_OP_reg3) \
- DWARF_ONE_KNOWN_DW_OP (reg30, DW_OP_reg30) \
- DWARF_ONE_KNOWN_DW_OP (reg31, DW_OP_reg31) \
- DWARF_ONE_KNOWN_DW_OP (reg4, DW_OP_reg4) \
- DWARF_ONE_KNOWN_DW_OP (reg5, DW_OP_reg5) \
- DWARF_ONE_KNOWN_DW_OP (reg6, DW_OP_reg6) \
- DWARF_ONE_KNOWN_DW_OP (reg7, DW_OP_reg7) \
- DWARF_ONE_KNOWN_DW_OP (reg8, DW_OP_reg8) \
- DWARF_ONE_KNOWN_DW_OP (reg9, DW_OP_reg9) \
- DWARF_ONE_KNOWN_DW_OP (regx, DW_OP_regx) \
- DWARF_ONE_KNOWN_DW_OP (rot, DW_OP_rot) \
- DWARF_ONE_KNOWN_DW_OP (shl, DW_OP_shl) \
- DWARF_ONE_KNOWN_DW_OP (shr, DW_OP_shr) \
- DWARF_ONE_KNOWN_DW_OP (shra, DW_OP_shra) \
- DWARF_ONE_KNOWN_DW_OP (skip, DW_OP_skip) \
- DWARF_ONE_KNOWN_DW_OP (stack_value, DW_OP_stack_value) \
- DWARF_ONE_KNOWN_DW_OP (swap, DW_OP_swap) \
- DWARF_ONE_KNOWN_DW_OP (xderef, DW_OP_xderef) \
- DWARF_ONE_KNOWN_DW_OP (xderef_size, DW_OP_xderef_size) \
- DWARF_ONE_KNOWN_DW_OP (xor, DW_OP_xor) \
- /* End of DW_OP_*. */
-
-#define DWARF_ALL_KNOWN_DW_ORD \
- DWARF_ONE_KNOWN_DW_ORD (col_major, DW_ORD_col_major) \
- DWARF_ONE_KNOWN_DW_ORD (row_major, DW_ORD_row_major) \
- /* End of DW_ORD_*. */
-
-#define DWARF_ALL_KNOWN_DW_TAG \
- DWARF_ONE_KNOWN_DW_TAG (GNU_BINCL, DW_TAG_GNU_BINCL) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_EINCL, DW_TAG_GNU_EINCL) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_call_site, DW_TAG_GNU_call_site) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_call_site_parameter, DW_TAG_GNU_call_site_parameter) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_formal_parameter_pack, DW_TAG_GNU_formal_parameter_pack) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_template_parameter_pack, DW_TAG_GNU_template_parameter_pack) \
- DWARF_ONE_KNOWN_DW_TAG (GNU_template_template_param, DW_TAG_GNU_template_template_param) \
- DWARF_ONE_KNOWN_DW_TAG (MIPS_loop, DW_TAG_MIPS_loop) \
- DWARF_ONE_KNOWN_DW_TAG (access_declaration, DW_TAG_access_declaration) \
- DWARF_ONE_KNOWN_DW_TAG (array_type, DW_TAG_array_type) \
- DWARF_ONE_KNOWN_DW_TAG (atomic_type, DW_TAG_atomic_type) \
- DWARF_ONE_KNOWN_DW_TAG (base_type, DW_TAG_base_type) \
- DWARF_ONE_KNOWN_DW_TAG (catch_block, DW_TAG_catch_block) \
- DWARF_ONE_KNOWN_DW_TAG (class_template, DW_TAG_class_template) \
- DWARF_ONE_KNOWN_DW_TAG (class_type, DW_TAG_class_type) \
- DWARF_ONE_KNOWN_DW_TAG (common_block, DW_TAG_common_block) \
- DWARF_ONE_KNOWN_DW_TAG (common_inclusion, DW_TAG_common_inclusion) \
- DWARF_ONE_KNOWN_DW_TAG (compile_unit, DW_TAG_compile_unit) \
- DWARF_ONE_KNOWN_DW_TAG (condition, DW_TAG_condition) \
- DWARF_ONE_KNOWN_DW_TAG (const_type, DW_TAG_const_type) \
- DWARF_ONE_KNOWN_DW_TAG (constant, DW_TAG_constant) \
- DWARF_ONE_KNOWN_DW_TAG (dwarf_procedure, DW_TAG_dwarf_procedure) \
- DWARF_ONE_KNOWN_DW_TAG (entry_point, DW_TAG_entry_point) \
- DWARF_ONE_KNOWN_DW_TAG (enumeration_type, DW_TAG_enumeration_type) \
- DWARF_ONE_KNOWN_DW_TAG (enumerator, DW_TAG_enumerator) \
- DWARF_ONE_KNOWN_DW_TAG (file_type, DW_TAG_file_type) \
- DWARF_ONE_KNOWN_DW_TAG (formal_parameter, DW_TAG_formal_parameter) \
- DWARF_ONE_KNOWN_DW_TAG (format_label, DW_TAG_format_label) \
- DWARF_ONE_KNOWN_DW_TAG (friend, DW_TAG_friend) \
- DWARF_ONE_KNOWN_DW_TAG (function_template, DW_TAG_function_template) \
- DWARF_ONE_KNOWN_DW_TAG (imported_declaration, DW_TAG_imported_declaration) \
- DWARF_ONE_KNOWN_DW_TAG (imported_module, DW_TAG_imported_module) \
- DWARF_ONE_KNOWN_DW_TAG (imported_unit, DW_TAG_imported_unit) \
- DWARF_ONE_KNOWN_DW_TAG (inheritance, DW_TAG_inheritance) \
- DWARF_ONE_KNOWN_DW_TAG (inlined_subroutine, DW_TAG_inlined_subroutine) \
- DWARF_ONE_KNOWN_DW_TAG (interface_type, DW_TAG_interface_type) \
- DWARF_ONE_KNOWN_DW_TAG (label, DW_TAG_label) \
- DWARF_ONE_KNOWN_DW_TAG (lexical_block, DW_TAG_lexical_block) \
- DWARF_ONE_KNOWN_DW_TAG (member, DW_TAG_member) \
- DWARF_ONE_KNOWN_DW_TAG (module, DW_TAG_module) \
- DWARF_ONE_KNOWN_DW_TAG (namelist, DW_TAG_namelist) \
- DWARF_ONE_KNOWN_DW_TAG (namelist_item, DW_TAG_namelist_item) \
- DWARF_ONE_KNOWN_DW_TAG (namespace, DW_TAG_namespace) \
- DWARF_ONE_KNOWN_DW_TAG (packed_type, DW_TAG_packed_type) \
- DWARF_ONE_KNOWN_DW_TAG (partial_unit, DW_TAG_partial_unit) \
- DWARF_ONE_KNOWN_DW_TAG (pointer_type, DW_TAG_pointer_type) \
- DWARF_ONE_KNOWN_DW_TAG (ptr_to_member_type, DW_TAG_ptr_to_member_type) \
- DWARF_ONE_KNOWN_DW_TAG (reference_type, DW_TAG_reference_type) \
- DWARF_ONE_KNOWN_DW_TAG (restrict_type, DW_TAG_restrict_type) \
- DWARF_ONE_KNOWN_DW_TAG (rvalue_reference_type, DW_TAG_rvalue_reference_type) \
- DWARF_ONE_KNOWN_DW_TAG (set_type, DW_TAG_set_type) \
- DWARF_ONE_KNOWN_DW_TAG (shared_type, DW_TAG_shared_type) \
- DWARF_ONE_KNOWN_DW_TAG (string_type, DW_TAG_string_type) \
- DWARF_ONE_KNOWN_DW_TAG (structure_type, DW_TAG_structure_type) \
- DWARF_ONE_KNOWN_DW_TAG (subprogram, DW_TAG_subprogram) \
- DWARF_ONE_KNOWN_DW_TAG (subrange_type, DW_TAG_subrange_type) \
- DWARF_ONE_KNOWN_DW_TAG (subroutine_type, DW_TAG_subroutine_type) \
- DWARF_ONE_KNOWN_DW_TAG (template_alias, DW_TAG_template_alias) \
- DWARF_ONE_KNOWN_DW_TAG (template_type_parameter, DW_TAG_template_type_parameter) \
- DWARF_ONE_KNOWN_DW_TAG (template_value_parameter, DW_TAG_template_value_parameter) \
- DWARF_ONE_KNOWN_DW_TAG (thrown_type, DW_TAG_thrown_type) \
- DWARF_ONE_KNOWN_DW_TAG (try_block, DW_TAG_try_block) \
- DWARF_ONE_KNOWN_DW_TAG (type_unit, DW_TAG_type_unit) \
- DWARF_ONE_KNOWN_DW_TAG (typedef, DW_TAG_typedef) \
- DWARF_ONE_KNOWN_DW_TAG (union_type, DW_TAG_union_type) \
- DWARF_ONE_KNOWN_DW_TAG (unspecified_parameters, DW_TAG_unspecified_parameters) \
- DWARF_ONE_KNOWN_DW_TAG (unspecified_type, DW_TAG_unspecified_type) \
- DWARF_ONE_KNOWN_DW_TAG (variable, DW_TAG_variable) \
- DWARF_ONE_KNOWN_DW_TAG (variant, DW_TAG_variant) \
- DWARF_ONE_KNOWN_DW_TAG (variant_part, DW_TAG_variant_part) \
- DWARF_ONE_KNOWN_DW_TAG (volatile_type, DW_TAG_volatile_type) \
- DWARF_ONE_KNOWN_DW_TAG (with_stmt, DW_TAG_with_stmt) \
- /* End of DW_TAG_*. */
-
-#define DWARF_ALL_KNOWN_DW_VIRTUALITY \
- DWARF_ONE_KNOWN_DW_VIRTUALITY (none, DW_VIRTUALITY_none) \
- DWARF_ONE_KNOWN_DW_VIRTUALITY (pure_virtual, DW_VIRTUALITY_pure_virtual) \
- DWARF_ONE_KNOWN_DW_VIRTUALITY (virtual, DW_VIRTUALITY_virtual) \
- /* End of DW_VIRTUALITY_*. */
-
-#define DWARF_ALL_KNOWN_DW_VIS \
- DWARF_ONE_KNOWN_DW_VIS (exported, DW_VIS_exported) \
- DWARF_ONE_KNOWN_DW_VIS (local, DW_VIS_local) \
- DWARF_ONE_KNOWN_DW_VIS (qualified, DW_VIS_qualified) \
- /* End of DW_VIS_*. */
diff --git a/libdw/libdw.h b/libdw/libdw.h
index e20961b..1a4e15a 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -474,7 +474,14 @@
extern int dwarf_hasattr (Dwarf_Die *die, unsigned int search_name);
/* These are the same as dwarf_attr and dwarf_hasattr, respectively,
- but they resolve an indirect attribute through DW_AT_abstract_origin. */
+ but they resolve an indirect attribute through
+ DW_AT_abstract_origin, DW_AT_specification or, if the DIE is a
+ top-level split CU, the skeleton DIE. Note that the attribute
+ might come from a DIE in a different CU (possibly from a different
+ Dwarf file). In that case all attribute information needs to be
+ resolved through the CU associated with the returned
+ Dwarf_Attribute. The dwarf_form functions already do this
+ automatically. */
extern Dwarf_Attribute *dwarf_attr_integrate (Dwarf_Die *die,
unsigned int search_name,
Dwarf_Attribute *result)
diff --git a/libdw/libdw_alloc.c b/libdw/libdw_alloc.c
index e0281a3..b3e5334 100644
--- a/libdw/libdw_alloc.c
+++ b/libdw/libdw_alloc.c
@@ -87,6 +87,11 @@
if (result == NULL)
{
result = malloc (dbg->mem_default_size);
+ if (result == NULL)
+ {
+ pthread_rwlock_unlock (&dbg->mem_rwl);
+ dbg->oom_handler();
+ }
result->size = dbg->mem_default_size
- offsetof (struct libdw_memblock, mem);
result->remaining = result->size;
diff --git a/libdw/libdw_visit_scopes.c b/libdw/libdw_visit_scopes.c
index eb892e1..7dfa5f6 100644
--- a/libdw/libdw_visit_scopes.c
+++ b/libdw/libdw_visit_scopes.c
@@ -125,8 +125,12 @@
Dwarf_Attribute *attr = INTUSE(dwarf_attr) (&state->child.die,
DW_AT_import,
&attr_mem);
+ /* Some gcc -flto versions imported other top-level compile units,
+ skip those. */
if (INTUSE(dwarf_formref_die) (attr, &state->child.die) != NULL
- && INTUSE(dwarf_child) (&state->child.die, &state->child.die) == 0)
+ && INTUSE(dwarf_tag) (&state->child.die) != DW_TAG_compile_unit
+ && (INTUSE(dwarf_child) (&state->child.die, &state->child.die)
+ == 0))
{
/* Checks the given DIE hasn't been imported yet
to prevent cycles. */
diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog
index 5b48ed8..008bdeb 100644
--- a/libdwelf/ChangeLog
+++ b/libdwelf/ChangeLog
@@ -1,3 +1,8 @@
+2020-06-04 Mark Wielaard <mark@klomp.org>
+
+ * dwelf_elf_e_machine_string.c (dwelf_elf_e_machine_string):
+ Rename EM_ARC_COMPACT2 to EM_ARCV2.
+
2019-08-12 Mark Wielaard <mark@klomp.org>
* libdwelf.h (dwelf_elf_begin): Update documentation.
diff --git a/libdwelf/dwelf_elf_e_machine_string.c b/libdwelf/dwelf_elf_e_machine_string.c
index de07b01..86fa752 100644
--- a/libdwelf/dwelf_elf_e_machine_string.c
+++ b/libdwelf/dwelf_elf_e_machine_string.c
@@ -340,8 +340,8 @@
return "KIPO-KAIST Core-A 1st gen";
case EM_COREA_2ND:
return "KIPO-KAIST Core-A 2nd gen";
- case EM_ARC_COMPACT2:
- return "Synopsys ARCompact V2";
+ case EM_ARCV2:
+ return "Synopsys ARCv2 ISA";
case EM_OPEN8:
return "Open8 RISC";
case EM_RL78:
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 0b95490..4f1ec9d 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,29 @@
+2020-05-09 Mark Wielaard <mark@klomp.org>
+
+ * find-debuginfo.c (dwfl_standard_find_debuginfo): Return failure
+ when mod is NULL.
+
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * libdwfl/core-file.c (dwfl_core_file_report): Keep track of
+ new bool cleanup_user_core and cleanup dwfl->user_core in error
+ case.
+
+2020-04-30 Mark Wielaard <mark@klomp.org>
+
+ * find-debuginfo.c (dwfl_standard_find_debuginfo): When mod->dw
+ is already set then try fetching debugaltlink.
+
+2020-04-25 Mark Wielaard <mark@klomp.org>
+
+ * gzip.c (open_stream): Return DWFL_E_NOMEM instead of calling
+ zlib_fail.
+
+2020-04-16 Mark Wielaard <mark@klomp.org>
+
+ * find-debuginfo.c (dwfl_standard_find_debuginfo): Initialize bits
+ to NULL.
+
2020-01-24 Mark Wielaard <mark@klomp.org>
* linux-kernel-modules.c (find_kernel_elf): Check release isn't NULL.
diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c
index 01109f4..a0ccc9b 100644
--- a/libdwfl/core-file.c
+++ b/libdwfl/core-file.c
@@ -450,6 +450,7 @@
return -1;
}
+ bool cleanup_user_core = false;
if (dwfl->user_core != NULL)
free (dwfl->user_core->executable_for_core);
if (executable == NULL)
@@ -461,6 +462,7 @@
{
if (dwfl->user_core == NULL)
{
+ cleanup_user_core = true;
dwfl->user_core = calloc (1, sizeof (struct Dwfl_User_Core));
if (dwfl->user_core == NULL)
{
@@ -472,6 +474,11 @@
dwfl->user_core->executable_for_core = strdup (executable);
if (dwfl->user_core->executable_for_core == NULL)
{
+ if (cleanup_user_core)
+ {
+ free (dwfl->user_core);
+ dwfl->user_core = NULL;
+ }
__libdwfl_seterrno (DWFL_E_NOMEM);
return -1;
}
@@ -481,7 +488,15 @@
GElf_Phdr notes_phdr;
int ndx = dwfl_report_core_segments (dwfl, elf, phnum, ¬es_phdr);
if (unlikely (ndx <= 0))
- return ndx;
+ {
+ if (cleanup_user_core)
+ {
+ free (dwfl->user_core->executable_for_core);
+ free (dwfl->user_core);
+ dwfl->user_core = NULL;
+ }
+ return ndx;
+ }
/* Next, we should follow the chain from DT_DEBUG. */
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
index 4085764..eb68d54 100644
--- a/libdwfl/find-debuginfo.c
+++ b/libdwfl/find-debuginfo.c
@@ -355,9 +355,12 @@
GElf_Word debuglink_crc,
char **debuginfo_file_name)
{
+ if (mod == NULL)
+ return -1;
+
/* First try by build ID if we have one. If that succeeds or fails
other than just by finding nothing, that's all we do. */
- const unsigned char *bits;
+ const unsigned char *bits = NULL;
GElf_Addr vaddr;
int bits_len;
if ((bits_len = INTUSE(dwfl_module_build_id) (mod, &bits, &vaddr)) > 0)
@@ -398,8 +401,27 @@
free (canon);
}
- if (fd < 0 && bits_len > 0)
- fd = __libdwfl_debuginfod_find_debuginfo (mod->dwfl, bits, bits_len);
+ /* Still nothing? Try if we can use the debuginfod client.
+ But note that we might be looking for the alt file.
+ We use the same trick as dwfl_build_id_find_debuginfo.
+ If the debug file (dw) is already set, then we must be
+ looking for the altfile. But we cannot use the actual
+ file/path name given as hint. We'll have to lookup the
+ alt file "build-id". Because the debuginfod client only
+ handles build-ids. */
+ if (fd < 0)
+ {
+ if (mod->dw != NULL)
+ {
+ const char *altname;
+ bits_len = INTUSE(dwelf_dwarf_gnu_debugaltlink) (mod->dw, &altname,
+ (const void **)
+ &bits);
+ }
+
+ if (bits_len > 0)
+ fd = __libdwfl_debuginfod_find_debuginfo (mod->dwfl, bits, bits_len);
+ }
return fd;
}
diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c
index 043d0b6..e9988cc 100644
--- a/libdwfl/gzip.c
+++ b/libdwfl/gzip.c
@@ -153,7 +153,7 @@
if (unlikely (state->zf == NULL))
{
close (d);
- return zlib_fail (state, Z (MEM_ERROR));
+ return DWFL_E_NOMEM;
}
/* From here on, zlib will close D. */
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index b328731..fa6dd03 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,22 @@
+2020-06-10 Mark Wielaard <mark@klomp.org>
+
+ * eblopenbackend.c (i386_init, sh_init, x86_64_init, ia64_init,
+ alpha_init, arm_init, aarch64_init, sparc_init, ppc_init,
+ ppc64_init, s390_init, tilegx_init, m68k_init, bpf_init,
+ riscv_init, csky_init): Adjust signature.
+ (openbackend): Call init without sizeof(Ebl).
+ * libeblP.h (ebl_bhinit_t): Adjust signature.
+
+2020-06-04 Mark Wielaard <mark@klomp.org>
+
+ * eblsegmenttypename.c (ebl_segment_type_name): Remove
+ PT_GNU_PROPERTY define.
+
+2020-04-17 Mark Wielaard <mark@klomp.org>
+
+ * eblopenbackend.c (default_debugscn_p): Handle .gnu.debuglto_
+ prefix.
+
2020-02-08 Mark Wielaard <mark@klomp.org>
* eblsegmenttypename.c (ebl_segment_type_name): Handle
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index 210b47e..b3b6fc0 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -41,22 +41,22 @@
#include <system.h>
#include <libeblP.h>
-const char *i386_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *sh_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *x86_64_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *ia64_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *alpha_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *arm_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *aarch64_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *sparc_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *ppc_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *ppc64_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *s390_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *tilegx_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t);
-const char *csky_init (Elf *, GElf_Half, Ebl *, size_t);
+Ebl *i386_init (Elf *, GElf_Half, Ebl *);
+Ebl *sh_init (Elf *, GElf_Half, Ebl *);
+Ebl *x86_64_init (Elf *, GElf_Half, Ebl *);
+Ebl *ia64_init (Elf *, GElf_Half, Ebl *);
+Ebl *alpha_init (Elf *, GElf_Half, Ebl *);
+Ebl *arm_init (Elf *, GElf_Half, Ebl *);
+Ebl *aarch64_init (Elf *, GElf_Half, Ebl *);
+Ebl *sparc_init (Elf *, GElf_Half, Ebl *);
+Ebl *ppc_init (Elf *, GElf_Half, Ebl *);
+Ebl *ppc64_init (Elf *, GElf_Half, Ebl *);
+Ebl *s390_init (Elf *, GElf_Half, Ebl *);
+Ebl *tilegx_init (Elf *, GElf_Half, Ebl *);
+Ebl *m68k_init (Elf *, GElf_Half, Ebl *);
+Ebl *bpf_init (Elf *, GElf_Half, Ebl *);
+Ebl *riscv_init (Elf *, GElf_Half, Ebl *);
+Ebl *csky_init (Elf *, GElf_Half, Ebl *);
/* This table should contain the complete list of architectures as far
as the ELF specification is concerned. */
@@ -330,7 +330,7 @@
}
if (machines[cnt].init &&
- machines[cnt].init (elf, machine, result, sizeof(Ebl)))
+ machines[cnt].init (elf, machine, result))
{
result->elf = elf;
/* A few entries are mandatory. */
@@ -621,7 +621,9 @@
for (size_t cnt = 0; cnt < ndwarf_scn_names; ++cnt)
if (strcmp (name, dwarf_scn_names[cnt]) == 0
|| (strncmp (name, ".zdebug", strlen (".zdebug")) == 0
- && strcmp (&name[2], &dwarf_scn_names[cnt][1]) == 0))
+ && strcmp (&name[2], &dwarf_scn_names[cnt][1]) == 0)
+ || (strncmp (name, ".gnu.debuglto_", strlen (".gnu.debuglto_")) == 0
+ && strcmp (&name[14], dwarf_scn_names[cnt]) == 0))
return true;
return false;
diff --git a/libebl/eblsegmenttypename.c b/libebl/eblsegmenttypename.c
index c6bdff8..23a8548 100644
--- a/libebl/eblsegmenttypename.c
+++ b/libebl/eblsegmenttypename.c
@@ -56,10 +56,6 @@
PTYPE (TLS)
};
-#ifndef PT_GNU_PROPERTY
-#define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
-#endif
-
/* Is it one of the standard segment types? */
if (segment >= PT_NULL && segment < PT_NUM)
res = ptypes[segment];
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index fd0fcc9..599f637 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -80,8 +80,10 @@
};
-/* Type of the initialization functions in the backend modules. */
-typedef const char *(*ebl_bhinit_t) (Elf *, GElf_Half, Ebl *, size_t);
+/* Type of the initialization functions in the backend modules.
+ The init function returns the given Ebl * or NULL if it couldn't
+ initialize for the given Elf or machine. */
+typedef Ebl *(*ebl_bhinit_t) (Elf *, GElf_Half, Ebl *);
/* gettext helper macros. */
diff --git a/libelf/Android.bp b/libelf/Android.bp
deleted file mode 100644
index 1c7e647..0000000
--- a/libelf/Android.bp
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright (C) 2013 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-cc_library {
- name: "libelf",
- host_supported: true,
- vendor_available: true,
-
- srcs: [
- "elf32_checksum.c",
- "elf32_fsize.c",
- "elf32_getchdr.c",
- "elf32_getehdr.c",
- "elf32_getphdr.c",
- "elf32_getshdr.c",
- "elf32_newehdr.c",
- "elf32_newphdr.c",
- "elf32_offscn.c",
- "elf32_updatefile.c",
- "elf32_updatenull.c",
- "elf32_xlatetof.c",
- "elf32_xlatetom.c",
- "elf64_checksum.c",
- "elf64_fsize.c",
- "elf64_getchdr.c",
- "elf64_getehdr.c",
- "elf64_getphdr.c",
- "elf64_getshdr.c",
- "elf64_newehdr.c",
- "elf64_newphdr.c",
- "elf64_offscn.c",
- "elf64_updatefile.c",
- "elf64_updatenull.c",
- "elf64_xlatetof.c",
- "elf64_xlatetom.c",
- "elf_begin.c",
- "elf_clone.c",
- "elf_cntl.c",
- "elf_compress.c",
- "elf_end.c",
- "elf_error.c",
- "elf_fill.c",
- "elf_flagdata.c",
- "elf_flagehdr.c",
- "elf_flagelf.c",
- "elf_flagphdr.c",
- "elf_flagscn.c",
- "elf_flagshdr.c",
- "elf_getarhdr.c",
- "elf_getaroff.c",
- "elf_getarsym.c",
- "elf_getbase.c",
- "elf_getdata.c",
- "elf_getdata_rawchunk.c",
- "elf_getident.c",
- "elf_getphdrnum.c",
- "elf_getscn.c",
- "elf_getshdrnum.c",
- "elf_getshdrstrndx.c",
- "elf_gnu_hash.c",
- "elf_hash.c",
- "elf_kind.c",
- "elf_memory.c",
- "elf_ndxscn.c",
- "elf_newdata.c",
- "elf_newscn.c",
- "elf_next.c",
- "elf_nextscn.c",
- "elf_rand.c",
- "elf_rawdata.c",
- "elf_rawfile.c",
- "elf_readall.c",
- "elf_scnshndx.c",
- "elf_strptr.c",
- "elf_update.c",
- "elf_version.c",
- "gelf_checksum.c",
- "gelf_fsize.c",
- "gelf_getauxv.c",
- "gelf_getchdr.c",
- "gelf_getclass.c",
- "gelf_getdyn.c",
- "gelf_getehdr.c",
- "gelf_getlib.c",
- "gelf_getmove.c",
- "gelf_getnote.c",
- "gelf_getphdr.c",
- "gelf_getrela.c",
- "gelf_getrel.c",
- "gelf_getshdr.c",
- "gelf_getsym.c",
- "gelf_getsyminfo.c",
- "gelf_getsymshndx.c",
- "gelf_getverdaux.c",
- "gelf_getverdef.c",
- "gelf_getvernaux.c",
- "gelf_getverneed.c",
- "gelf_getversym.c",
- "gelf_newehdr.c",
- "gelf_newphdr.c",
- "gelf_offscn.c",
- "gelf_update_auxv.c",
- "gelf_update_dyn.c",
- "gelf_update_ehdr.c",
- "gelf_update_lib.c",
- "gelf_update_move.c",
- "gelf_update_phdr.c",
- "gelf_update_rela.c",
- "gelf_update_rel.c",
- "gelf_update_shdr.c",
- "gelf_update_sym.c",
- "gelf_update_syminfo.c",
- "gelf_update_symshndx.c",
- "gelf_update_verdaux.c",
- "gelf_update_verdef.c",
- "gelf_update_vernaux.c",
- "gelf_update_verneed.c",
- "gelf_update_versym.c",
- "gelf_xlate.c",
- "gelf_xlatetof.c",
- "gelf_xlatetom.c",
- "libelf_crc32.c",
- "libelf_next_prime.c",
- "nlist.c",
- ],
-
- cflags: [
- "-DHAVE_CONFIG_H",
- "-std=gnu99",
- "-D_GNU_SOURCE",
- "-Werror",
- // to suppress the "pointer of type ‘void *’ used in arithmetic" warning
- "-Wno-pointer-arith",
- ],
-
- static_libs: ["libz"],
-
- header_libs: ["elfutils_headers"],
-
- export_header_lib_headers: ["elfutils_headers"],
- export_include_dirs: ["."],
-
- target: {
- darwin: {
- enabled: false,
- },
- android: {
- cflags: [
- "-D_FILE_OFFSET_BITS=64",
- "-include AndroidFixup.h",
- ],
- shared: {
- enabled: false,
- },
- },
- },
-
- visibility: [
- "//device/google/contexthub/util/nanoapp_postprocess",
- "//external/igt-gpu-tools",
- "//external/mesa3d",
- ],
-}
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 8f79a62..8f6d2d2 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,20 @@
+2020-06-04 Mark Wielaard <mark@klomp.org>
+
+ * elf.h: Update from glibc.
+
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * elf_strptr.c (elf_strptr): Check shdr is not NULL.
+
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * elf_getdata.c (__libelf_set_rawdata_wrlock): Check
+ __gelf_getehdr_rdlock return value.
+
+2020-04-25 Mark Wielaard <mark@klomp.org>
+
+ * elf_compress.c (__libelf_compress): Remove free (out_buf).
+
2020-03-18 Omar Sandoval <osandov@fb.com>
* elf_getphdrnum.c (__elf_getphdrnum_rdlock): Call
diff --git a/libelf/elf.h b/libelf/elf.h
index 01648bd..197b557 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2019 Free Software Foundation, Inc.
+ Copyright (C) 1995-2020 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELF_H
#define _ELF_H 1
@@ -330,7 +330,7 @@
#define EM_CLOUDSHIELD 192 /* CloudShield */
#define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */
#define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */
-#define EM_ARC_COMPACT2 195 /* Synopsys ARCompact V2 */
+#define EM_ARCV2 195 /* Synopsys ARCv2 ISA. */
#define EM_OPEN8 196 /* Open8 RISC */
#define EM_RL78 197 /* Renesas RL78 */
#define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */
@@ -721,6 +721,7 @@
#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
+#define PT_GNU_PROPERTY 0x6474e553 /* GNU property */
#define PT_LOSUNW 0x6ffffffa
#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
@@ -809,9 +810,16 @@
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension
registers */
+#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication
+ code masks. */
+#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication
+ address keys. */
+#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication
+ generic key. */
#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */
#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */
#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */
+#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers. */
/* Legal values for the note segment descriptor types for object files. */
@@ -987,6 +995,9 @@
#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */
#define DF_1_STUB 0x04000000
#define DF_1_PIE 0x08000000
+#define DF_1_KMOD 0x10000000
+#define DF_1_WEAKFILTER 0x20000000
+#define DF_1_NOCOMMON 0x40000000
/* Flags for the feature selection in DT_FEATURE_1. */
#define DTF_1_PARINIT 0x00000001
@@ -1308,6 +1319,12 @@
/* Application-specific semantics, hi */
#define GNU_PROPERTY_HIUSER 0xffffffff
+/* AArch64 specific GNU properties. */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000
+
+#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
+#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1)
+
/* The x86 instruction sets indicated by the corresponding bits are
used in program. Their support in the hardware is optional. */
#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
@@ -1705,6 +1722,7 @@
#define SHT_MIPS_EH_REGION 0x70000027
#define SHT_MIPS_XLATE_OLD 0x70000028
#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+#define SHT_MIPS_XHASH 0x7000002b
/* Legal values for sh_flags field of Elf32_Shdr. */
@@ -1952,7 +1970,9 @@
in a PIE as it stores a relative offset from the address of the tag
rather than an absolute address. */
#define DT_MIPS_RLD_MAP_REL 0x70000035
-#define DT_MIPS_NUM 0x36
+/* GNU-style hash table with xlat. */
+#define DT_MIPS_XHASH 0x70000036
+#define DT_MIPS_NUM 0x37
/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
@@ -2854,6 +2874,13 @@
#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */
#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */
+/* AArch64 specific values for the Dyn d_tag field. */
+#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5)
+#define DT_AARCH64_NUM 6
+
+/* AArch64 specific values for the st_other field. */
+#define STO_AARCH64_VARIANT_PCS 0x80
+
/* ARM relocs. */
#define R_ARM_NONE 0 /* No reloc */
@@ -3926,8 +3953,9 @@
#define R_RISCV_SET16 55
#define R_RISCV_SET32 56
#define R_RISCV_32_PCREL 57
+#define R_RISCV_IRELATIVE 58
-#define R_RISCV_NUM 58
+#define R_RISCV_NUM 59
/* BPF specific declarations. */
@@ -4007,6 +4035,74 @@
#define R_NDS32_TLS_TPOFF 102
#define R_NDS32_TLS_DESC 119
+/* ARCompact/ARCv2 specific relocs. */
+#define R_ARC_NONE 0x0
+#define R_ARC_8 0x1
+#define R_ARC_16 0x2
+#define R_ARC_24 0x3
+#define R_ARC_32 0x4
+#define R_ARC_B26 0x5
+#define R_ARC_B22_PCREL 0x6
+#define R_ARC_H30 0x7
+#define R_ARC_N8 0x8
+#define R_ARC_N16 0x9
+#define R_ARC_N24 0xA
+#define R_ARC_N32 0xB
+#define R_ARC_SDA 0xC
+#define R_ARC_SECTOFF 0xD
+#define R_ARC_S21H_PCREL 0xE
+#define R_ARC_S21W_PCREL 0xF
+#define R_ARC_S25H_PCREL 0x10
+#define R_ARC_S25W_PCREL 0x11
+#define R_ARC_SDA32 0x12
+#define R_ARC_SDA_LDST 0x13
+#define R_ARC_SDA_LDST1 0x14
+#define R_ARC_SDA_LDST2 0x15
+#define R_ARC_SDA16_LD 0x16
+#define R_ARC_SDA16_LD1 0x17
+#define R_ARC_SDA16_LD2 0x18
+#define R_ARC_S13_PCREL 0x19
+#define R_ARC_W 0x1A
+#define R_ARC_32_ME 0x1B
+#define R_ARC_N32_ME 0x1C
+#define R_ARC_SECTOFF_ME 0x1D
+#define R_ARC_SDA32_ME 0x1E
+#define R_ARC_W_ME 0x1F
+#define R_ARC_H30_ME 0x20
+#define R_ARC_SECTOFF_U8 0x21
+#define R_ARC_SECTOFF_S9 0x22
+#define R_AC_SECTOFF_U8 0x23
+#define R_AC_SECTOFF_U8_1 0x24
+#define R_AC_SECTOFF_U8_2 0x25
+#define R_AC_SECTOFF_S9 0x26
+#define R_AC_SECTOFF_S9_1 0x27
+#define R_AC_SECTOFF_S9_2 0x28
+#define R_ARC_SECTOFF_ME_1 0x29
+#define R_ARC_SECTOFF_ME_2 0x2A
+#define R_ARC_SECTOFF_1 0x2B
+#define R_ARC_SECTOFF_2 0x2C
+#define R_ARC_PC32 0x32
+#define R_ARC_GOTPC32 0x33
+#define R_ARC_PLT32 0x34
+#define R_ARC_COPY 0x35
+#define R_ARC_GLOB_DAT 0x36
+#define R_ARC_JUMP_SLOT 0x37
+#define R_ARC_RELATIVE 0x38
+#define R_ARC_GOTOFF 0x39
+#define R_ARC_GOTPC 0x3A
+#define R_ARC_GOT32 0x3B
+
+#define R_ARC_TLS_DTPMOD 0x42
+#define R_ARC_TLS_DTPOFF 0x43
+#define R_ARC_TLS_TPOFF 0x44
+#define R_ARC_TLS_GD_GOT 0x45
+#define R_ARC_TLS_GD_LD 0x46
+#define R_ARC_TLS_GD_CALL 0x47
+#define R_ARC_TLS_IE_GOT 0x48
+#define R_ARC_TLS_DTPOFF_S9 0x4a
+#define R_ARC_TLS_LE_S9 0x4a
+#define R_ARC_TLS_LE_32 0x4b
+
__END_DECLS
#endif /* elf.h */
diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
index b1b8968..e5d3d2e 100644
--- a/libelf/elf_compress.c
+++ b/libelf/elf_compress.c
@@ -113,7 +113,6 @@
int zrc = deflateInit (&z, Z_BEST_COMPRESSION);
if (zrc != Z_OK)
{
- free (out_buf);
__libelf_seterrno (ELF_E_COMPRESS_ERROR);
return deflate_cleanup(NULL, NULL);
}
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
index 40fe169..0d8f8d2 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -271,6 +271,8 @@
{
GElf_Ehdr ehdr_mem;
GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem);
+ if (unlikely (ehdr == NULL))
+ return 1;
entsize = SH_ENTSIZE_HASH (ehdr);
}
else
diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c
index e72a3a3..c727170 100644
--- a/libelf/elf_strptr.c
+++ b/libelf/elf_strptr.c
@@ -145,7 +145,7 @@
else
{
Elf64_Shdr *shdr = strscn->shdr.e64 ?: __elf64_getshdr_rdlock (strscn);
- if (unlikely (shdr->sh_type != SHT_STRTAB))
+ if (unlikely (shdr == NULL || shdr->sh_type != SHT_STRTAB))
{
/* This is no string section. */
__libelf_seterrno (ELF_E_INVALID_SECTION);
diff --git a/po/ChangeLog b/po/ChangeLog
index 61c97fd..620931e 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2020-06-11 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.180.
+
2020-03-30 Mark Wielaard <mark@klomp.org>
* *.po: Update for 0.179.
diff --git a/po/de.po b/po/de.po
index 528c8df..d58a734 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-03-30 12:56+0200\n"
+"POT-Creation-Date: 2020-06-11 15:50+0200\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:11398 src/unstrip.c:2393 src/unstrip.c:2599
+#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599
#, c-format
msgid "memory exhausted"
msgstr "Kein Speicher mehr verfügbar"
@@ -533,7 +533,7 @@
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77
#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:85
+#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<Unbekannt>"
@@ -1673,7 +1673,7 @@
#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099
-#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4435
+#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr ""
@@ -2861,370 +2861,375 @@
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3926
+#: src/elflint.c:3931
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3933
+#: src/elflint.c:3938
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3941
+#: src/elflint.c:3946
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3951
+#: src/elflint.c:3956
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3956
+#: src/elflint.c:3961
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3962
+#: src/elflint.c:3967
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3968
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3973
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:3980
+#: src/elflint.c:3985
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:3985
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4004
+#: src/elflint.c:4009
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4013
+#: src/elflint.c:4018
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4020
+#: src/elflint.c:4025
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4051
+#: src/elflint.c:4056
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4061
+#: src/elflint.c:4066
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
"program header entry %d\n"
msgstr ""
-#: src/elflint.c:4087
+#: src/elflint.c:4092
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
"program header entry %d and file contents is non-zero\n"
msgstr ""
-#: src/elflint.c:4098
+#: src/elflint.c:4103
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
"segment of program header entry %d\n"
msgstr ""
-#: src/elflint.c:4109
+#: src/elflint.c:4114
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4119
+#: src/elflint.c:4124
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4129
+#: src/elflint.c:4134
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4135
+#: src/elflint.c:4140
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
"but type is not SHT_TYPE\n"
msgstr ""
-#: src/elflint.c:4143
+#: src/elflint.c:4148
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4194
+#: src/elflint.c:4199
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4217
+#: src/elflint.c:4222
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4228
+#: src/elflint.c:4233
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4234
+#: src/elflint.c:4239
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4245
+#: src/elflint.c:4250
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4258
+#: src/elflint.c:4263
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4272
+#: src/elflint.c:4277
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4321
+#: src/elflint.c:4326
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4325
+#: src/elflint.c:4330
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4374
+#: src/elflint.c:4379
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4379
+#: src/elflint.c:4384
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4398
+#: src/elflint.c:4403
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4418
+#: src/elflint.c:4423
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4421
+#: src/elflint.c:4426
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4442
+#: src/elflint.c:4447
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4449
+#: src/elflint.c:4454
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4452
+#: src/elflint.c:4457
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4470
+#: src/elflint.c:4475
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4485
+#: src/elflint.c:4490
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4499
+#: src/elflint.c:4500
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4510
+#: src/elflint.c:4511
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4519
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4525
+#: src/elflint.c:4526
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4539
+#: src/elflint.c:4540
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4542
+#: src/elflint.c:4543
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4552
+#: src/elflint.c:4553
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4573
+#: src/elflint.c:4574
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4584
+#: src/elflint.c:4585
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4591
+#: src/elflint.c:4592
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4600 src/elflint.c:4623
+#: src/elflint.c:4601 src/elflint.c:4624
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4629
+#: src/elflint.c:4630
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4656
+#: src/elflint.c:4657
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4659
+#: src/elflint.c:4660
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4672
+#: src/elflint.c:4673
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4680
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4683
+#: src/elflint.c:4684
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4687
+#: src/elflint.c:4688
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4690
+#: src/elflint.c:4691
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4695
+#: src/elflint.c:4696
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4698
+#: src/elflint.c:4699
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4710
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4716
+#: src/elflint.c:4717
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4719
+#: src/elflint.c:4720
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4732
+#: src/elflint.c:4733
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
"program header entry"
msgstr ""
-#: src/elflint.c:4766
+#: src/elflint.c:4767
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4792
+#: src/elflint.c:4779
+#, fuzzy, c-format
+msgid "cannot create backend for ELF file\n"
+msgstr "neue Datei konnte nicht angelegt werden"
+
+#: src/elflint.c:4800
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3481,12 +3486,12 @@
msgid "cannot create search tree"
msgstr "Kann Suchbaum nicht erstellen"
-#: src/nm.c:746 src/nm.c:1205 src/objdump.c:779 src/readelf.c:635
+#: src/nm.c:746 src/nm.c:1239 src/objdump.c:782 src/readelf.c:635
#: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005
#: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707
#: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518
-#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12415
-#: src/readelf.c:12626 src/readelf.c:12695 src/size.c:398 src/size.c:470
+#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420
+#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3514,28 +3519,28 @@
"\n"
msgstr ""
-#: src/nm.c:1216
+#: src/nm.c:1250
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: entry size in section `%s' is not what we expect"
-#: src/nm.c:1221
+#: src/nm.c:1255
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: entry size in section `%s' is not what we expect"
-#: src/nm.c:1300
+#: src/nm.c:1334
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: entry size in section `%s' is not what we expect"
#. XXX Add machine specific object file types.
-#: src/nm.c:1527
+#: src/nm.c:1570
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Ungültige Operation"
-#: src/nm.c:1584
+#: src/nm.c:1620
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: keine Symbole"
@@ -3609,6 +3614,11 @@
msgid "cannot disassemble"
msgstr "Disassemblieren nicht möglich"
+#: src/objdump.c:760
+#, fuzzy, c-format
+msgid "cannot create backend for elf file"
+msgstr "neue Datei konnte nicht angelegt werden"
+
#. Short description of program.
#: src/ranlib.c:63
msgid "Generate an index to speed access to archives."
@@ -3798,7 +3808,7 @@
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12646
+#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604
#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212
#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483
@@ -4170,8 +4180,8 @@
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12517
-#: src/readelf.c:12524 src/readelf.c:12568 src/readelf.c:12575
+#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522
+#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580
msgid "Couldn't uncompress section"
msgstr ""
@@ -5449,67 +5459,67 @@
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:11449 src/readelf.c:12071 src/readelf.c:12182
-#: src/readelf.c:12240
+#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187
+#: src/readelf.c:12245
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:11812
+#: src/readelf.c:11817
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12319
+#: src/readelf.c:12324
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12348
+#: src/readelf.c:12353
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12400
+#: src/readelf.c:12405
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/readelf.c:12434
+#: src/readelf.c:12439
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12457
+#: src/readelf.c:12462
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12504
+#: src/readelf.c:12509
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no data to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12531 src/readelf.c:12582
+#: src/readelf.c:12536 src/readelf.c:12587
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12536
+#: src/readelf.c:12541
#, c-format
msgid ""
"\n"
"Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12541
+#: src/readelf.c:12546
#, c-format
msgid ""
"\n"
@@ -5517,21 +5527,21 @@
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12555
+#: src/readelf.c:12560
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no strings to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12587
+#: src/readelf.c:12592
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12592
+#: src/readelf.c:12597
#, c-format
msgid ""
"\n"
@@ -5539,45 +5549,45 @@
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12641
+#: src/readelf.c:12646
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:12671
+#: src/readelf.c:12676
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:12728
+#: src/readelf.c:12733
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:12731
+#: src/readelf.c:12736
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:12735
+#: src/readelf.c:12740
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:12753
+#: src/readelf.c:12758
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:12758
+#: src/readelf.c:12763
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -5640,7 +5650,7 @@
msgid "%s: file format not recognized"
msgstr ""
-#: src/size.c:418 src/size.c:557
+#: src/size.c:418 src/size.c:560
#, c-format
msgid " (ex %s)"
msgstr ""
@@ -5650,7 +5660,7 @@
msgid "cannot get section header"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/size.c:582
+#: src/size.c:585
msgid "(TOTALS)\n"
msgstr ""
diff --git a/po/es.po b/po/es.po
index ffb877b..c3558bd 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-03-30 12:56+0200\n"
+"POT-Creation-Date: 2020-06-11 15:50+0200\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:11398 src/unstrip.c:2393 src/unstrip.c:2599
+#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599
#, c-format
msgid "memory exhausted"
msgstr "memoria agotada"
@@ -531,7 +531,7 @@
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77
#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:85
+#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<desconocido>"
@@ -1692,7 +1692,7 @@
#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099
-#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4435
+#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n"
@@ -3087,7 +3087,7 @@
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n"
-#: src/elflint.c:3926
+#: src/elflint.c:3931
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3095,76 +3095,76 @@
"Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas "
"%#<PRIx64>\n"
-#: src/elflint.c:3933
+#: src/elflint.c:3938
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#<PRIx64>\n"
-#: src/elflint.c:3941
+#: src/elflint.c:3946
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
"Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n"
-#: src/elflint.c:3951
+#: src/elflint.c:3956
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr ""
"Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3961
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n"
-#: src/elflint.c:3962
+#: src/elflint.c:3967
#, fuzzy, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n"
-#: src/elflint.c:3968
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
"Sección [%2zu] '%s': referencia de sección inválida en valor de enlace\n"
-#: src/elflint.c:3973
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
"Sección [%2zu] '%s': referencia de sección inválida en valor de información\n"
-#: src/elflint.c:3980
+#: src/elflint.c:3985
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
"Sección [%2zu] '%s': bandera de cadenas establecida sin bandera de fusión\n"
-#: src/elflint.c:3985
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
"Sección [%2zu] '%s': bandera de fusión establecida pero tamaño de entrada es "
"cero\n"
-#: src/elflint.c:4004
+#: src/elflint.c:4009
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
"Sección [%2zu] '%s' tiene un tipo %d inesperado para una sección ejecutable\n"
-#: src/elflint.c:4013
+#: src/elflint.c:4018
#, fuzzy, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n"
-#: src/elflint.c:4020
+#: src/elflint.c:4025
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "Sección [%2zu] '%s' es tanto de ejecución como de escritura\n"
-#: src/elflint.c:4051
+#: src/elflint.c:4056
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3173,7 +3173,7 @@
"Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de "
"encabezamiento de programa %d\n"
-#: src/elflint.c:4061
+#: src/elflint.c:4066
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3182,7 +3182,7 @@
"Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en "
"segmento de entrada de encabezamiento de programa %d\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4092
#, fuzzy, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3191,7 +3191,7 @@
"Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en "
"segmento de entrada de encabezamiento de programa %d\n"
-#: src/elflint.c:4098
+#: src/elflint.c:4103
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3200,18 +3200,18 @@
"Sección [%2zu] '%s' no tiene tipo NOBITS pero no es leída desde el fichero "
"en segmento de entrada de encabezamiento de programa %d\n"
-#: src/elflint.c:4109
+#: src/elflint.c:4114
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr "Sección [%2zu] '%s' es ejecutable en segmento no ejecutable %d\n"
-#: src/elflint.c:4119
+#: src/elflint.c:4124
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
"Sección [%2zu] '%s' es de escritura en segmento que no es de escritura %d\n"
-#: src/elflint.c:4129
+#: src/elflint.c:4134
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3219,7 +3219,7 @@
"Sección [%2zu] '%s': asignación de bandera establecida pero sección no en "
"ningún segmento cargado\n"
-#: src/elflint.c:4135
+#: src/elflint.c:4140
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3228,7 +3228,7 @@
"Sección [%2zu] '%s': encabezamiento ELF dice esta es la tabla de cadena de "
"encabezamiento de sección, pero el tipo no es SHT_TYPE\n"
-#: src/elflint.c:4143
+#: src/elflint.c:4148
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3236,32 +3236,32 @@
"sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos "
"dinámicos\n"
-#: src/elflint.c:4194
+#: src/elflint.c:4199
#, c-format
msgid "more than one version symbol table present\n"
msgstr "Más de una tabla de símbolos presente\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4222
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
"Entrada de encabezamiento de programa INTERP pero no la sección .interp\n"
-#: src/elflint.c:4228
+#: src/elflint.c:4233
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
"segmento cargable [%u] es ejecutable pero no contiene secciones ejecutables\n"
-#: src/elflint.c:4234
+#: src/elflint.c:4239
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
"segmento cargable [%u] es de escritura pero contiene secciones protegidas "
"contra escritura\n"
-#: src/elflint.c:4245
+#: src/elflint.c:4250
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3270,26 +3270,26 @@
"Sección no .gnu.versym presente, pero la sección .gnu.versym_d o la sección ."
"gnu.versym_r existen\n"
-#: src/elflint.c:4258
+#: src/elflint.c:4263
#, c-format
msgid "duplicate version index %d\n"
msgstr "Duplicar índice de versión %d\n"
-#: src/elflint.c:4272
+#: src/elflint.c:4277
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
"Sección .gnu.versym presente sin las secciones .gnu.versym_d o .gnu."
"versym_r\n"
-#: src/elflint.c:4321
+#: src/elflint.c:4326
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: tipo de nota de fichero core desconocido %<PRIu32> en compensación "
"%<PRIu64>\n"
-#: src/elflint.c:4325
+#: src/elflint.c:4330
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3297,7 +3297,7 @@
"Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4374
+#: src/elflint.c:4379
#, fuzzy, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3306,7 +3306,7 @@
"phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4379
+#: src/elflint.c:4384
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3315,40 +3315,40 @@
"Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4398
+#: src/elflint.c:4403
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr "phdr[%d]: no hay entradas de nota definidas para el tipo de archivo\n"
-#: src/elflint.c:4418
+#: src/elflint.c:4423
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr "phdr[%d]: no puede obtener contenido de sección de nota: %s\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4426
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: extra %<PRIu64> bytes después de la última nota\n"
-#: src/elflint.c:4442
+#: src/elflint.c:4447
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
"Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de "
"archivo\n"
-#: src/elflint.c:4449
+#: src/elflint.c:4454
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
"Sección[%2d] '%s': no se puede obtener el contenido de sección de nota\n"
-#: src/elflint.c:4452
+#: src/elflint.c:4457
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr "Sección[%2d] '%s': extra %<PRIu64> bytes después de la última nota\n"
-#: src/elflint.c:4470
+#: src/elflint.c:4475
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3356,145 +3356,145 @@
"Sólo ejecutables, objetos compartidos y ficheros core pueden tener "
"encabezamientos de programas\n"
-#: src/elflint.c:4485
+#: src/elflint.c:4490
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr "no se puede obtener entrada de encabezamiento %d: %s\n"
-#: src/elflint.c:4499
+#: src/elflint.c:4500
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"entrada de encabezamiento de programa %d: tipo %#<PRIx64> de entrada de "
"encabezamiento de programa desconocido\n"
-#: src/elflint.c:4510
+#: src/elflint.c:4511
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr "Más de una entrada INTERP en encabezamiento de programa\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4519
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr "más de una entrada TLS en encabezamiento de programa\n"
-#: src/elflint.c:4525
+#: src/elflint.c:4526
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "ejecutable estático no puede tener secciones dinámicas\n"
-#: src/elflint.c:4539
+#: src/elflint.c:4540
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
"Referencia de sección dinámica en encabezamiento de programa tiene "
"compensación errada\n"
-#: src/elflint.c:4542
+#: src/elflint.c:4543
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
"No coinciden tamaño de sección dinámica en programa y encabezamiento de "
"sección\n"
-#: src/elflint.c:4552
+#: src/elflint.c:4553
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr "Más de una entrada GNU_RELRO en encabezamiento de programa\n"
-#: src/elflint.c:4573
+#: src/elflint.c:4574
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr "Segmento cargable GNU_RELRO que se aplica no es de escritura\n"
-#: src/elflint.c:4584
+#: src/elflint.c:4585
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
"Banderas de segmento cargable [%u] no coinciden con banderas GNU_RELRO [%u]\n"
-#: src/elflint.c:4591
+#: src/elflint.c:4592
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4600 src/elflint.c:4623
+#: src/elflint.c:4601 src/elflint.c:4624
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr "Segmento %s no contenido en un segmento cargable\n"
-#: src/elflint.c:4629
+#: src/elflint.c:4630
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
"Compensación de encabezamiento de programa en encabezamiento ELF y entrada "
"PHDR no coinciden"
-#: src/elflint.c:4656
+#: src/elflint.c:4657
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
"Referencia de tabla de búsqueda de marco de llamada en encabezamiento de "
"programa tiene una compensación errada\n"
-#: src/elflint.c:4659
+#: src/elflint.c:4660
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
"Tamaño de tabla de búsqueda de marco de llamada no coincide con programa y "
"encabezamiento de sección\n"
-#: src/elflint.c:4672
+#: src/elflint.c:4673
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr "PT_GNU_EH_FRAME presente pero no la sección.eh_frame_hdr\n"
-#: src/elflint.c:4680
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "tabla de búsqueda de marco de llamada debe ser asignada\n"
-#: src/elflint.c:4683
+#: src/elflint.c:4684
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sección [%2zu] '%s' debe ser asignada\n"
-#: src/elflint.c:4687
+#: src/elflint.c:4688
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
"tabla de búsqueda de marco de llamada no debe tener permiso de escritura\n"
-#: src/elflint.c:4690
+#: src/elflint.c:4691
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n"
-#: src/elflint.c:4695
+#: src/elflint.c:4696
#, c-format
msgid "call frame search table must not be executable\n"
msgstr "tabla de búsqueda de marco de llamada no debe ser ejecutable\n"
-#: src/elflint.c:4698
+#: src/elflint.c:4699
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
-#: src/elflint.c:4709
+#: src/elflint.c:4710
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
"entrada de encabezamiento de programa %d: tamaño de fichero mayor que el "
"tamaño de memoria\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4717
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
"entrada de encabezamiento de programa %d: alineamiento no es potencia de 2\n"
-#: src/elflint.c:4719
+#: src/elflint.c:4720
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3503,7 +3503,7 @@
"entrada de encabezamiento de programa %d: compensación de fichero y "
"dirección virtual no módulo de alineación\n"
-#: src/elflint.c:4732
+#: src/elflint.c:4733
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3512,12 +3512,17 @@
"ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de "
"encabezamiento de programa PT_GNU_EH_FRAME"
-#: src/elflint.c:4766
+#: src/elflint.c:4767
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "No se puede leer encabezamiento ELF: %s\n"
-#: src/elflint.c:4792
+#: src/elflint.c:4779
+#, fuzzy, c-format
+msgid "cannot create backend for ELF file\n"
+msgstr "no sepuede crear fichero nuevo"
+
+#: src/elflint.c:4800
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "Bandera de reubicación de texto establecida pero no necesaria\n"
@@ -3783,12 +3788,12 @@
msgid "cannot create search tree"
msgstr "No se puede crear el árbol de búsqueda"
-#: src/nm.c:746 src/nm.c:1205 src/objdump.c:779 src/readelf.c:635
+#: src/nm.c:746 src/nm.c:1239 src/objdump.c:782 src/readelf.c:635
#: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005
#: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707
#: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518
-#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12415
-#: src/readelf.c:12626 src/readelf.c:12695 src/size.c:398 src/size.c:470
+#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420
+#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3818,30 +3823,30 @@
"%*s%-*s %-*s Clase Tipo %-*s %*s Sección\n"
"\n"
-#: src/nm.c:1216
+#: src/nm.c:1250
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr ""
"%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
-#: src/nm.c:1221
+#: src/nm.c:1255
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: Tamaño de sección `%s' no es múltiplo de tamaño de entrada"
-#: src/nm.c:1300
+#: src/nm.c:1334
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr ""
"%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
#. XXX Add machine specific object file types.
-#: src/nm.c:1527
+#: src/nm.c:1570
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Operación inválida"
-#: src/nm.c:1584
+#: src/nm.c:1620
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: No hay símbolos"
@@ -3918,6 +3923,11 @@
msgid "cannot disassemble"
msgstr "No se puede desensamblar"
+#: src/objdump.c:760
+#, fuzzy, c-format
+msgid "cannot create backend for elf file"
+msgstr "no sepuede crear fichero nuevo"
+
#. Short description of program.
#: src/ranlib.c:63
msgid "Generate an index to speed access to archives."
@@ -4111,7 +4121,7 @@
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:12646
+#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604
#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212
#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483
@@ -4512,8 +4522,8 @@
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÁLIDA>"
-#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12517
-#: src/readelf.c:12524 src/readelf.c:12568 src/readelf.c:12575
+#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522
+#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580
msgid "Couldn't uncompress section"
msgstr ""
@@ -5958,13 +5968,13 @@
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:11449 src/readelf.c:12071 src/readelf.c:12182
-#: src/readelf.c:12240
+#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187
+#: src/readelf.c:12245
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:11812
+#: src/readelf.c:11817
#, c-format
msgid ""
"\n"
@@ -5973,21 +5983,21 @@
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12319
+#: src/readelf.c:12324
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12348
+#: src/readelf.c:12353
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12400
+#: src/readelf.c:12405
#, 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:12434
+#: src/readelf.c:12439
#, c-format
msgid ""
"\n"
@@ -5996,7 +6006,7 @@
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12457
+#: src/readelf.c:12462
#, c-format
msgid ""
"\n"
@@ -6005,7 +6015,7 @@
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12504
+#: src/readelf.c:12509
#, fuzzy, c-format
msgid ""
"\n"
@@ -6014,12 +6024,12 @@
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12531 src/readelf.c:12582
+#: src/readelf.c:12536 src/readelf.c:12587
#, 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:12536
+#: src/readelf.c:12541
#, fuzzy, c-format
msgid ""
"\n"
@@ -6029,7 +6039,7 @@
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12541
+#: src/readelf.c:12546
#, fuzzy, c-format
msgid ""
"\n"
@@ -6040,7 +6050,7 @@
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12555
+#: src/readelf.c:12560
#, fuzzy, c-format
msgid ""
"\n"
@@ -6049,7 +6059,7 @@
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12587
+#: src/readelf.c:12592
#, fuzzy, c-format
msgid ""
"\n"
@@ -6059,7 +6069,7 @@
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12592
+#: src/readelf.c:12597
#, fuzzy, c-format
msgid ""
"\n"
@@ -6070,7 +6080,7 @@
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12641
+#: src/readelf.c:12646
#, c-format
msgid ""
"\n"
@@ -6079,7 +6089,7 @@
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12671
+#: src/readelf.c:12676
#, c-format
msgid ""
"\n"
@@ -6088,12 +6098,12 @@
"\n"
"sección '%s' no existe"
-#: src/readelf.c:12728
+#: src/readelf.c:12733
#, 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:12731
+#: src/readelf.c:12736
#, c-format
msgid ""
"\n"
@@ -6102,7 +6112,7 @@
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:12735
+#: src/readelf.c:12740
#, fuzzy, c-format
msgid ""
"\n"
@@ -6111,12 +6121,12 @@
"\n"
"Índice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:12753
+#: src/readelf.c:12758
#, 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:12758
+#: src/readelf.c:12763
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
@@ -6183,7 +6193,7 @@
msgid "%s: file format not recognized"
msgstr "%s: No se reconoce el formato del fichero"
-#: src/size.c:418 src/size.c:557
+#: src/size.c:418 src/size.c:560
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
@@ -6193,7 +6203,7 @@
msgid "cannot get section header"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/size.c:582
+#: src/size.c:585
msgid "(TOTALS)\n"
msgstr "(TOTALES)\n"
diff --git a/po/ja.po b/po/ja.po
index 97a529b..85c5683 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-03-30 12:56+0200\n"
+"POT-Creation-Date: 2020-06-11 15:50+0200\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:11398 src/unstrip.c:2393 src/unstrip.c:2599
+#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599
#, c-format
msgid "memory exhausted"
msgstr "メモリー消費済み"
@@ -530,7 +530,7 @@
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77
#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:85
+#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<不明>"
@@ -1679,7 +1679,7 @@
#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099
-#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4435
+#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
@@ -2942,370 +2942,375 @@
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3926
+#: src/elflint.c:3931
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3933
+#: src/elflint.c:3938
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3941
+#: src/elflint.c:3946
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3951
+#: src/elflint.c:3956
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3961
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
-#: src/elflint.c:3962
+#: src/elflint.c:3967
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3968
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3973
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:3980
+#: src/elflint.c:3985
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:3985
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4004
+#: src/elflint.c:4009
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4013
+#: src/elflint.c:4018
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4020
+#: src/elflint.c:4025
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4051
+#: src/elflint.c:4056
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4061
+#: src/elflint.c:4066
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
"program header entry %d\n"
msgstr ""
-#: src/elflint.c:4087
+#: src/elflint.c:4092
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
"program header entry %d and file contents is non-zero\n"
msgstr ""
-#: src/elflint.c:4098
+#: src/elflint.c:4103
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
"segment of program header entry %d\n"
msgstr ""
-#: src/elflint.c:4109
+#: src/elflint.c:4114
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4119
+#: src/elflint.c:4124
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4129
+#: src/elflint.c:4134
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4135
+#: src/elflint.c:4140
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
"but type is not SHT_TYPE\n"
msgstr ""
-#: src/elflint.c:4143
+#: src/elflint.c:4148
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4194
+#: src/elflint.c:4199
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4217
+#: src/elflint.c:4222
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4228
+#: src/elflint.c:4233
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4234
+#: src/elflint.c:4239
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4245
+#: src/elflint.c:4250
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4258
+#: src/elflint.c:4263
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4272
+#: src/elflint.c:4277
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4321
+#: src/elflint.c:4326
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4325
+#: src/elflint.c:4330
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4374
+#: src/elflint.c:4379
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4379
+#: src/elflint.c:4384
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4398
+#: src/elflint.c:4403
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4418
+#: src/elflint.c:4423
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4421
+#: src/elflint.c:4426
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4442
+#: src/elflint.c:4447
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4449
+#: src/elflint.c:4454
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4452
+#: src/elflint.c:4457
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4470
+#: src/elflint.c:4475
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4485
+#: src/elflint.c:4490
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4499
+#: src/elflint.c:4500
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4510
+#: src/elflint.c:4511
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4519
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4525
+#: src/elflint.c:4526
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4539
+#: src/elflint.c:4540
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4542
+#: src/elflint.c:4543
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4552
+#: src/elflint.c:4553
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4573
+#: src/elflint.c:4574
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4584
+#: src/elflint.c:4585
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4591
+#: src/elflint.c:4592
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4600 src/elflint.c:4623
+#: src/elflint.c:4601 src/elflint.c:4624
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4629
+#: src/elflint.c:4630
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4656
+#: src/elflint.c:4657
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4659
+#: src/elflint.c:4660
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4672
+#: src/elflint.c:4673
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4680
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4683
+#: src/elflint.c:4684
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4687
+#: src/elflint.c:4688
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4690
+#: src/elflint.c:4691
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4695
+#: src/elflint.c:4696
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4698
+#: src/elflint.c:4699
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4710
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4716
+#: src/elflint.c:4717
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4719
+#: src/elflint.c:4720
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4732
+#: src/elflint.c:4733
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
"program header entry"
msgstr ""
-#: src/elflint.c:4766
+#: src/elflint.c:4767
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4792
+#: src/elflint.c:4779
+#, fuzzy, c-format
+msgid "cannot create backend for ELF file\n"
+msgstr "新しいファイルを生成できません"
+
+#: src/elflint.c:4800
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3560,12 +3565,12 @@
msgid "cannot create search tree"
msgstr "検索ツリーを生成できません"
-#: src/nm.c:746 src/nm.c:1205 src/objdump.c:779 src/readelf.c:635
+#: src/nm.c:746 src/nm.c:1239 src/objdump.c:782 src/readelf.c:635
#: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005
#: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707
#: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518
-#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12415
-#: src/readelf.c:12626 src/readelf.c:12695 src/size.c:398 src/size.c:470
+#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420
+#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3595,28 +3600,28 @@
"%*s%-*s %-*s クラス タイプ %-*s %*s セクション\n"
"\n"
-#: src/nm.c:1216
+#: src/nm.c:1250
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: セクションの項目の大きさ `%s' は予期したものとは異なります"
-#: src/nm.c:1221
+#: src/nm.c:1255
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: セクション `%s' の大きさは項目の大きさの整数倍ではありません"
-#: src/nm.c:1300
+#: src/nm.c:1334
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: セクションの項目の大きさ `%s' は予期したものとは異なります"
#. XXX Add machine specific object file types.
-#: src/nm.c:1527
+#: src/nm.c:1570
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: 不当な操作"
-#: src/nm.c:1584
+#: src/nm.c:1620
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: シンボルがありません"
@@ -3690,6 +3695,11 @@
msgid "cannot disassemble"
msgstr ""
+#: src/objdump.c:760
+#, fuzzy, c-format
+msgid "cannot create backend for elf file"
+msgstr "新しいファイルを生成できません"
+
#. Short description of program.
#: src/ranlib.c:63
msgid "Generate an index to speed access to archives."
@@ -3883,7 +3893,7 @@
msgid "cannot get section: %s"
msgstr "セクションを得られません: %s"
-#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12646
+#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604
#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212
#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483
@@ -4279,8 +4289,8 @@
msgid "<INVALID SECTION>"
msgstr "<不当なセクション>"
-#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12517
-#: src/readelf.c:12524 src/readelf.c:12568 src/readelf.c:12575
+#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522
+#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580
msgid "Couldn't uncompress section"
msgstr ""
@@ -5679,13 +5689,13 @@
msgid "cannot get debug context descriptor: %s"
msgstr "デバッグ内容記述子を得られません: %s"
-#: src/readelf.c:11449 src/readelf.c:12071 src/readelf.c:12182
-#: src/readelf.c:12240
+#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187
+#: src/readelf.c:12245
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータの変換ができません: %s"
-#: src/readelf.c:11812
+#: src/readelf.c:11817
#, c-format
msgid ""
"\n"
@@ -5694,21 +5704,21 @@
"\n"
"%*s... < %u 回の繰返し> ..."
-#: src/readelf.c:12319
+#: src/readelf.c:12324
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大きさタイプ\n"
-#: src/readelf.c:12348
+#: src/readelf.c:12353
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12400
+#: src/readelf.c:12405
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションの内容を得られません: %s"
-#: src/readelf.c:12434
+#: src/readelf.c:12439
#, c-format
msgid ""
"\n"
@@ -5718,7 +5728,7 @@
"オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12457
+#: src/readelf.c:12462
#, c-format
msgid ""
"\n"
@@ -5727,7 +5737,7 @@
"\n"
"オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
-#: src/readelf.c:12504
+#: src/readelf.c:12509
#, fuzzy, c-format
msgid ""
"\n"
@@ -5736,12 +5746,12 @@
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12531 src/readelf.c:12582
+#: src/readelf.c:12536 src/readelf.c:12587
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' からデータが得られません: %s"
-#: src/readelf.c:12536
+#: src/readelf.c:12541
#, fuzzy, c-format
msgid ""
"\n"
@@ -5751,7 +5761,7 @@
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12541
+#: src/readelf.c:12546
#, fuzzy, c-format
msgid ""
"\n"
@@ -5762,7 +5772,7 @@
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
"プ、%3$<PRIu64> バイト:\n"
-#: src/readelf.c:12555
+#: src/readelf.c:12560
#, fuzzy, c-format
msgid ""
"\n"
@@ -5771,7 +5781,7 @@
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12587
+#: src/readelf.c:12592
#, fuzzy, c-format
msgid ""
"\n"
@@ -5781,7 +5791,7 @@
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12592
+#: src/readelf.c:12597
#, fuzzy, c-format
msgid ""
"\n"
@@ -5792,7 +5802,7 @@
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:12641
+#: src/readelf.c:12646
#, c-format
msgid ""
"\n"
@@ -5801,7 +5811,7 @@
"\n"
"セクション [%lu] がありません"
-#: src/readelf.c:12671
+#: src/readelf.c:12676
#, c-format
msgid ""
"\n"
@@ -5810,12 +5820,12 @@
"\n"
"セクション '%s' がありません"
-#: src/readelf.c:12728
+#: src/readelf.c:12733
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブのシンボル索引 '%s' を得られません: %s"
-#: src/readelf.c:12731
+#: src/readelf.c:12736
#, c-format
msgid ""
"\n"
@@ -5824,7 +5834,7 @@
"\n"
"アーカイブ '%s' にはシンボル索引がありません\n"
-#: src/readelf.c:12735
+#: src/readelf.c:12740
#, fuzzy, c-format
msgid ""
"\n"
@@ -5833,12 +5843,12 @@
"\n"
"アーカイブ '%s' の索引には %Zu 項目あります:\n"
-#: src/readelf.c:12753
+#: src/readelf.c:12758
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s"
-#: src/readelf.c:12758
+#: src/readelf.c:12763
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンバー '%s' には以下があります:\n"
@@ -5903,7 +5913,7 @@
msgid "%s: file format not recognized"
msgstr "%s: ファイル形式を認識できません"
-#: src/size.c:418 src/size.c:557
+#: src/size.c:418 src/size.c:560
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
@@ -5913,7 +5923,7 @@
msgid "cannot get section header"
msgstr "セクションヘッダーを得られません: %s"
-#: src/size.c:582
+#: src/size.c:585
msgid "(TOTALS)\n"
msgstr "(合計)\n"
diff --git a/po/pl.po b/po/pl.po
index 63e09a3..5d47add 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-03-30 12:56+0200\n"
+"POT-Creation-Date: 2020-06-11 15:50+0200\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:11398 src/unstrip.c:2393 src/unstrip.c:2599
+#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599
#, c-format
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
@@ -526,7 +526,7 @@
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77
#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:85
+#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<nieznany>"
@@ -1675,7 +1675,7 @@
#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099
-#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4435
+#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n"
@@ -3032,7 +3032,7 @@
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sekcja [%2zu] „%s” ma nieobsługiwany typ %d\n"
-#: src/elflint.c:3926
+#: src/elflint.c:3931
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3040,74 +3040,74 @@
"sekcja [%2zu] „%s” zawiera nieprawidłowe flagi dla konkretnego procesora "
"%#<PRIx64>\n"
-#: src/elflint.c:3933
+#: src/elflint.c:3938
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "sekcja [%2zu] „%s” zawiera nieznane flagi %#<PRIx64>\n"
-#: src/elflint.c:3941
+#: src/elflint.c:3946
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
"sekcja [%2zu] „%s”: adres sekcji danych lokalnych dla wątków nie jest zerem\n"
-#: src/elflint.c:3951
+#: src/elflint.c:3956
#, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "sekcja [%2zu] „%s”: nie można skompresować przydzielonej sekcji\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3961
#, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "sekcja [%2zu] „%s”: nie można skompresować sekcji „nobits”\n"
-#: src/elflint.c:3962
+#: src/elflint.c:3967
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr "sekcja [%2zu] „%s”: skompresowana sekcja bez nagłówka kompresji: %s\n"
-#: src/elflint.c:3968
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości dowiązania\n"
-#: src/elflint.c:3973
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości "
"informacyjnej\n"
-#: src/elflint.c:3980
+#: src/elflint.c:3985
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr "sekcja [%2zu] „%s”: flaga ciągów jest ustawiona bez flagi merge\n"
-#: src/elflint.c:3985
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
"sekcja [%2zu] „%s”: flaga merge jest ustawiona, ale rozmiar wpisu jest "
"zerowy\n"
-#: src/elflint.c:4004
+#: src/elflint.c:4009
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr "sekcja [%2zu] „%s” ma nieoczekiwany typ %d dla sekcji wykonywalnej\n"
-#: src/elflint.c:4013
+#: src/elflint.c:4018
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr "sekcja [%2zu] „%s” musi być typu NOBITS w plikach debuginfo\n"
-#: src/elflint.c:4020
+#: src/elflint.c:4025
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "sekcja [%2zu] „%s” jest wykonywalne i zapisywalne\n"
-#: src/elflint.c:4051
+#: src/elflint.c:4056
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3116,7 +3116,7 @@
"sekcja [%2zu] „%s” nie jest w całości zawarta w segmencie wpisu %d nagłówka "
"programu\n"
-#: src/elflint.c:4061
+#: src/elflint.c:4066
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3125,7 +3125,7 @@
"sekcja [%2zu] „%s” ma typ NOBITS, a jest odczytywana z pliku w segmencie "
"wpisu %d nagłówka programu\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4092
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3134,7 +3134,7 @@
"sekcja [%2zu] „%s” ma typ NOBITS, ale jest odczytywana z pliku w segmencie "
"wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n"
-#: src/elflint.c:4098
+#: src/elflint.c:4103
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3143,17 +3143,17 @@
"sekcja [%2zu] „%s” nie ma typu NOBITS, a nie jest odczytywana z pliku "
"w segmencie wpisu %d nagłówka programu\n"
-#: src/elflint.c:4109
+#: src/elflint.c:4114
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr "sekcja [%2zu] „%s” jest wykonywalne w segmencie niewykonywalnym %d\n"
-#: src/elflint.c:4119
+#: src/elflint.c:4124
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr "sekcja [%2zu] „%s” jest zapisywalne w niezapisywalnym segmencie %d\n"
-#: src/elflint.c:4129
+#: src/elflint.c:4134
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3161,7 +3161,7 @@
"sekcja [%2zu] „%s”: ma flagę alloc, ale sekcja nie jest w żadnym segmencie "
"wczytywalnym\n"
-#: src/elflint.c:4135
+#: src/elflint.c:4140
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3170,7 +3170,7 @@
"sekcja [%2zu] „%s”: według nagłówka ELF to jest tabela ciągów nagłówków "
"sekcji, ale typ nie jest SHT_TYPE\n"
-#: src/elflint.c:4143
+#: src/elflint.c:4148
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3178,17 +3178,17 @@
"sekcja [%2zu] „%s”: pliki relokowalne nie mogą mieć tabeli symboli "
"dynamicznych\n"
-#: src/elflint.c:4194
+#: src/elflint.c:4199
#, c-format
msgid "more than one version symbol table present\n"
msgstr "obecna jest więcej niż jedna tabela symboli wersji\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4222
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr "jest wpis nagłówka programu INTERP, ale nie ma sekcji .interp\n"
-#: src/elflint.c:4228
+#: src/elflint.c:4233
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3196,14 +3196,14 @@
"wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych "
"sekcji\n"
-#: src/elflint.c:4234
+#: src/elflint.c:4239
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
"wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych "
"sekcji\n"
-#: src/elflint.c:4245
+#: src/elflint.c:4250
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3212,23 +3212,23 @@
"brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu."
"versym_r\n"
-#: src/elflint.c:4258
+#: src/elflint.c:4263
#, c-format
msgid "duplicate version index %d\n"
msgstr "powtórzony indeks wersji %d\n"
-#: src/elflint.c:4272
+#: src/elflint.c:4277
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n"
-#: src/elflint.c:4321
+#: src/elflint.c:4326
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: nieznany typ notatki pliku core %<PRIu32> pod offsetem %<PRIu64>\n"
-#: src/elflint.c:4325
+#: src/elflint.c:4330
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3236,7 +3236,7 @@
"sekcja [%2d]: „%s”: nieznany typ notatki pliku core %<PRIu32> pod offsetem "
"%zu\n"
-#: src/elflint.c:4374
+#: src/elflint.c:4379
#, fuzzy, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3244,7 +3244,7 @@
msgstr ""
"phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem %zu\n"
-#: src/elflint.c:4379
+#: src/elflint.c:4384
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3253,37 +3253,37 @@
"sekcja [%2d] „%s”: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem "
"%zu\n"
-#: src/elflint.c:4398
+#: src/elflint.c:4403
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr "phdr[%d]: brak określonych wpisów notatek dla typu pliku\n"
-#: src/elflint.c:4418
+#: src/elflint.c:4423
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr "phdr[%d]: nie można uzyskać zawartości sekcji notatki: %s\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4426
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n"
-#: src/elflint.c:4442
+#: src/elflint.c:4447
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr "sekcja [%2d] „%s”: brak określonych wpisów notatek dla typu pliku\n"
-#: src/elflint.c:4449
+#: src/elflint.c:4454
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr "sekcja [%2d] „%s”: nie można uzyskać zawartości sekcji notatek\n"
-#: src/elflint.c:4452
+#: src/elflint.c:4457
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr "sekcja [%2d] „%s”: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n"
-#: src/elflint.c:4470
+#: src/elflint.c:4475
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3291,135 +3291,135 @@
"tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą mieć "
"nagłówki programu\n"
-#: src/elflint.c:4485
+#: src/elflint.c:4490
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr "nie można uzyskać wpisu nagłówka programu %d: %s\n"
-#: src/elflint.c:4499
+#: src/elflint.c:4500
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#<PRIx64>\n"
-#: src/elflint.c:4510
+#: src/elflint.c:4511
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr "więcej niż jeden wpis INTERP w nagłówku programu\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4519
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr "więcej niż jeden wpis TLS w nagłówku programu\n"
-#: src/elflint.c:4525
+#: src/elflint.c:4526
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n"
-#: src/elflint.c:4539
+#: src/elflint.c:4540
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr "odniesienie sekcji dynamicznej w nagłówku programu ma błędny offset\n"
-#: src/elflint.c:4542
+#: src/elflint.c:4543
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr "różne rozmiary sekcji dynamicznej w nagłówku programu i sekcji\n"
-#: src/elflint.c:4552
+#: src/elflint.c:4553
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr "więcej niż jeden wpis GNU_RELRO w nagłówku programu\n"
-#: src/elflint.c:4573
+#: src/elflint.c:4574
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr "wczytywalny segment wskazywany przez GNU_RELRO nie jest zapisywalny\n"
-#: src/elflint.c:4584
+#: src/elflint.c:4585
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr "flagi wczytywalnego segmentu [%u] nie pasują do flag GNU_RELRO [%u]\n"
-#: src/elflint.c:4591
+#: src/elflint.c:4592
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
"flagi GNU_RELRO [%u] nie są podzbiorem flag wczytywalnego segmentu [%u]\n"
-#: src/elflint.c:4600 src/elflint.c:4623
+#: src/elflint.c:4601 src/elflint.c:4624
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr "segment %s nie zawiera się we wczytywalnym segmencie\n"
-#: src/elflint.c:4629
+#: src/elflint.c:4630
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
"offsety nagłówka programu w nagłówku ELF i wpisie PHDR nie zgadzają się"
-#: src/elflint.c:4656
+#: src/elflint.c:4657
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
"odniesienie tabeli wyszukiwania ramki wywołania w nagłówku programu ma "
"błędny offset\n"
-#: src/elflint.c:4659
+#: src/elflint.c:4660
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
"różne rozmiary tabel wyszukiwania ramki wywołania w nagłówku programu "
"i sekcji\n"
-#: src/elflint.c:4672
+#: src/elflint.c:4673
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr "PT_GNU_EH_FRAME jest obecne, ale brak sekcji .eh_frame_hdr\n"
-#: src/elflint.c:4680
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n"
-#: src/elflint.c:4683
+#: src/elflint.c:4684
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sekcja [%2zu] „%s”: musi być przydzielona\n"
-#: src/elflint.c:4687
+#: src/elflint.c:4688
#, c-format
msgid "call frame search table must not be writable\n"
msgstr "tabela wyszukiwania ramki wywołania nie może być zapisywalna\n"
-#: src/elflint.c:4690
+#: src/elflint.c:4691
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "sekcja [%2zu] „%s” nie może być zapisywalna\n"
-#: src/elflint.c:4695
+#: src/elflint.c:4696
#, c-format
msgid "call frame search table must not be executable\n"
msgstr "tabela wyszukiwania ramki wywołania nie może być wykonywalna\n"
-#: src/elflint.c:4698
+#: src/elflint.c:4699
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sekcja [%2zu] „%s” nie może być wykonywalna\n"
-#: src/elflint.c:4709
+#: src/elflint.c:4710
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr "wpis nagłówka programu %d: rozmiar pliku większy niż rozmiar pamięci\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4717
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr "wpis nagłówka programu %d: wyrównanie nie jest potęgą 2\n"
-#: src/elflint.c:4719
+#: src/elflint.c:4720
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3428,7 +3428,7 @@
"wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są "
"wielokrotnością wyrównania\n"
-#: src/elflint.c:4732
+#: src/elflint.c:4733
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3437,12 +3437,17 @@
"plik wykonywalny/DSO z sekcją .eh_frame_hdr nie ma wpisu nagłówka programu "
"PT_GNU_EH_FRAME"
-#: src/elflint.c:4766
+#: src/elflint.c:4767
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "nie można odczytać nagłówka ELF: %s\n"
-#: src/elflint.c:4792
+#: src/elflint.c:4779
+#, fuzzy, c-format
+msgid "cannot create backend for ELF file\n"
+msgstr "nie można utworzyć nowego pliku"
+
+#: src/elflint.c:4800
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n"
@@ -3699,12 +3704,12 @@
msgid "cannot create search tree"
msgstr "nie można utworzyć drzewa wyszukiwania"
-#: src/nm.c:746 src/nm.c:1205 src/objdump.c:779 src/readelf.c:635
+#: src/nm.c:746 src/nm.c:1239 src/objdump.c:782 src/readelf.c:635
#: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005
#: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707
#: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518
-#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12415
-#: src/readelf.c:12626 src/readelf.c:12695 src/size.c:398 src/size.c:470
+#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420
+#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3734,28 +3739,28 @@
"%*s%-*s %-*s Klasa Typ %-*s %*s Sekcja\n"
"\n"
-#: src/nm.c:1216
+#: src/nm.c:1250
#, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: rozmiar wpisu w sekcji %zd „%s” nie jest tym, czego oczekiwano"
-#: src/nm.c:1221
+#: src/nm.c:1255
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: rozmiar sekcji %zd „%s” nie jest wielokrotnością rozmiaru wpisu"
-#: src/nm.c:1300
+#: src/nm.c:1334
#, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: wpisy (%zd) w sekcji %zd „%s” są za duże"
#. XXX Add machine specific object file types.
-#: src/nm.c:1527
+#: src/nm.c:1570
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: nieprawidłowe działanie"
-#: src/nm.c:1584
+#: src/nm.c:1620
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: brak symboli"
@@ -3831,6 +3836,11 @@
msgid "cannot disassemble"
msgstr "nie można deasemblować"
+#: src/objdump.c:760
+#, fuzzy, c-format
+msgid "cannot create backend for elf file"
+msgstr "nie można utworzyć nowego pliku"
+
#. Short description of program.
#: src/ranlib.c:63
msgid "Generate an index to speed access to archives."
@@ -4024,7 +4034,7 @@
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:12646
+#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604
#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212
#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483
@@ -4431,8 +4441,8 @@
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDŁOWY SEKCJA>"
-#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12517
-#: src/readelf.c:12524 src/readelf.c:12568 src/readelf.c:12575
+#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522
+#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580
msgid "Couldn't uncompress section"
msgstr "Nie można dekompresować sekcji"
@@ -5925,13 +5935,13 @@
msgid "cannot get debug context descriptor: %s"
msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
-#: src/readelf.c:11449 src/readelf.c:12071 src/readelf.c:12182
-#: src/readelf.c:12240
+#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187
+#: src/readelf.c:12245
#, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można konwertować danych notatki core: %s"
-#: src/readelf.c:11812
+#: src/readelf.c:11817
#, c-format
msgid ""
"\n"
@@ -5940,21 +5950,21 @@
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12319
+#: src/readelf.c:12324
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12348
+#: src/readelf.c:12353
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12400
+#: src/readelf.c:12405
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "nie można uzyskać zawartości sekcji notatki: %s"
-#: src/readelf.c:12434
+#: src/readelf.c:12439
#, c-format
msgid ""
"\n"
@@ -5964,7 +5974,7 @@
"Segment notatki [%2zu] „%s” o długości %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12457
+#: src/readelf.c:12462
#, c-format
msgid ""
"\n"
@@ -5973,7 +5983,7 @@
"\n"
"Segment notatki o długości %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12504
+#: src/readelf.c:12509
#, c-format
msgid ""
"\n"
@@ -5982,12 +5992,12 @@
"\n"
"Sekcja [%zu] „%s” nie ma danych do zrzucenia.\n"
-#: src/readelf.c:12531 src/readelf.c:12582
+#: src/readelf.c:12536 src/readelf.c:12587
#, 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:12536
+#: src/readelf.c:12541
#, c-format
msgid ""
"\n"
@@ -5997,7 +6007,7 @@
"Segment zrzutu szesnastkowego [%zu] „%s”, %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12541
+#: src/readelf.c:12546
#, c-format
msgid ""
"\n"
@@ -6008,7 +6018,7 @@
"Zrzut szesnastkowy sekcji [%zu] „%s”, %<PRIu64> bajtów (%zd "
"nieskompresowanych) pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12555
+#: src/readelf.c:12560
#, c-format
msgid ""
"\n"
@@ -6017,7 +6027,7 @@
"\n"
"Sekcja [%zu] „%s” nie ma ciągów do zrzucenia.\n"
-#: src/readelf.c:12587
+#: src/readelf.c:12592
#, c-format
msgid ""
"\n"
@@ -6026,7 +6036,7 @@
"\n"
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12592
+#: src/readelf.c:12597
#, c-format
msgid ""
"\n"
@@ -6037,7 +6047,7 @@
"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12641
+#: src/readelf.c:12646
#, c-format
msgid ""
"\n"
@@ -6046,7 +6056,7 @@
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12671
+#: src/readelf.c:12676
#, c-format
msgid ""
"\n"
@@ -6055,12 +6065,12 @@
"\n"
"sekcja „%s” nie istnieje"
-#: src/readelf.c:12728
+#: src/readelf.c:12733
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s"
-#: src/readelf.c:12731
+#: src/readelf.c:12736
#, c-format
msgid ""
"\n"
@@ -6069,7 +6079,7 @@
"\n"
"Archiwum „%s” nie ma indeksu symboli\n"
-#: src/readelf.c:12735
+#: src/readelf.c:12740
#, c-format
msgid ""
"\n"
@@ -6078,12 +6088,12 @@
"\n"
"Indeks archiwum „%s” ma %zu wpisów:\n"
-#: src/readelf.c:12753
+#: src/readelf.c:12758
#, 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:12758
+#: src/readelf.c:12763
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Element archiwum „%s” zawiera:\n"
@@ -6147,7 +6157,7 @@
msgid "%s: file format not recognized"
msgstr "%s: nie rozpoznano formatu pliku"
-#: src/size.c:418 src/size.c:557
+#: src/size.c:418 src/size.c:560
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
@@ -6157,7 +6167,7 @@
msgid "cannot get section header"
msgstr "nie można uzyskać nagłówka sekcji\n"
-#: src/size.c:582
+#: src/size.c:585
msgid "(TOTALS)\n"
msgstr "(CAŁKOWITE)\n"
diff --git a/po/uk.po b/po/uk.po
index 051cc0b..a712550 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-03-30 12:56+0200\n"
+"POT-Creation-Date: 2020-06-11 15:50+0200\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:11398 src/unstrip.c:2393 src/unstrip.c:2599
+#: src/readelf.c:11403 src/unstrip.c:2393 src/unstrip.c:2599
#, c-format
msgid "memory exhausted"
msgstr "пам’ять вичерпано"
@@ -517,7 +517,7 @@
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:77
#: libebl/eblobjnotetypename.c:109 libebl/eblobjnotetypename.c:130
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:85
+#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<невідомо>"
@@ -1675,7 +1675,7 @@
#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2936 src/elflint.c:3099
-#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4435
+#: src/elflint.c:3247 src/elflint.c:3437 src/elflint.c:4440
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу\n"
@@ -3063,7 +3063,7 @@
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n"
-#: src/elflint.c:3926
+#: src/elflint.c:3931
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3071,74 +3071,74 @@
"розділ [%2zu] «%s» містить некоректні специфічні для процесора прапорці "
"%#<PRIx64>\n"
-#: src/elflint.c:3933
+#: src/elflint.c:3938
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "розділ [%2zu] «%s» містить невідомі прапорці %#<PRIx64>\n"
-#: src/elflint.c:3941
+#: src/elflint.c:3946
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
"розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n"
-#: src/elflint.c:3951
+#: src/elflint.c:3956
#, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr ""
"розділ [%2zu] «%s»: розміщений у пам'яті розділ не може бути стиснений\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3961
#, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "розділ [%2zu] «%s»: розділ nobits не може бути стиснений\n"
-#: src/elflint.c:3962
+#: src/elflint.c:3967
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr "розділ [%2zu] «%s»: стиснений розділ без заголовка стиснення: %s\n"
-#: src/elflint.c:3968
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне посилання на розділ у значенні компонування\n"
-#: src/elflint.c:3973
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне посилання на розділ у значенні відомостей\n"
-#: src/elflint.c:3980
+#: src/elflint.c:3985
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr "розділ [%2zu] «%s»: встановлено прапорець strings без прапорця merge\n"
-#: src/elflint.c:3985
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
"розділ [%2zu] «%s»: встановлено прапорець merge, але розмір запису є "
"нульовим\n"
-#: src/elflint.c:4004
+#: src/elflint.c:4009
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr "розділ [%2zu] «%s» має неочікуваний тип %d для виконуваного розділу\n"
-#: src/elflint.c:4013
+#: src/elflint.c:4018
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr "розділ [%2zu] «%s» у файлах debuginfo має належати до типу NOBITS\n"
-#: src/elflint.c:4020
+#: src/elflint.c:4025
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "розділ [%2zu] «%s» є одночасно виконуваним і придатним до запису\n"
-#: src/elflint.c:4051
+#: src/elflint.c:4056
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3147,7 +3147,7 @@
"розділ [%2zu] «%s» не повністю міститься у сегменті запису заголовка "
"програми %d\n"
-#: src/elflint.c:4061
+#: src/elflint.c:4066
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3156,7 +3156,7 @@
"розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з "
"файла у сегментів запису заголовка програми %d\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4092
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3165,7 +3165,7 @@
"розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з "
"файла у сегментів запису заголовка програми %d, а вміст файла є ненульовим\n"
-#: src/elflint.c:4098
+#: src/elflint.c:4103
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3174,19 +3174,19 @@
"розділ [%2zu] «%s» не належить до типу NOBITS, але його читання не "
"виконується з файла у сегментів запису заголовка програми %d\n"
-#: src/elflint.c:4109
+#: src/elflint.c:4114
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr "розділ [%2zu] «%s» є виконуваним у невиконуваному сегменті %d\n"
-#: src/elflint.c:4119
+#: src/elflint.c:4124
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
"розділ [%2zu] «%s» є придатним до запису у непридатному до запису сегменті "
"%d\n"
-#: src/elflint.c:4129
+#: src/elflint.c:4134
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3194,7 +3194,7 @@
"розділ [%2zu] «%s»: встановлено прапорець alloc, але розділ не перебуває у "
"жодному завантаженому сегменті\n"
-#: src/elflint.c:4135
+#: src/elflint.c:4140
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3203,7 +3203,7 @@
"розділ [%2zu] «%s»: заголовок ELF повідомляє про те, що це таблиця рядків "
"заголовка розділу, але ця таблиця не належить до типу SHT_TYPE\n"
-#: src/elflint.c:4143
+#: src/elflint.c:4148
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3211,17 +3211,17 @@
"розділ [%2zu] «%s»: придатні до пересування файли не можуть містити "
"динамічних таблиць символів\n"
-#: src/elflint.c:4194
+#: src/elflint.c:4199
#, c-format
msgid "more than one version symbol table present\n"
msgstr "виявлено більше за одну таблицю символів версій\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4222
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr "існує запис заголовка програми INTERP, але не розділ .interp\n"
-#: src/elflint.c:4228
+#: src/elflint.c:4233
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3229,14 +3229,14 @@
"придатний до завантаження сегмент [%u] є виконуваним, але не містить "
"виконуваних розділів\n"
-#: src/elflint.c:4234
+#: src/elflint.c:4239
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
"придатний до завантаження розділ [%u] є придатним до запису, але не містить "
"придатних до запису розділів\n"
-#: src/elflint.c:4245
+#: src/elflint.c:4250
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3245,24 +3245,24 @@
"немає розділу .gnu.versym, хоча існує розділ .gnu.versym_d або .gnu."
"versym_r\n"
-#: src/elflint.c:4258
+#: src/elflint.c:4263
#, c-format
msgid "duplicate version index %d\n"
msgstr "дублікат індексу версії %d\n"
-#: src/elflint.c:4272
+#: src/elflint.c:4277
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
"існує розділ .gnu.versym, але немає розділу .gnu.versym_d або .gnu.versym_r\n"
-#: src/elflint.c:4321
+#: src/elflint.c:4326
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: невідомий тип нотатки файла core %<PRIu32> за зміщенням %<PRIu64>\n"
-#: src/elflint.c:4325
+#: src/elflint.c:4330
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3270,7 +3270,7 @@
"розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщенням "
"%zu\n"
-#: src/elflint.c:4374
+#: src/elflint.c:4379
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3279,7 +3279,7 @@
"phdr[%d]: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із іменем "
"власника «%s» за зміщенням %zu\n"
-#: src/elflint.c:4379
+#: src/elflint.c:4384
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3288,39 +3288,39 @@
"розділ [%2d] «%s»: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із "
"іменем власника «%s» за зміщенням %zu\n"
-#: src/elflint.c:4398
+#: src/elflint.c:4403
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr "phdr[%d]: для цього типу файлів не визначено записів нотаток\n"
-#: src/elflint.c:4418
+#: src/elflint.c:4423
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr "phdr[%d]: не вдалося отримати вміст розділу нотаток: %s\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4426
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: зайві %<PRIu64> байтів після останнього запису нотатки\n"
-#: src/elflint.c:4442
+#: src/elflint.c:4447
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
"розділ [%2d] «%s»: для цього типу файлів не визначено записів нотаток\n"
-#: src/elflint.c:4449
+#: src/elflint.c:4454
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr "розділ [%2d] «%s»: не вдалося отримати вміст розділу нотаток\n"
-#: src/elflint.c:4452
+#: src/elflint.c:4457
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
"розділ [%2d] «%s»: додаткові %<PRIu64> байтів після останньої нотатки\n"
-#: src/elflint.c:4470
+#: src/elflint.c:4475
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3328,66 +3328,66 @@
"заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів "
"спільного використання або файлів core\n"
-#: src/elflint.c:4485
+#: src/elflint.c:4490
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr "не вдалося отримати запис заголовка програми %d: %s\n"
-#: src/elflint.c:4499
+#: src/elflint.c:4500
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"запис заголовка програми %d: невідомий тип запису заголовка програми "
"%#<PRIx64>\n"
-#: src/elflint.c:4510
+#: src/elflint.c:4511
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr "більше за один запис INTERP у заголовку програми\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4519
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr "більше за один запис TLS у заголовку програми\n"
-#: src/elflint.c:4525
+#: src/elflint.c:4526
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "у статичному виконуваному файлі не може бути динамічних розділів\n"
-#: src/elflint.c:4539
+#: src/elflint.c:4540
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
"посилання на динамічний розділ у заголовку програми має помилкове зміщення\n"
-#: src/elflint.c:4542
+#: src/elflint.c:4543
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
"розміри динамічного розділу у заголовку програми та у заголовку розділу не "
"збігаються\n"
-#: src/elflint.c:4552
+#: src/elflint.c:4553
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr "більше за один запис GNU_RELRO у заголовку програми\n"
-#: src/elflint.c:4573
+#: src/elflint.c:4574
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
"придатний до завантаження сегмент, до якого звертається GNU_RELRO, "
"непридатний до запису\n"
-#: src/elflint.c:4584
+#: src/elflint.c:4585
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
"прапорці придатного до завантаження сегмента [%u] не відповідають прапорцям "
"GNU_RELRO [%u]\n"
-#: src/elflint.c:4591
+#: src/elflint.c:4592
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
@@ -3395,76 +3395,76 @@
"прапорці GNU_RELRO [%u] не є підмножиною прапорців завантажуваного сегмента "
"[%u]\n"
-#: src/elflint.c:4600 src/elflint.c:4623
+#: src/elflint.c:4601 src/elflint.c:4624
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr "сегмент %s не міститься у завантаженому сегменті\n"
-#: src/elflint.c:4629
+#: src/elflint.c:4630
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr "зміщення заголовка програми у заголовку ELF і запис PHDR не збігаються"
-#: src/elflint.c:4656
+#: src/elflint.c:4657
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
"посилання на таблицю вікон викликів у заголовку програми має помилкове "
"зміщення\n"
-#: src/elflint.c:4659
+#: src/elflint.c:4660
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
"розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку "
"розділу не збігаються\n"
-#: src/elflint.c:4672
+#: src/elflint.c:4673
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr "існує PT_GNU_EH_FRAME, хоча немає розділу .eh_frame_hdr\n"
-#: src/elflint.c:4680
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’яті\n"
-#: src/elflint.c:4683
+#: src/elflint.c:4684
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "розділ [%2zu] «%s» має бути розміщено у пам’яті\n"
-#: src/elflint.c:4687
+#: src/elflint.c:4688
#, c-format
msgid "call frame search table must not be writable\n"
msgstr "таблиця пошуку вікон викликів не повинна бути придатною до запису\n"
-#: src/elflint.c:4690
+#: src/elflint.c:4691
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n"
-#: src/elflint.c:4695
+#: src/elflint.c:4696
#, c-format
msgid "call frame search table must not be executable\n"
msgstr "таблиця пошуку вікон викликів не повинна бути придатною до виконання\n"
-#: src/elflint.c:4698
+#: src/elflint.c:4699
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконання\n"
-#: src/elflint.c:4709
+#: src/elflint.c:4710
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr "запис заголовка програми %d: розмір файла перевищує об’єм пам’яті\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4717
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr "запис заголовка програми %d: значення вирівнювання не є степенем 2\n"
-#: src/elflint.c:4719
+#: src/elflint.c:4720
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3473,7 +3473,7 @@
"запис заголовка програми %d: зміщення у файлі і віртуальна адреса не "
"співвідносяться з вирівнюванням\n"
-#: src/elflint.c:4732
+#: src/elflint.c:4733
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3482,12 +3482,17 @@
"виконуваний модуль/DSO з розділом .eh_frame_hdr не містить запису заголовка "
"програми PT_GNU_EH_FRAME"
-#: src/elflint.c:4766
+#: src/elflint.c:4767
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "не вдалося прочитати заголовок ELF: %s\n"
-#: src/elflint.c:4792
+#: src/elflint.c:4779
+#, fuzzy, c-format
+msgid "cannot create backend for ELF file\n"
+msgstr "не вдалося створити файл"
+
+#: src/elflint.c:4800
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3748,12 +3753,12 @@
msgid "cannot create search tree"
msgstr "не вдалося створити дерево пошуку"
-#: src/nm.c:746 src/nm.c:1205 src/objdump.c:779 src/readelf.c:635
+#: src/nm.c:746 src/nm.c:1239 src/objdump.c:782 src/readelf.c:635
#: src/readelf.c:1447 src/readelf.c:1598 src/readelf.c:1799 src/readelf.c:2005
#: src/readelf.c:2195 src/readelf.c:2373 src/readelf.c:2449 src/readelf.c:2707
#: src/readelf.c:2783 src/readelf.c:2870 src/readelf.c:3468 src/readelf.c:3518
-#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12415
-#: src/readelf.c:12626 src/readelf.c:12695 src/size.c:398 src/size.c:470
+#: src/readelf.c:3581 src/readelf.c:11230 src/readelf.c:12420
+#: src/readelf.c:12631 src/readelf.c:12700 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
@@ -3783,28 +3788,28 @@
"%*s%-*s %-*s Клас Тип %-*s %*s Розділ\n"
"\n"
-#: src/nm.c:1216
+#: src/nm.c:1250
#, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: розмір запису у розділі %zd «%s» не є очікуваним"
-#: src/nm.c:1221
+#: src/nm.c:1255
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: розмір розділу %zd «%s» не є кратним до розміру запису"
-#: src/nm.c:1300
+#: src/nm.c:1334
#, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: записи (%zd) у розділі %zd, «%s» є завеликим"
#. XXX Add machine specific object file types.
-#: src/nm.c:1527
+#: src/nm.c:1570
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: некоректна дія"
-#: src/nm.c:1584
+#: src/nm.c:1620
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: немає символів"
@@ -3880,6 +3885,11 @@
msgid "cannot disassemble"
msgstr "не вдалося дизасемблювати"
+#: src/objdump.c:760
+#, fuzzy, c-format
+msgid "cannot create backend for elf file"
+msgstr "не вдалося створити файл"
+
#. Short description of program.
#: src/ranlib.c:63
msgid "Generate an index to speed access to archives."
@@ -4071,7 +4081,7 @@
msgid "cannot get section: %s"
msgstr "не вдалося отримати розділ: %s"
-#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12646
+#: src/readelf.c:653 src/readelf.c:1270 src/readelf.c:1479 src/readelf.c:12651
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:485 src/unstrip.c:604
#: src/unstrip.c:625 src/unstrip.c:665 src/unstrip.c:881 src/unstrip.c:1212
#: src/unstrip.c:1339 src/unstrip.c:1363 src/unstrip.c:1419 src/unstrip.c:1483
@@ -4477,8 +4487,8 @@
msgid "<INVALID SECTION>"
msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>"
-#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12517
-#: src/readelf.c:12524 src/readelf.c:12568 src/readelf.c:12575
+#: src/readelf.c:1656 src/readelf.c:2383 src/readelf.c:3484 src/readelf.c:12522
+#: src/readelf.c:12529 src/readelf.c:12573 src/readelf.c:12580
msgid "Couldn't uncompress section"
msgstr "Не вдалося розпакувати розділ"
@@ -5959,13 +5969,13 @@
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалося отримати дескриптор контексту зневаджування: %s"
-#: src/readelf.c:11449 src/readelf.c:12071 src/readelf.c:12182
-#: src/readelf.c:12240
+#: src/readelf.c:11454 src/readelf.c:12076 src/readelf.c:12187
+#: src/readelf.c:12245
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалося перетворити дані запису ядра: %s"
-#: src/readelf.c:11812
+#: src/readelf.c:11817
#, c-format
msgid ""
"\n"
@@ -5974,21 +5984,21 @@
"\n"
"%*s... <повторюється %u разів> ..."
-#: src/readelf.c:12319
+#: src/readelf.c:12324
msgid " Owner Data size Type\n"
msgstr " Власник Розм. даних Тип\n"
-#: src/readelf.c:12348
+#: src/readelf.c:12353
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12400
+#: src/readelf.c:12405
#, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалося отримати вміст нотатки: %s"
-#: src/readelf.c:12434
+#: src/readelf.c:12439
#, c-format
msgid ""
"\n"
@@ -5998,7 +6008,7 @@
"Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12457
+#: src/readelf.c:12462
#, c-format
msgid ""
"\n"
@@ -6007,7 +6017,7 @@
"\n"
"Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12504
+#: src/readelf.c:12509
#, c-format
msgid ""
"\n"
@@ -6016,12 +6026,12 @@
"\n"
"У розділі [%zu] «%s» не міститься даних для створення дампу.\n"
-#: src/readelf.c:12531 src/readelf.c:12582
+#: src/readelf.c:12536 src/readelf.c:12587
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s"
-#: src/readelf.c:12536
+#: src/readelf.c:12541
#, c-format
msgid ""
"\n"
@@ -6030,7 +6040,7 @@
"\n"
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12541
+#: src/readelf.c:12546
#, c-format
msgid ""
"\n"
@@ -6041,7 +6051,7 @@
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd нестиснено) за "
"зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12555
+#: src/readelf.c:12560
#, c-format
msgid ""
"\n"
@@ -6050,7 +6060,7 @@
"\n"
"У розділі [%zu] «%s» не міститься рядків для створення дампу.\n"
-#: src/readelf.c:12587
+#: src/readelf.c:12592
#, c-format
msgid ""
"\n"
@@ -6059,7 +6069,7 @@
"\n"
"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12592
+#: src/readelf.c:12597
#, c-format
msgid ""
"\n"
@@ -6070,7 +6080,7 @@
"Рядок розділу [%zu] «%s» містить %<PRIu64> байти (%zd нестиснено) на "
"зміщенні %#0<PRIx64>:\n"
-#: src/readelf.c:12641
+#: src/readelf.c:12646
#, c-format
msgid ""
"\n"
@@ -6079,7 +6089,7 @@
"\n"
"розділу [%lu] не існує"
-#: src/readelf.c:12671
+#: src/readelf.c:12676
#, c-format
msgid ""
"\n"
@@ -6088,12 +6098,12 @@
"\n"
"розділу «%s» не існує"
-#: src/readelf.c:12728
+#: src/readelf.c:12733
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалося отримати покажчик символів архіву «%s»: %s"
-#: src/readelf.c:12731
+#: src/readelf.c:12736
#, c-format
msgid ""
"\n"
@@ -6102,7 +6112,7 @@
"\n"
"У архіві «%s» немає покажчика символів\n"
-#: src/readelf.c:12735
+#: src/readelf.c:12740
#, c-format
msgid ""
"\n"
@@ -6111,12 +6121,12 @@
"\n"
"Покажчик архіву «%s» містить %zu записів:\n"
-#: src/readelf.c:12753
+#: src/readelf.c:12758
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s"
-#: src/readelf.c:12758
+#: src/readelf.c:12763
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» містить:\n"
@@ -6183,7 +6193,7 @@
msgid "%s: file format not recognized"
msgstr "%s: не вдалося розпізнати формат файла"
-#: src/size.c:418 src/size.c:557
+#: src/size.c:418 src/size.c:560
#, c-format
msgid " (ex %s)"
msgstr " (прикл. %s)"
@@ -6193,7 +6203,7 @@
msgid "cannot get section header"
msgstr "не вдалося отримати заголовок розділу"
-#: src/size.c:582
+#: src/size.c:585
msgid "(TOTALS)\n"
msgstr "(ЗАГАЛОМ)\n"
diff --git a/post_update.sh b/post_update.sh
new file mode 100755
index 0000000..04572bc
--- /dev/null
+++ b/post_update.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# $1 Path to the new version.
+# $2 Path to the old version.
+
+set -x
+set -e
+
+# if called from the external_updater, change to the new dir first
+if [ "$1" != "" ]; then
+ cd $1
+fi
+
+autoreconf -i && ./configure --enable-maintainer-mode --disable-debuginfod --without-lzma --without-bzlib
+
+# if called from the external_updater, do not apply any patches as it will do
+# that for us
+if [ "$2" == "" ]; then
+ git apply patches/*
+fi
diff --git a/src/ChangeLog b/src/ChangeLog
index e11fe79..512d7b5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,45 @@
+2020-06-07 Mark Wielaard <mark@klomp.org>
+
+ * nm.c (sort_by_name_strtab): Replace by...
+ (sort_by_name_elf): New static Elf pointer and ...
+ (sort_by_name_ndx): New static size_t index.
+ (sort_by_name): Use elf_strptr to get symbol string.
+ (show_symbols): Set sort_by_name_elf and sort_by_name_ndx.
+
+2020-06-06 Mark Wielaard <mark@klomp.org>
+
+ * nm.c (show_symbols_sysv): Skip no name and STT_FILE symbols.
+ When not printing address and size pad strings. Strip "GNU_"
+ prefix from binding name.
+ (class_type_char): Use 'V' for weak symbols, 'C' for common
+ symbols and 'T' for weak functions.
+ (show_symbols_posix): Skip STT_FILE symbols. Don't print value and
+ size when undefined.
+
+2020-06-04 Mark Wielaard <mark@klomp.org>
+
+ * elflint.c (check_program_header): Remove PT_GNU_PROPERTY define.
+
+2020-05-14 Mark Wielaard <mark@klomp.org>
+
+ * size.c (show_bsd): Set printf format based on radix.
+
+2020-05-09 Mark Wielaard <mark@klomp.org>
+
+ * elflint.c (process_elf_file): Error out if ebl_openbackend fails.
+ * objdump.c (handle_elf): Likewise.
+ * nm.c (handle_elf): Likewise. Move full name string construction
+ forward, so it can be used in the error message.
+
+2020-04-17 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_debug): Check .gnu.debuglto_ prefix.
+
+2020-04-16 Mark Wielaard <mark@klomp.org>
+
+ * elflint.c (check_sections): Mask out SHF_EXCLUDE from processor
+ specific section flags when --gnu is given.
+
2020-02-08 Mark Wielaard <mark@klomp.org>
* elflint.c (check_program_header): Handle PT_GNU_PROPERTY.
diff --git a/src/elflint.c b/src/elflint.c
index 480d84b..72584de 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -3921,6 +3921,11 @@
GElf_Xword sh_flags = shdr->sh_flags & ~(GElf_Xword) ALL_SH_FLAGS;
if (sh_flags & SHF_MASKPROC)
{
+ /* Strictly speaking SHF_EXCLUDE is a processor specific
+ section flag, but it is used generically in the GNU
+ toolchain. */
+ if (gnuld)
+ sh_flags &= ~(GElf_Xword) SHF_EXCLUDE;
if (!ebl_machine_section_flag_check (ebl,
sh_flags & SHF_MASKPROC))
ERROR (gettext ("section [%2zu] '%s'"
@@ -4487,10 +4492,6 @@
continue;
}
-#ifndef PT_GNU_PROPERTY
-#define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
-#endif
-
if (phdr->p_type >= PT_NUM && phdr->p_type != PT_GNU_EH_FRAME
&& phdr->p_type != PT_GNU_STACK && phdr->p_type != PT_GNU_RELRO
&& phdr->p_type != PT_GNU_PROPERTY
@@ -4770,7 +4771,14 @@
ebl = ebl_openbackend (elf);
/* If there is no appropriate backend library we cannot test
architecture and OS specific features. Any encountered extension
- is an error. */
+ is an error. Often we'll get a "dummy" ebl, except if something
+ really bad happen, like a totally corrupted ELF file or out of
+ memory situation. */
+ if (ebl == NULL)
+ {
+ ERROR (gettext ("cannot create backend for ELF file\n"));
+ return;
+ }
/* Go straight by the gABI, check all the parts in turn. */
check_elf_header (ebl, ehdr, size);
diff --git a/src/nm.c b/src/nm.c
index b7c2aed..a633474 100644
--- a/src/nm.c
+++ b/src/nm.c
@@ -1,5 +1,5 @@
/* Print symbol information from ELF file in human-readable form.
- Copyright (C) 2000-2008, 2009, 2011, 2012, 2014, 2015 Red Hat, Inc.
+ Copyright (C) 2000-2008, 2009, 2011, 2012, 2014, 2015, 2020 Red Hat, Inc.
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
@@ -797,6 +797,16 @@
const char *symstr = sym_name (ebl->elf, strndx, syms[cnt].sym.st_name,
symstrbuf, sizeof symstrbuf);
+ /* Printing entries with a zero-length name makes the output
+ not very well parseable. Since these entries don't carry
+ much information we leave them out. */
+ if (symstr[0] == '\0')
+ continue;
+
+ /* We do not print the entries for files. */
+ if (GELF_ST_TYPE (syms[cnt].sym.st_info) == STT_FILE)
+ continue;
+
#ifdef USE_DEMANGLE
/* Demangle if necessary. Require GNU v3 ABI by the "_Z" prefix. */
if (demangle && symstr[0] == '_' && symstr[1] == 'Z')
@@ -825,7 +835,10 @@
/* Covert the address. */
if (syms[cnt].sym.st_shndx == SHN_UNDEF)
- addressbuf[0] = sizebuf[0] = '\0';
+ {
+ sprintf (addressbuf, "%*c", digits, ' ');
+ sprintf (sizebuf, "%*c", digits, ' ');
+ }
else
{
snprintf (addressbuf, sizeof (addressbuf),
@@ -841,11 +854,14 @@
}
/* Print the actual string. */
+ const char *bind;
+ bind = ebl_symbol_binding_name (ebl,
+ GELF_ST_BIND (syms[cnt].sym.st_info),
+ symbindbuf, sizeof (symbindbuf));
+ if (bind != NULL && strncmp (bind, "GNU_", strlen ("GNU_")) == 0)
+ bind += strlen ("GNU_");
printf ("%-*s|%s|%-6s|%-8s|%s|%*s|%s\n",
- longest_name, symstr, addressbuf,
- ebl_symbol_binding_name (ebl,
- GELF_ST_BIND (syms[cnt].sym.st_info),
- symbindbuf, sizeof (symbindbuf)),
+ longest_name, symstr, addressbuf, bind,
ebl_symbol_type_name (ebl, GELF_ST_TYPE (syms[cnt].sym.st_info),
symtypebuf, sizeof (symtypebuf)),
sizebuf, longest_where, syms[cnt].where,
@@ -884,6 +900,10 @@
if (ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX
&& GELF_ST_BIND (sym->st_info) == STB_GNU_UNIQUE)
result = 'u';
+ else if (GELF_ST_BIND (sym->st_info) == STB_WEAK)
+ result = 'V';
+ else if (sym->st_shndx == SHN_COMMON)
+ result = 'C';
else
{
GElf_Shdr shdr_mem;
@@ -898,6 +918,11 @@
}
}
}
+ else if (result == 'T')
+ {
+ if (GELF_ST_BIND (sym->st_info) == STB_WEAK)
+ result = 'W';
+ }
return local_p ? tolower (result) : result;
}
@@ -1063,6 +1088,10 @@
if (symstr[0] == '\0')
continue;
+ /* We do not print the entries for files. */
+ if (GELF_ST_TYPE (syms[cnt].sym.st_info) == STT_FILE)
+ continue;
+
#ifdef USE_DEMANGLE
/* Demangle if necessary. Require GNU v3 ABI by the "_Z" prefix. */
if (demangle && symstr[0] == '_' && symstr[1] == 'Z')
@@ -1084,21 +1113,23 @@
putchar_unlocked (' ');
}
- printf ((radix == radix_hex
- ? "%s %c%s %0*" PRIx64 " %0*" PRIx64 "\n"
- : (radix == radix_decimal
- ? "%s %c%s %*" PRId64 " %*" PRId64 "\n"
- : "%s %c%s %0*" PRIo64 " %0*" PRIo64 "\n")),
- symstr,
+ printf ("%s %c%s", symstr,
class_type_char (elf, ehdr, &syms[cnt].sym),
mark_special
? (GELF_ST_TYPE (syms[cnt].sym.st_info) == STT_TLS
? "@"
: (GELF_ST_BIND (syms[cnt].sym.st_info) == STB_WEAK
? "*" : " "))
- : "",
- digits, syms[cnt].sym.st_value,
- digits, syms[cnt].sym.st_size);
+ : "");
+ if (syms[cnt].sym.st_shndx != SHN_UNDEF)
+ printf ((radix == radix_hex
+ ? " %0*" PRIx64 " %0*" PRIx64
+ : (radix == radix_decimal
+ ? " %*" PRId64 " %*" PRId64
+ : " %0*" PRIo64 " %0*" PRIo64)),
+ digits, syms[cnt].sym.st_value,
+ digits, syms[cnt].sym.st_size);
+ putchar ('\n');
}
#ifdef USE_DEMANGLE
@@ -1122,7 +1153,8 @@
return reverse_sort ? -result : result;
}
-static Elf_Data *sort_by_name_strtab;
+static Elf *sort_by_name_elf;
+static size_t sort_by_name_ndx;
static int
sort_by_name (const void *p1, const void *p2)
@@ -1130,8 +1162,10 @@
GElf_SymX *s1 = (GElf_SymX *) p1;
GElf_SymX *s2 = (GElf_SymX *) p2;
- const char *n1 = sort_by_name_strtab->d_buf + s1->sym.st_name;
- const char *n2 = sort_by_name_strtab->d_buf + s2->sym.st_name;
+ const char *n1 = elf_strptr (sort_by_name_elf, sort_by_name_ndx,
+ s1->sym.st_name) ?: "";
+ const char *n2 = elf_strptr (sort_by_name_elf, sort_by_name_ndx,
+ s2->sym.st_name) ?: "";
int result = strcmp (n1, n2);
@@ -1444,8 +1478,8 @@
/* Sort the entries according to the users wishes. */
if (sort == sort_name)
{
- sort_by_name_strtab = elf_getdata (elf_getscn (ebl->elf, shdr->sh_link),
- NULL);
+ sort_by_name_elf = ebl->elf;
+ sort_by_name_ndx = shdr->sh_link;
qsort (sym_mem, nentries, sizeof (GElf_SymX), sort_by_name);
}
else if (sort == sort_numeric)
@@ -1510,8 +1544,17 @@
GElf_Ehdr *ehdr;
Ebl *ebl;
+ /* Create the full name of the file. */
+ if (prefix != NULL)
+ cp = mempcpy (cp, prefix, prefix_len);
+ cp = mempcpy (cp, fname, fname_len);
+ if (suffix != NULL)
+ memcpy (cp - 1, suffix, suffix_len + 1);
+
/* Get the backend for this object file type. */
ebl = ebl_openbackend (elf);
+ if (ebl == NULL)
+ INTERNAL_ERROR (fullname);
/* We need the ELF header in a few places. */
ehdr = gelf_getehdr (elf, &ehdr_mem);
@@ -1530,13 +1573,6 @@
goto out;
}
- /* Create the full name of the file. */
- if (prefix != NULL)
- cp = mempcpy (cp, prefix, prefix_len);
- cp = mempcpy (cp, fname, fname_len);
- if (suffix != NULL)
- memcpy (cp - 1, suffix, suffix_len + 1);
-
/* Find the symbol table.
XXX Can there be more than one? Do we print all? Currently we do. */
diff --git a/src/objdump.c b/src/objdump.c
index a619674..82d7bcf 100644
--- a/src/objdump.c
+++ b/src/objdump.c
@@ -755,6 +755,9 @@
/* Get the backend for this object file type. */
Ebl *ebl = ebl_openbackend (elf);
+ if (ebl == NULL)
+ error (EXIT_FAILURE, 0,
+ gettext ("cannot create backend for elf file"));
printf ("%s: elf%d-%s\n\n",
fname, gelf_getclass (elf) == ELFCLASS32 ? 32 : 64,
diff --git a/src/readelf.c b/src/readelf.c
index cbb519d..685d0b1 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -11253,7 +11253,8 @@
if (strcmp (name, ".debug_info") == 0
|| strcmp (name, ".debug_info.dwo") == 0
|| strcmp (name, ".zdebug_info") == 0
- || strcmp (name, ".zdebug_info.dwo") == 0)
+ || strcmp (name, ".zdebug_info.dwo") == 0
+ || strcmp (name, ".gnu.debuglto_.debug_info") == 0)
{
print_debug_info_section (dwflmod, ebl, ehdr,
scn, shdr, dbg);
@@ -11339,7 +11340,11 @@
dbglen - 1) == 0
&& (scnlen == dbglen + 1
|| (scnlen == dbglen + 5
- && strstr (name, ".dwo") == name + dbglen + 1))))
+ && strstr (name, ".dwo") == name + dbglen + 1)))
+ || (scnlen > 14 /* .gnu.debuglto_ prefix. */
+ && strncmp (name, ".gnu.debuglto_", 14) == 0
+ && strcmp (&name[14], debug_sections[n].name) == 0)
+)
{
if ((print_debug_sections | implicit_debug_sections)
& debug_sections[n].bitmask)
diff --git a/src/size.c b/src/size.c
index a25d447..e49b64b 100644
--- a/src/size.c
+++ b/src/size.c
@@ -545,8 +545,11 @@
datasize += shdr->sh_size;
}
- printf ("%*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %*"
- PRIx64 " %s",
+ printf (radix == radix_decimal
+ ? "%*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRIx64 " %s"
+ : radix == radix_hex
+ ? "%#*" PRIx64 " %#*" PRIx64 " %#*" PRIx64 " %*" PRId64 " %*" PRIx64 " %s"
+ : "%#*" PRIo64 " %#*" PRIo64 " %#*" PRIo64 " %*" PRId64 " %*" PRIx64 " %s",
ddigits - 2, textsize,
ddigits - 2, datasize,
ddigits - 2, bsssize,
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 96e0642..99f9da9 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,44 @@
+2020-06-06 Mark Wielaard <mark@klomp.org>
+
+ * testfilesyms32.bz2: New test file.
+ * testfilesyms64.bz2: Likewise.
+ * run-nm-syms.sh: New test.
+ * Makefile.am (TESTS): Add run-nm-syms.sh.
+ (EXTRA_DIST): run-nm-syms.sh, testfilesyms32.bz2 and
+ testfilesyms64.bz2
+
+2020-05-08 Mark Wielaard <mark@klomp.org>
+
+ * elfputzdata.c (main): Explicitly check orig_buf is not NULL
+ before calling memcmp.
+
+2020-05-05 Mark Wielaard <mark@klomp.org>
+
+ * testfile-lto-gcc8.bz2: New test file.
+ * testfile-lto-gcc9.bz2: Likewise.
+ * Makefile.am (EXTRA_DIST): Add testfile-lto-gcc8.bz2 and
+ testfile-lto-gcc9.bz2.
+ * run-allfcts.sh: Add testfile-lto-gcc9 and testfile-lto-gcc8
+ tests.
+
+2020-05-05 Mark Wielaard <mark@klomp.org>
+
+ * testfile-lto-gcc10.bz2: New test file.
+ * Makefile.am (EXTRA_DIST): Add testfile-lto-gcc10.bz2.
+ * run-allfcts.sh: Add testfile-lto-gcc10 test.
+
+2020-04-17 Mark Wielaard <mark@klomp.org>
+
+ * test-subr.sh (testrun_on_self_obj): New function.
+ * run-varlocs-self.sh: Run testrun_on_self_exe and
+ testrun_on_self_lib with -e, run testrun_on_self_obj with
+ --exprlocs -e.
+
+2020-04-17 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (test-nlist$): New goal with minimal CFLAGS.
+ (test_nlist_CFLAGS): New variable.
+
2020-03-28 Frank Ch. Eigler <fche@redhat.com>
* run-debuginfod-find.sh: Test timestamps of archive-origin files.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 40b1c00..7db7db1 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -80,6 +80,14 @@
$(AM_LDFLAGS) $(LDFLAGS) $(backtrace_child_LDFLAGS) \
-o $@ $<
+# test_nlist checks its own symbol table, and expects various symbols
+# to be in the order as specified in the source file. Explicitly set
+# minimal CFLAGS
+test-nlist$(EXEEXT): test-nlist.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $<
+
TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
update1 update2 update3 update4 \
run-show-die-info.sh run-get-files.sh run-get-lines.sh \
@@ -102,7 +110,7 @@
run-ranlib-test2.sh run-ranlib-test3.sh run-ranlib-test4.sh \
run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
run-find-prologues.sh run-allregs.sh run-addrcfi.sh \
- run-dwarfcfi.sh \
+ run-dwarfcfi.sh run-nm-syms.sh \
run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \
run-readelf-compressed.sh \
run-readelf-const-values.sh \
@@ -210,6 +218,8 @@
testfile9.bz2 testfile10.bz2 testfile11.bz2 testfile12.bz2 \
testfile13.bz2 run-strip-test3.sh run-allfcts.sh \
testfile_class_func.bz2 testfile_nested_funcs.bz2 \
+ testfile-lto-gcc10.bz2 \
+ testfile-lto-gcc9.bz2 testfile-lto-gcc8.bz2 \
run-line2addr.sh run-elflint-test.sh testfile14.bz2 \
run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \
run-strip-test7.sh run-strip-test8.sh run-strip-groups.sh \
@@ -233,6 +243,7 @@
run-elflint-self.sh run-ranlib-test.sh run-ranlib-test2.sh \
run-ranlib-test3.sh run-ranlib-test4.sh \
run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
+ run-nm-syms.sh testfilesyms32.bz2 testfilesyms64.bz2 \
run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \
run-readelf-compressed.sh \
run-readelf-const-values.sh testfile-const-values.debug.bz2 \
@@ -557,6 +568,7 @@
sectiondump_LDADD = $(libelf)
showptable_LDADD = $(libelf)
hash_LDADD = $(libelf)
+test_nlist_CFLAGS =-g -O0
test_nlist_LDADD = $(libelf)
msg_tst_LDADD = $(libelf)
newscn_LDADD = $(libelf)
diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c
index 66ab77b..0d9c020 100644
--- a/tests/elfputzdata.c
+++ b/tests/elfputzdata.c
@@ -105,14 +105,17 @@
printf ("Unexpected data size for orig section %zd\n", idx);
return -1;
}
- char *orig_buf = malloc (d->d_size);
- if (orig_size > 0 && orig_buf == NULL)
- {
- printf ("No memory to copy section %zd data\n", idx);
- return -1;
- }
+ char *orig_buf = NULL;
if (orig_size > 0)
- memcpy (orig_buf, d->d_buf, orig_size);
+ {
+ orig_buf = malloc (d->d_size);
+ if (orig_buf == NULL)
+ {
+ printf ("No memory to copy section %zd data\n", idx);
+ return -1;
+ }
+ memcpy (orig_buf, d->d_buf, orig_size);
+ }
bool forced = false;
if (gnu)
@@ -175,7 +178,8 @@
}
if (new_size == orig_size
- && memcmp (orig_buf, d->d_buf, orig_size) == 0)
+ && (orig_buf == NULL
+ || memcmp (orig_buf, d->d_buf, orig_size) == 0))
{
printf ("section %zd didn't compress\n", idx);
return -1;
@@ -211,7 +215,8 @@
return -1;
}
if (newer_size != orig_size
- && memcmp (orig_buf, d->d_buf, orig_size) != 0)
+ && (orig_buf == NULL
+ || memcmp (orig_buf, d->d_buf, orig_size) != 0))
{
printf ("section %zd didn't correctly uncompress\n", idx);
return -1;
diff --git a/tests/run-allfcts.sh b/tests/run-allfcts.sh
index 6eaf13c..9c0a55d 100755
--- a/tests/run-allfcts.sh
+++ b/tests/run-allfcts.sh
@@ -91,4 +91,83 @@
/home/mark/src/tests/nested/class_func.cxx:13:main
EOF
+# = testfile-lto.h =
+# struct t
+# {
+# int *p;
+# int c;
+# };
+#
+# extern int foo (int i, struct t *t);
+
+# = testfile-lto-func.c =
+# #include "testfile-lto.h"
+#
+# int
+# foo (int i, struct t *t)
+# {
+# int j, res = 0;
+# for (j = 0; j < i && j < t->c; j++)
+# res += t->p[j];
+#
+# return res;
+# }
+
+# = testfile-lto-main.c =
+# #include "testfile-lto.h"
+#
+# static struct t g;
+#
+# int
+# main (int argc, char **argv)
+# {
+# int i;
+# int j[argc];
+# g.c = argc;
+# g.p = j;
+# for (i = 0; i < argc; i++)
+# j[i] = (int) argv[i][0];
+# return foo (3, &g);
+# }
+
+# Using gcc (GCC) 10.0.1 20200430 (Red Hat 10.0.1-0.13)
+# gcc -g -O2 -flto -c testfile-lto-func.c
+# gcc -g -O2 -flto -c testfile-lto-main.c
+# gcc -g -O2 -flto -o testfile-lto-gcc10 testfile-lto-func.o testfile-lto-main.o
+
+testfiles testfile-lto-gcc10
+
+testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc10 <<\EOF
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+/home/mark/src/tests/testfile-lto-main.c:6:main
+EOF
+
+# Using gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
+# gcc -g -O2 -flto -c testfile-lto-func.c
+# gcc -g -O2 -flto -c testfile-lto-main.c
+# gcc -g -O2 -flto -o testfile-lto-gcc8 testfile-lto-func.o testfile-lto-main.o
+
+testfiles testfile-lto-gcc8
+
+testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc8 <<\EOF
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+EOF
+
+# gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2)
+# gcc -g -O2 -flto -c testfile-lto-func.c
+# gcc -g -O2 -flto -c testfile-lto-main.c
+# gcc -g -O2 -flto -o testfile-lto-gcc9 testfile-lto-func.o testfile-lto-main.o
+
+testfiles testfile-lto-gcc9
+
+testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc9 <<\EOF
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+/home/mark/src/tests/testfile-lto-main.c:6:main
+EOF
+
exit 0
diff --git a/tests/run-nm-syms.sh b/tests/run-nm-syms.sh
new file mode 100755
index 0000000..ddf0922
--- /dev/null
+++ b/tests/run-nm-syms.sh
@@ -0,0 +1,166 @@
+#! /bin/sh
+# Copyright (C) 2020 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# void *SYM1;
+# void *SYM2 = 0;
+# extern void *SYM3;
+# static void *SYM4;
+#
+# void *SYM6 = &SYM3;
+# static void *SYM7 = &SYM3;
+#
+# void *SYM8 __attribute__((__weak__));
+#
+# void FUN1 (void) { }
+# static void FUN2 (void) { }
+# extern void FUN3 (void);
+#
+# void *FREF = FUN3;
+#
+# void __attribute__((__weak__)) FUN4 (void) { };
+#
+# int NUM0 = 0; __asm__(".type NUM0,%gnu_unique_object");
+# int __thread NUM1 = 1;
+#
+# gcc -m64 -c syms.c -o testfilesyms64
+# gcc -m32 -c syms.c -o testfilesyms32
+
+testfiles testfilesyms32 testfilesyms64
+
+testrun_compare ${abs_top_builddir}/src/nm --format=bsd testfilesyms32 <<\EOF
+00000008 D FREF
+00000000 T FUN1
+00000010 t FUN2
+ U FUN3
+00000020 W FUN4
+00000008 u NUM0
+00000000 D NUM1
+00000004 C SYM1
+00000000 B SYM2
+ U SYM3
+0000000c b SYM4
+00000000 D SYM6
+00000004 d SYM7
+00000004 V SYM8
+ U _GLOBAL_OFFSET_TABLE_
+00000000 T __x86.get_pc_thunk.ax
+EOF
+
+testrun_compare ${abs_top_builddir}/src/nm --format=posix testfilesyms32 <<\EOF
+FREF D 00000008 00000004
+FUN1 T 00000000 00000010
+FUN2 t 00000010 00000010
+FUN3 U
+FUN4 W 00000020 00000010
+NUM0 u 00000008 00000004
+NUM1 D 00000000 00000004
+SYM1 C 00000004 00000004
+SYM2 B 00000000 00000004
+SYM3 U
+SYM4 b 0000000c 00000004
+SYM6 D 00000000 00000004
+SYM7 d 00000004 00000004
+SYM8 V 00000004 00000004
+_GLOBAL_OFFSET_TABLE_ U
+__x86.get_pc_thunk.ax T 00000000 00000000
+EOF
+
+testrun_compare ${abs_top_builddir}/src/nm --format=sysv testfilesyms32 <<\EOF
+
+
+Symbols from testfilesyms32:
+
+Name Value Class Type Size Line Section
+
+FREF |00000008|GLOBAL|OBJECT |00000004| |.data.rel
+FUN1 |00000000|GLOBAL|FUNC |00000010| |.text
+FUN2 |00000010|LOCAL |FUNC |00000010| |.text
+FUN3 | |GLOBAL|NOTYPE | | |UNDEF
+FUN4 |00000020|WEAK |FUNC |00000010| |.text
+NUM0 |00000008|UNIQUE|OBJECT |00000004| |.bss
+NUM1 |00000000|GLOBAL|TLS |00000004| |.tdata
+SYM1 |00000004|GLOBAL|OBJECT |00000004| |COMMON
+SYM2 |00000000|GLOBAL|OBJECT |00000004| |.bss
+SYM3 | |GLOBAL|NOTYPE | | |UNDEF
+SYM4 |0000000c|LOCAL |OBJECT |00000004| |.bss
+SYM6 |00000000|GLOBAL|OBJECT |00000004| |.data.rel
+SYM7 |00000004|LOCAL |OBJECT |00000004| |.data.rel
+SYM8 |00000004|WEAK |OBJECT |00000004| |.bss
+_GLOBAL_OFFSET_TABLE_| |GLOBAL|NOTYPE | | |UNDEF
+__x86.get_pc_thunk.ax|00000000|GLOBAL|FUNC |00000000| |.text.__x86.get_pc_thunk.ax
+EOF
+
+testrun_compare ${abs_top_builddir}/src/nm --format=bsd testfilesyms64 <<\EOF
+0000000000000010 D FREF
+0000000000000000 T FUN1
+0000000000000007 t FUN2
+ U FUN3
+000000000000000e W FUN4
+0000000000000010 u NUM0
+0000000000000000 D NUM1
+0000000000000008 C SYM1
+0000000000000000 B SYM2
+ U SYM3
+0000000000000018 b SYM4
+0000000000000000 D SYM6
+0000000000000008 d SYM7
+0000000000000008 V SYM8
+EOF
+
+testrun_compare ${abs_top_builddir}/src/nm --format=posix testfilesyms64 <<\EOF
+FREF D 0000000000000010 0000000000000008
+FUN1 T 0000000000000000 0000000000000007
+FUN2 t 0000000000000007 0000000000000007
+FUN3 U
+FUN4 W 000000000000000e 0000000000000007
+NUM0 u 0000000000000010 0000000000000004
+NUM1 D 0000000000000000 0000000000000004
+SYM1 C 0000000000000008 0000000000000008
+SYM2 B 0000000000000000 0000000000000008
+SYM3 U
+SYM4 b 0000000000000018 0000000000000008
+SYM6 D 0000000000000000 0000000000000008
+SYM7 d 0000000000000008 0000000000000008
+SYM8 V 0000000000000008 0000000000000008
+EOF
+
+testrun_compare ${abs_top_builddir}/src/nm --format=sysv testfilesyms64 <<\EOF
+
+
+Symbols from testfilesyms64:
+
+Name Value Class Type Size Line Section
+
+FREF |0000000000000010|GLOBAL|OBJECT |0000000000000008| |.data.rel
+FUN1 |0000000000000000|GLOBAL|FUNC |0000000000000007| |.text
+FUN2 |0000000000000007|LOCAL |FUNC |0000000000000007| |.text
+FUN3 | |GLOBAL|NOTYPE | | |UNDEF
+FUN4 |000000000000000e|WEAK |FUNC |0000000000000007| |.text
+NUM0 |0000000000000010|UNIQUE|OBJECT |0000000000000004| |.bss
+NUM1 |0000000000000000|GLOBAL|TLS |0000000000000004| |.tdata
+SYM1 |0000000000000008|GLOBAL|OBJECT |0000000000000008| |COMMON
+SYM2 |0000000000000000|GLOBAL|OBJECT |0000000000000008| |.bss
+SYM3 | |GLOBAL|NOTYPE | | |UNDEF
+SYM4 |0000000000000018|LOCAL |OBJECT |0000000000000008| |.bss
+SYM6 |0000000000000000|GLOBAL|OBJECT |0000000000000008| |.data.rel
+SYM7 |0000000000000008|LOCAL |OBJECT |0000000000000008| |.data.rel
+SYM8 |0000000000000008|WEAK |OBJECT |0000000000000008| |.bss
+EOF
+
+exit 0
diff --git a/tests/run-varlocs-self.sh b/tests/run-varlocs-self.sh
index 54b6a8d..5454fc7 100755
--- a/tests/run-varlocs-self.sh
+++ b/tests/run-varlocs-self.sh
@@ -19,4 +19,6 @@
# Make sure varlocs doesn't crash, doesn't trigger self-check/asserts
# or leaks running under valgrind.
-testrun_on_self_quiet ${abs_top_builddir}/tests/varlocs -e
+testrun_on_self_exe ${abs_top_builddir}/tests/varlocs -e
+testrun_on_self_lib ${abs_top_builddir}/tests/varlocs -e
+testrun_on_self_obj ${abs_top_builddir}/tests/varlocs --exprlocs -e
diff --git a/tests/test-subr.sh b/tests/test-subr.sh
index e768c1e..411e5f2 100644
--- a/tests/test-subr.sh
+++ b/tests/test-subr.sh
@@ -168,6 +168,19 @@
if test $exit_status != 0; then exit $exit_status; fi
}
+testrun_on_self_obj()
+{
+ exit_status=0
+
+ for file in $self_test_files_obj; do
+ testrun $* $file \
+ || { echo "*** failure in $* $file"; exit_status=1; }
+ done
+
+ # Only exit if something failed
+ if test $exit_status != 0; then exit $exit_status; fi
+}
+
# Compress the files first. Compress both debug sections and symtab.
testrun_on_self_compressed()
{
diff --git a/tests/testfile-lto-gcc10.bz2 b/tests/testfile-lto-gcc10.bz2
new file mode 100755
index 0000000..e8ef621
--- /dev/null
+++ b/tests/testfile-lto-gcc10.bz2
Binary files differ
diff --git a/tests/testfile-lto-gcc8.bz2 b/tests/testfile-lto-gcc8.bz2
new file mode 100755
index 0000000..cf744d9
--- /dev/null
+++ b/tests/testfile-lto-gcc8.bz2
Binary files differ
diff --git a/tests/testfile-lto-gcc9.bz2 b/tests/testfile-lto-gcc9.bz2
new file mode 100755
index 0000000..df50361
--- /dev/null
+++ b/tests/testfile-lto-gcc9.bz2
Binary files differ
diff --git a/tests/testfilesyms32.bz2 b/tests/testfilesyms32.bz2
new file mode 100644
index 0000000..b3b7812
--- /dev/null
+++ b/tests/testfilesyms32.bz2
Binary files differ
diff --git a/tests/testfilesyms64.bz2 b/tests/testfilesyms64.bz2
new file mode 100644
index 0000000..cdec381
--- /dev/null
+++ b/tests/testfilesyms64.bz2
Binary files differ
diff --git a/version.h b/version.h
index 651f9fb..afcb80d 100644
--- a/version.h
+++ b/version.h
@@ -30,7 +30,7 @@
#ifndef _ELFUTILS_VERSION_H
#define _ELFUTILS_VERSION_H 1
-#define _ELFUTILS_VERSION 173
+#define _ELFUTILS_VERSION 180
#define _ELFUTILS_PREREQ(major, minor) \
(_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))