From 09034ec0ba83af713fbdb80ca4ce531a85839698 Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Thu, 18 Nov 2021 08:10:54 +0000 Subject: [PATCH] branch-updates # DP: updates from the binutils-2.37 branch # DP: updates from the binutils-2.37 branch # git diff 116a737f438d03a1bd6aa706b6ea0b4022f3b7e2 11209cc7534d3f1175e7c6ab2cc6e89ae7388ae1 Gbp-Pq: Name branch-updates.diff --- bfd/ChangeLog | 18 + bfd/development.sh | 2 +- bfd/elf.c | 21 +- bfd/elf32-ppc.c | 6 +- bfd/elf64-ppc.c | 36 +- bfd/format.c | 1 + bfd/plugin.c | 8 + bfd/po/ru.po | 3896 +++++++++++++------------ bfd/version.h | 2 +- bfd/version.m4 | 2 +- binutils/ChangeLog | 8 + binutils/ar.c | 3 + binutils/dwarf.c | 1 - binutils/objcopy.c | 1 + binutils/objdump.c | 2 +- binutils/readelf.c | 2 - binutils/rename.c | 2 + cpu/mep.opc | 10 +- etc/texi2pod.pl | 2 + gas/testsuite/gas/ppc/power4.d | 1 + gas/testsuite/gas/ppc/test1elf32.d | 1 + gas/testsuite/gas/ppc/test1elf64.d | 1 + gas/testsuite/gas/s390/zarch-arch14.d | 3 +- gas/testsuite/gas/s390/zarch-arch14.s | 3 +- gold/ChangeLog | 6 + gold/gc.h | 4 +- gold/incremental.cc | 12 +- gold/layout.cc | 3 +- gold/layout.h | 9 +- gold/object.cc | 2 +- gold/object.h | 89 +- gold/options.h | 2 +- gold/output.cc | 158 +- gold/output.h | 110 +- gold/powerpc.cc | 820 +++--- gold/s390.cc | 17 +- gold/symtab.h | 13 +- gold/target.h | 20 +- include/ChangeLog | 9 + include/elf/common.h | 6 - ld/ChangeLog | 19 +- ld/ldgram.y | 20 +- ld/ldlex.h | 2 +- ld/ldlex.l | 31 +- ld/scripttempl/pru.sc | 7 +- ld/testsuite/ld-plugin/lto.exp | 34 + ld/testsuite/ld-plugin/pr28138-1.c | 6 + ld/testsuite/ld-plugin/pr28138-2.c | 6 + ld/testsuite/ld-plugin/pr28138-3.c | 6 + ld/testsuite/ld-plugin/pr28138-4.c | 6 + ld/testsuite/ld-plugin/pr28138-5.c | 6 + ld/testsuite/ld-plugin/pr28138-6.c | 6 + ld/testsuite/ld-plugin/pr28138-7.c | 6 + ld/testsuite/ld-plugin/pr28138.c | 20 + ld/testsuite/ld-powerpc/tlsexe.r | 13 + ld/testsuite/ld-powerpc/tlsexe32.r | 12 + ld/testsuite/ld-powerpc/tlsexe32no.r | 12 + ld/testsuite/ld-powerpc/tlsexeno.r | 13 + ld/testsuite/ld-powerpc/tlsexenors.r | 13 + ld/testsuite/ld-powerpc/tlsexers.r | 13 + ld/testsuite/ld-powerpc/tlsexetoc.r | 13 + ld/testsuite/ld-powerpc/tlsexetocrs.r | 13 + ld/testsuite/ld-powerpc/tlsget.d | 23 +- ld/testsuite/ld-powerpc/tlsget.wf | 4 +- ld/testsuite/ld-powerpc/tlsget2.d | 16 +- ld/testsuite/ld-powerpc/tlsget2.wf | 2 +- ld/testsuite/ld-powerpc/tlsso.r | 12 + ld/testsuite/ld-powerpc/tlsso32.r | 11 + ld/testsuite/ld-powerpc/tlstocso.r | 12 + libiberty/ChangeLog | 6 + libiberty/rust-demangle.c | 4 +- opcodes/s390-opc.c | 2 + opcodes/s390-opc.txt | 4 +- 73 files changed, 3024 insertions(+), 2661 deletions(-) create mode 100644 ld/testsuite/ld-plugin/pr28138-1.c create mode 100644 ld/testsuite/ld-plugin/pr28138-2.c create mode 100644 ld/testsuite/ld-plugin/pr28138-3.c create mode 100644 ld/testsuite/ld-plugin/pr28138-4.c create mode 100644 ld/testsuite/ld-plugin/pr28138-5.c create mode 100644 ld/testsuite/ld-plugin/pr28138-6.c create mode 100644 ld/testsuite/ld-plugin/pr28138-7.c create mode 100644 ld/testsuite/ld-plugin/pr28138.c diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 75ca29c09..8782224e8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,21 @@ +2021-09-07 Luis Machado + + Revert: [AArch64] MTE corefile support + + 2021-05-21 Luis Machado + + * elf.c (elfcore_make_memtag_note_section): New function. + (elfcore_grok_note): Handle NT_MEMTAG note types. + +2021-07-21 Nick Clifton + + * po/ru.po: Updated Russian translation. + +2021-07-18 Nick Clifton + + * version.m4 (BFD_VERSION): Set to 2.37/0 + * development.sh (development): Set to true. + 2021-07-18 Nick Clifton * 2.37 release. diff --git a/bfd/development.sh b/bfd/development.sh index eb9762e44..a376b02d8 100644 --- a/bfd/development.sh +++ b/bfd/development.sh @@ -16,7 +16,7 @@ # along with this program. If not, see . # Controls whether to enable development-mode features by default. -development=false +development=true # Indicate whether this is a release branch. experimental=false diff --git a/bfd/elf.c b/bfd/elf.c index de5abafab..7a722841a 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -7984,7 +7984,7 @@ _bfd_elf_fixup_group_sections (bfd *ibfd, asection *discarded) isec->flags |= SEC_EXCLUDE; } } - else + else if (isec->output_section != NULL) { /* Adjust the output section size when called from objcopy. */ @@ -9599,23 +9599,6 @@ elfcore_make_auxv_note_section (bfd *abfd, Elf_Internal_Note *note, return true; } -static bool -elfcore_make_memtag_note_section (bfd *abfd, Elf_Internal_Note *note, - size_t offs) -{ - asection *sect = bfd_make_section_anyway_with_flags (abfd, ".memtag", - SEC_HAS_CONTENTS); - - if (sect == NULL) - return false; - - sect->size = note->descsz - offs; - sect->filepos = note->descpos + offs; - sect->alignment_power = 1 + bfd_get_arch_size (abfd) / 32; - - return true; -} - /* prstatus_t exists on: solaris 2.5+ linux 2.[01] + glibc @@ -10676,8 +10659,6 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note) return elfcore_make_note_pseudosection (abfd, ".note.linuxcore.siginfo", note); - case NT_MEMTAG: - return elfcore_make_memtag_note_section (abfd, note, 0); } } diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 34a6b3fd8..93fbadf61 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -19,8 +19,10 @@ Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -/* Don't generate unused section symbols. */ -#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS false +/* The assembler should generate a full set of section symbols even + when they appear unused. The linux kernel build tool recordmcount + needs them. */ +#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS true #include "sysdep.h" #include diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index a4a05302a..38c2ccf78 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -25,8 +25,10 @@ http://www.linuxbase.org/spec/ELF/ppc64/PPC-elf64abi.txt, and http://www.linuxbase.org/spec/ELF/ppc64/spec/book1.html */ -/* Don't generate unused section symbols. */ -#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS false +/* The assembler should generate a full set of section symbols even + when they appear unused. The linux kernel build tool recordmcount + needs them. */ +#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS true #include "sysdep.h" #include @@ -6241,7 +6243,8 @@ tls_get_addr_epilogue (bfd *obfd, bfd_byte *p, struct ppc_link_hash_table *htab) /* Called via elf_link_hash_traverse to transfer dynamic linking information on function code symbol entries to their corresponding - function descriptor symbol entries. */ + function descriptor symbol entries. Must not be called twice for + any given code symbol. */ static bool func_desc_adjust (struct elf_link_hash_entry *h, void *inf) @@ -6299,7 +6302,11 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf) if (ent->plt.refcount > 0) break; if (ent == NULL) - return true; + { + if (fdh != NULL && fdh->fake) + _bfd_elf_link_hash_hide_symbol (info, &fdh->elf, true); + return true; + } } /* Create a descriptor as undefined if necessary. */ @@ -6424,12 +6431,6 @@ ppc64_elf_edit (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info) = (htab->elf.hgot->other & ~ELF_ST_VISIBILITY (-1)) | STV_HIDDEN; } - if (htab->need_func_desc_adj) - { - elf_link_hash_traverse (&htab->elf, func_desc_adjust, info); - htab->need_func_desc_adj = 0; - } - return true; } @@ -7743,6 +7744,13 @@ ppc64_elf_tls_setup (struct bfd_link_info *info) if (htab == NULL) return false; + /* Move dynamic linking info to the function descriptor sym. */ + if (htab->need_func_desc_adj) + { + elf_link_hash_traverse (&htab->elf, func_desc_adjust, info); + htab->need_func_desc_adj = 0; + } + if (abiversion (info->output_bfd) == 1) htab->opd_abi = 1; @@ -7790,10 +7798,6 @@ ppc64_elf_tls_setup (struct bfd_link_info *info) tga = elf_link_hash_lookup (&htab->elf, ".__tls_get_addr", false, false, true); htab->tls_get_addr = ppc_elf_hash_entry (tga); - - /* Move dynamic linking info to the function descriptor sym. */ - if (tga != NULL) - func_desc_adjust (tga, info); tga_fd = elf_link_hash_lookup (&htab->elf, "__tls_get_addr", false, false, true); htab->tls_get_addr_fd = ppc_elf_hash_entry (tga_fd); @@ -7801,8 +7805,6 @@ ppc64_elf_tls_setup (struct bfd_link_info *info) desc = elf_link_hash_lookup (&htab->elf, ".__tls_get_addr_desc", false, false, true); htab->tga_desc = ppc_elf_hash_entry (desc); - if (desc != NULL) - func_desc_adjust (desc, info); desc_fd = elf_link_hash_lookup (&htab->elf, "__tls_get_addr_desc", false, false, true); htab->tga_desc_fd = ppc_elf_hash_entry (desc_fd); @@ -7813,8 +7815,6 @@ ppc64_elf_tls_setup (struct bfd_link_info *info) opt = elf_link_hash_lookup (&htab->elf, ".__tls_get_addr_opt", false, false, true); - if (opt != NULL) - func_desc_adjust (opt, info); opt_fd = elf_link_hash_lookup (&htab->elf, "__tls_get_addr_opt", false, false, true); if (opt_fd != NULL diff --git a/bfd/format.c b/bfd/format.c index 5d08d1d64..408c98469 100644 --- a/bfd/format.c +++ b/bfd/format.c @@ -151,6 +151,7 @@ bfd_reinit (bfd *abfd, unsigned int section_id, bfd_cleanup cleanup) abfd->tdata.any = NULL; abfd->arch_info = &bfd_default_arch_struct; abfd->flags &= BFD_FLAGS_SAVED; + abfd->build_id = NULL; bfd_section_list_clear (abfd); } diff --git a/bfd/plugin.c b/bfd/plugin.c index 6cfa2b664..3bab8febe 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -291,6 +291,14 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd) && !bfd_is_thin_archive (abfd->my_archive)) abfd = abfd->my_archive; + /* Close the file descriptor if there is no archive plugin file + descriptor. */ + if (abfd->archive_plugin_fd == -1) + { + close (fd); + return; + } + abfd->archive_plugin_fd_open_count--; /* Dup the archive plugin file descriptor for later use, which will be closed by _bfd_archive_close_and_cleanup. */ diff --git a/bfd/po/ru.po b/bfd/po/ru.po index 5e3211cfe..ede20f1ec 100644 --- a/bfd/po/ru.po +++ b/bfd/po/ru.po @@ -2,13 +2,13 @@ # Copyright (C) 2003, 2005, 2006, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. # -# Yuri Kozlov , 2009, 2010, 2011, 2012, 2018, 2019, 2020. +# Yuri Kozlov , 2009, 2010, 2011, 2012, 2018, 2019, 2020, 2021. msgid "" msgstr "" -"Project-Id-Version: bfd 2.34.90\n" +"Project-Id-Version: bfd 2.36.90\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2020-07-04 10:26+0100\n" -"PO-Revision-Date: 2020-07-30 19:54+0300\n" +"POT-Creation-Date: 2021-07-03 15:02+0100\n" +"PO-Revision-Date: 2021-07-21 08:19+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.12.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: aout-cris.c:196 @@ -34,21 +34,21 @@ msgstr "%pB: импортирован неподдерживаемый тип п msgid "%pB: bad relocation record imported: %d" msgstr "%pB: импортирована некорректная запись о перемещении: %d" -#: aoutx.h:1265 aoutx.h:1613 pdp11.c:1236 pdp11.c:1510 +#: aoutx.h:1265 aoutx.h:1613 pdp11.c:1238 pdp11.c:1512 #, c-format msgid "%pB: can not represent section `%pA' in a.out object file format" msgstr "%pB: нельзя представить раздел «%pA» в формате объектного файла a.out" -#: aoutx.h:1577 pdp11.c:1482 +#: aoutx.h:1577 pdp11.c:1484 #, c-format msgid "%pB: can not represent section for symbol `%s' in a.out object file format" msgstr "%pB: нельзя представить раздел для символа «%s» в формате объектного файла a.out" -#: aoutx.h:1580 vms-alpha.c:8040 +#: aoutx.h:1580 vms-alpha.c:8038 msgid "*unknown*" msgstr "*неизвестно*" -#: aoutx.h:1716 pdp11.c:1578 +#: aoutx.h:1716 pdp11.c:1580 #, c-format msgid "%pB: invalid string offset % >= %" msgstr "%pB: недопустимое смещение строки % >= %" @@ -58,52 +58,53 @@ msgstr "%pB: недопустимое смещение строки % >= msgid "%pB: unsupported AOUT relocation size: %d" msgstr "%pB: неподдерживаемый размер перемещения AOUT: %d" -#: aoutx.h:2412 aoutx.h:2430 pdp11.c:2058 +#: aoutx.h:2412 aoutx.h:2430 pdp11.c:2060 #, c-format msgid "%pB: attempt to write out unknown reloc type" msgstr "%pB: попытка записать неизвестный тип перемещения" -#: aoutx.h:4087 pdp11.c:3441 +#: aoutx.h:4085 pdp11.c:3441 #, c-format msgid "%pB: unsupported relocation type" msgstr "%pB: неподдерживаемый тип перемещения" #. Unknown relocation. -#: aoutx.h:4408 coff-alpha.c:601 coff-alpha.c:1512 coff-rs6000.c:2758 +#: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1518 coff-rs6000.c:2916 #: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:798 -#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:532 -#: elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1062 elf32-bfin.c:4677 +#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:532 +#: elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1062 elf32-bfin.c:4687 #: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429 -#: elf32-csky.c:990 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544 -#: elf32-dlx.c:546 elf32-epiphany.c:372 elf32-fr30.c:381 elf32-frv.c:2558 -#: elf32-frv.c:6239 elf32-ft32.c:306 elf32-h8300.c:302 elf32-i386.c:400 -#: elf32-ip2k.c:1240 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305 -#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2232 elf32-m68hc11.c:390 +#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544 +#: elf32-dlx.c:546 elf32-epiphany.c:372 elf32-fr30.c:381 elf32-frv.c:2559 +#: elf32-frv.c:6240 elf32-ft32.c:305 elf32-h8300.c:302 elf32-i386.c:400 +#: elf32-ip2k.c:1240 elf32-iq2000.c:442 elf32-lm32.c:496 elf32-m32c.c:305 +#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209 elf32-m68hc11.c:390 #: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440 -#: elf32-mep.c:389 elf32-metag.c:874 elf32-microblaze.c:692 -#: elf32-microblaze.c:965 elf32-mips.c:2229 elf32-moxie.c:137 -#: elf32-msp430.c:653 elf32-msp430.c:663 elf32-mt.c:241 elf32-nds32.c:3237 -#: elf32-nds32.c:3263 elf32-nds32.c:5033 elf32-nios2.c:3022 elf32-or1k.c:1040 -#: elf32-pj.c:326 elf32-ppc.c:901 elf32-ppc.c:914 elf32-pru.c:423 +#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:690 +#: elf32-microblaze.c:961 elf32-mips.c:2231 elf32-moxie.c:137 +#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3237 +#: elf32-nds32.c:3263 elf32-nds32.c:5029 elf32-nios2.c:3019 elf32-or1k.c:1070 +#: elf32-pj.c:326 elf32-ppc.c:898 elf32-ppc.c:911 elf32-pru.c:423 #: elf32-rl78.c:291 elf32-rx.c:313 elf32-rx.c:322 elf32-s12z.c:296 -#: elf32-s390.c:347 elf32-sh.c:438 elf32-spu.c:163 elf32-tic6x.c:1498 -#: elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537 elf32-tic6x.c:2583 -#: elf32-tilepro.c:800 elf32-v850.c:1898 elf32-v850.c:1920 elf32-v850.c:4270 -#: elf32-vax.c:290 elf32-visium.c:481 elf32-wasm32.c:105 elf32-xc16x.c:250 -#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:522 -#: elf32-xtensa.c:556 elf32-z80.c:331 elf64-alpha.c:1113 elf64-alpha.c:4067 -#: elf64-alpha.c:4215 elf64-bpf.c:322 elf64-ia64-vms.c:254 -#: elf64-ia64-vms.c:3429 elf64-mips.c:3958 elf64-mips.c:3974 elf64-mmix.c:1264 -#: elf64-nfp.c:238 elf64-ppc.c:1014 elf64-ppc.c:1366 elf64-ppc.c:1375 -#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:281 elfn32-mips.c:3786 -#: elfxx-ia64.c:324 elfxx-riscv.c:954 elfxx-sparc.c:589 elfxx-sparc.c:639 -#: elfxx-tilegx.c:909 elfxx-tilegx.c:949 elfnn-aarch64.c:2215 -#: elfnn-aarch64.c:2313 elfnn-ia64.c:213 elfnn-ia64.c:3824 +#: elf32-s390.c:347 elf32-score.c:2392 elf32-score7.c:2231 elf32-sh.c:437 +#: elf32-spu.c:163 elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 +#: elf32-tic6x.c:1537 elf32-tic6x.c:2583 elf32-tilepro.c:792 elf32-v850.c:1902 +#: elf32-v850.c:1924 elf32-v850.c:4249 elf32-vax.c:289 elf32-visium.c:481 +#: elf32-wasm32.c:105 elf32-xc16x.c:250 elf32-xgate.c:418 +#: elf32-xstormy16.c:395 elf32-xtensa.c:522 elf32-xtensa.c:556 elf32-z80.c:331 +#: elf64-alpha.c:1114 elf64-alpha.c:4072 elf64-alpha.c:4220 elf64-bpf.c:325 +#: elf64-ia64-vms.c:255 elf64-ia64-vms.c:3431 elf64-mips.c:3958 +#: elf64-mips.c:3974 elf64-mmix.c:1264 elf64-nfp.c:238 elf64-ppc.c:1021 +#: elf64-ppc.c:1373 elf64-ppc.c:1382 elf64-s390.c:328 elf64-s390.c:378 +#: elf64-x86-64.c:279 elfn32-mips.c:3788 elfxx-ia64.c:324 elfxx-riscv.c:970 +#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947 +#: elfnn-aarch64.c:2215 elfnn-aarch64.c:2313 elfnn-ia64.c:214 +#: elfnn-ia64.c:3820 #, c-format msgid "%pB: unsupported relocation type %#x" msgstr "%pB: неподдерживаемый тип перемещения %#x" -#: aoutx.h:5435 pdp11.c:3864 +#: aoutx.h:5432 pdp11.c:3864 #, c-format msgid "%pB: relocatable link from %s to %s not supported" msgstr "%pB: перемещаемая ссылка из %s в %s не поддерживается" @@ -113,132 +114,132 @@ msgstr "%pB: перемещаемая ссылка из %s в %s не подде msgid "%pB: cannot allocate memory for local GOT entries" msgstr "%pB: невозможно выделить память для локальных элементов GOT" -#: archive.c:2249 +#: archive.c:2241 msgid "warning: writing archive was slow: rewriting timestamp" msgstr "предупреждение: медленная запись в архив: перезаписывается метка времени" -#: archive.c:2316 archive.c:2376 elflink.c:4545 linker.c:1428 +#: archive.c:2308 archive.c:2368 elflink.c:4611 linker.c:1427 #, c-format msgid "%pB: plugin needed to handle lto object" msgstr "%pB: для обработки объекта lto требуется модуль" -#: archive.c:2602 +#: archive.c:2594 msgid "Reading archive file mod timestamp" msgstr "Чтение метки времени изменения архивного файла" -#: archive.c:2626 +#: archive.c:2618 msgid "Writing updated armap timestamp" msgstr "Запись обновлённой метки времени armap" -#: bfd.c:677 +#: bfd.c:681 msgid "no error" msgstr "нет ошибки" -#: bfd.c:678 +#: bfd.c:682 msgid "system call error" msgstr "ошибка системного вызова" -#: bfd.c:679 +#: bfd.c:683 msgid "invalid bfd target" msgstr "неверная цель bfd" -#: bfd.c:680 +#: bfd.c:684 msgid "file in wrong format" msgstr "файл в неправильном формате" -#: bfd.c:681 +#: bfd.c:685 msgid "archive object file in wrong format" msgstr "архивный объектный файл в неправильном формате" -#: bfd.c:682 +#: bfd.c:686 msgid "invalid operation" msgstr "неверная операция" -#: bfd.c:683 +#: bfd.c:687 msgid "memory exhausted" msgstr "закончилась память" -#: bfd.c:684 +#: bfd.c:688 msgid "no symbols" msgstr "нет символов" -#: bfd.c:685 +#: bfd.c:689 msgid "archive has no index; run ranlib to add one" msgstr "архив без индекса; запустите ranlib для создания" -#: bfd.c:686 +#: bfd.c:690 msgid "no more archived files" msgstr "архивные файлы закончились" -#: bfd.c:687 +#: bfd.c:691 msgid "malformed archive" msgstr "искажённый архив" -#: bfd.c:688 +#: bfd.c:692 msgid "DSO missing from command line" msgstr "в командной строке не указан DSO" -#: bfd.c:689 +#: bfd.c:693 msgid "file format not recognized" msgstr "формат файла не распознан" -#: bfd.c:690 +#: bfd.c:694 msgid "file format is ambiguous" msgstr "формат файла неоднозначен" -#: bfd.c:691 +#: bfd.c:695 msgid "section has no contents" msgstr "раздел не имеет содержимого" -#: bfd.c:692 +#: bfd.c:696 msgid "nonrepresentable section on output" msgstr "раздел, непредставимый для вывода" -#: bfd.c:693 +#: bfd.c:697 msgid "symbol needs debug section which does not exist" msgstr "для символа требуется отладочный раздел, но его не существует" -#: bfd.c:694 +#: bfd.c:698 msgid "bad value" msgstr "некорректное значение" -#: bfd.c:695 +#: bfd.c:699 msgid "file truncated" msgstr "файл усечён" -#: bfd.c:696 +#: bfd.c:700 msgid "file too big" msgstr "файл слишком большой" -#: bfd.c:697 +#: bfd.c:701 msgid "sorry, cannot handle this file" msgstr "невозможно обработать этот файл" -#: bfd.c:698 +#: bfd.c:702 #, c-format msgid "error reading %s: %s" msgstr "ошибка чтения %s: %s" -#: bfd.c:699 +#: bfd.c:703 msgid "#" msgstr "#<неверный код ошибки>" -#: bfd.c:1658 +#: bfd.c:1640 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "Оператор контроля BFD %s обнаружил ошибку %s:%d" -#: bfd.c:1671 +#: bfd.c:1653 #, c-format msgid "BFD %s internal error, aborting at %s:%d in %s\n" msgstr "Внутренняя ошибка BFD %s, останов на %s:%d в %s\n" -#: bfd.c:1676 +#: bfd.c:1658 #, c-format msgid "BFD %s internal error, aborting at %s:%d\n" msgstr "Внутренняя ошибка BFD %s, останов на %s:%d\n" -#: bfd.c:1678 +#: bfd.c:1660 msgid "Please report this bug.\n" msgstr "Пожалуйста, сообщите об этой ошибке.\n" @@ -267,41 +268,63 @@ msgstr "переоткрывается %pB: %s\n" msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries" msgstr "%pB: не удалось обработать сжатые двоичные файлы Alpha; для создания несжатых файлов используйте параметры компилятора или objZ." -#: coff-alpha.c:850 coff-alpha.c:887 coff-alpha.c:1954 coff-mips.c:953 +#: coff-alpha.c:856 coff-alpha.c:893 coff-alpha.c:1960 coff-mips.c:953 msgid "GP relative relocation used when GP not defined" msgstr "Использовано относительное перемещение GP, но GP не определена" -#: coff-alpha.c:1441 +#: coff-alpha.c:1447 msgid "using multiple gp values" msgstr "используется несколько значений gp" -#: coff-alpha.c:1499 coff-alpha.c:1505 elf.c:9431 elf32-mcore.c:100 -#: elf32-mcore.c:455 elf32-ppc.c:7596 elf32-ppc.c:8747 elf64-ppc.c:15962 +#: coff-alpha.c:1505 coff-alpha.c:1511 elf.c:9463 elf32-mcore.c:100 +#: elf32-mcore.c:455 elf32-ppc.c:7614 elf32-ppc.c:8763 elf64-ppc.c:16242 #, c-format msgid "%pB: %s unsupported" msgstr "%pB: %s не поддерживается" -#: coff-go32.c:156 coffswap.h:785 +#: coff-go32.c:156 coffswap.h:792 #, c-format msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "%pB: предупреждение: %s: переполнение номера строки: 0x%lx > 0xffff" -#: coff-mips.c:643 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330 -#: elf64-mips.c:3451 elfn32-mips.c:3276 +#: coff-mips.c:643 elf32-mips.c:1744 elf32-score.c:433 elf32-score7.c:333 +#: elf64-mips.c:3451 elfn32-mips.c:3278 msgid "GP relative relocation when _gp not defined" msgstr "Относительное перемещение GP, но _gp не определена" -#: coff-rs6000.c:2844 +#: coff-rs6000.c:484 coff64-rs6000.c:377 +#, c-format +msgid "%pB: unsupported swap_aux_in for storage class %#x" +msgstr "%pB: неподдерживаемый swap_aux_in для класса хранения %#x" + +#: coff-rs6000.c:570 coff64-rs6000.c:499 +#, c-format +msgid "%pB: unsupported swap_aux_out for storage class %#x" +msgstr "%pB: неподдерживаемый swap_aux_out для класса хранения %#x" + +#: coff-rs6000.c:3002 #, c-format msgid "%pB: TOC reloc at %# to symbol `%s' with no TOC entry" msgstr "%pB: перемещение TOC по адресу %# к символу «%s» без элемента TOC" -#: coff-rs6000.c:3607 coff64-rs6000.c:2153 +#: coff-rs6000.c:3209 coff-rs6000.c:3220 +msgid "%pB: TLS relocation at (0x%" +msgstr "%pB: перемещение TLS по адресу (0x%" + +#: coff-rs6000.c:3234 +msgid "%pB: TLS local relocation at (0x%" +msgstr "%pB: локальное перемещение TLS по адресу (0x%" + +#: coff-rs6000.c:3642 coff64-rs6000.c:1573 +msgid "%pB: relocatation (%d) at (0x%" +msgstr "%pB: перемещение (%d) по адресу (0x%" + +#: coff-rs6000.c:3905 coff64-rs6000.c:2023 #, c-format msgid "%pB: symbol `%s' has unrecognized smclas %d" msgstr "%pB: символ «%s» имеет нераспознанный smclas %d" -#: coff-sh.c:778 elf32-sh.c:521 +#: coff-sh.c:778 elf32-sh.c:520 #, c-format msgid "%pB: %#: warning: bad R_SH_USES offset" msgstr "%pB: %#: предупреждение: неправильное смещение R_SH_USES" @@ -311,32 +334,32 @@ msgstr "%pB: %#: предупреждение: неправильное msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn %#x" msgstr "%pB: %#: предупреждение: R_SH_USES указывает на нераспознанную инструкцию %#x" -#: coff-sh.c:807 elf32-sh.c:552 +#: coff-sh.c:807 elf32-sh.c:551 #, c-format msgid "%pB: %#: warning: bad R_SH_USES load offset" msgstr "%pB: %#: предупреждение: неправильное загрузочное смещение R_SH_USES" -#: coff-sh.c:832 elf32-sh.c:568 +#: coff-sh.c:832 elf32-sh.c:567 #, c-format msgid "%pB: %#: warning: could not find expected reloc" msgstr "%pB: %#: предупреждение: невозможно найти ожидаемое перемещение" -#: coff-sh.c:849 elf32-sh.c:597 +#: coff-sh.c:849 elf32-sh.c:596 #, c-format msgid "%pB: %#: warning: symbol in unexpected section" msgstr "%pB: %#: предупреждение: символ в неожиданном разделе" -#: coff-sh.c:975 elf32-sh.c:727 +#: coff-sh.c:975 elf32-sh.c:726 #, c-format msgid "%pB: %#: warning: could not find expected COUNT reloc" msgstr "%pB: %#: предупреждение: невозможно найти ожидаемое перемещение COUNT" -#: coff-sh.c:985 elf32-sh.c:738 +#: coff-sh.c:985 elf32-sh.c:737 #, c-format msgid "%pB: %#: warning: bad count" msgstr "%pB: %#: предупреждение: неправильный счётчик" -#: coff-sh.c:1356 coff-sh.c:2644 elf32-sh.c:1138 elf32-sh.c:1505 +#: coff-sh.c:1356 coff-sh.c:2644 elf32-sh.c:1137 elf32-sh.c:1504 #, c-format msgid "%pB: %#: fatal: reloc overflow while relaxing" msgstr "%pB: %#: останов: переполнение перемещения при ослаблении" @@ -346,34 +369,44 @@ msgstr "%pB: %#: останов: переполнение перемещ msgid "%pB: fatal: generic symbols retrieved before relaxing" msgstr "%pB: останов: перед ослаблением получены общие символы" -#: coff-sh.c:2781 cofflink.c:2948 +#: coff-sh.c:2781 cofflink.c:2959 #, c-format msgid "%pB: illegal symbol index %ld in relocs" msgstr "%pB: недопустимый символьный индекс %ld в перемещениях" -#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5085 +#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5124 #, c-format msgid "%pB: warning: illegal symbol index %ld in relocs" msgstr "%pB: предупреждение: недопустимый символьный индекс %ld в перемещениях" -#: coffcode.h:961 +#: coff64-rs6000.c:449 coff64-rs6000.c:555 +#, c-format +msgid "%pB: C_STAT isn't supported by XCOFF64" +msgstr "%pB: C_STAT не поддерживается в XCOFF64" + +#: coff64-rs6000.c:479 +#, c-format +msgid "%pB: wrong auxtype %#x for storage class %#x" +msgstr "%pB: некорректный auxtype %#x для класса хранения %#x" + +#: coffcode.h:986 #, c-format msgid "%pB: unable to load COMDAT section name" msgstr "%pB: невозможно загрузить имя раздела COMDAT" #. Malformed input files can trigger this test. #. cf PR 21781. -#: coffcode.h:996 +#: coffcode.h:1021 #, c-format msgid "%pB: error: unexpected symbol '%s' in COMDAT section" msgstr "%pB: ошибка: неожиданный символ «%s» в разделе COMDAT" -#: coffcode.h:1008 +#: coffcode.h:1033 #, c-format msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'" msgstr "%pB: предупреждение: символ «%s» в COMDAT не совпадает с именем раздела «%s»" -#: coffcode.h:1018 +#: coffcode.h:1043 #, c-format msgid "%pB: warning: no symbol for section '%s' found" msgstr "%pB: предупреждение: не найден символ для раздела «%s»" @@ -381,126 +414,126 @@ msgstr "%pB: предупреждение: не найден символ для #. Generate a warning message rather using the 'unhandled' #. variable as this will allow some .sys files generate by #. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1249 +#: coffcode.h:1274 #, c-format msgid "%pB: warning: ignoring section flag %s in section %s" msgstr "%pB: предупреждение: игнорируется флаг раздела %s в разделе %s" -#: coffcode.h:1318 +#: coffcode.h:1343 #, c-format msgid "%pB (%s): section flag %s (%#lx) ignored" msgstr "%pB (%s): игнорируется флаг раздела %s (%#lx)" -#: coffcode.h:1934 coffcode.h:1999 +#: coffcode.h:1959 coffcode.h:2024 #, c-format msgid "%pB: warning: claims to have 0xffff relocs, without overflow" msgstr "%pB: предупреждение: утверждается, что есть 0xffff перемещений, без переполнения" -#: coffcode.h:2365 +#: coffcode.h:2385 #, c-format msgid "unrecognized TI COFF target id '0x%x'" msgstr "нераспознанный идентификатор цели TI COFF «0x%x»" -#: coffcode.h:2643 +#: coffcode.h:2663 #, c-format msgid "%pB: reloc against a non-existent symbol index: %ld" msgstr "%pB: перемещение по несуществующему символьному индексу: %ld" -#: coffcode.h:2951 +#: coffcode.h:2961 #, c-format msgid "%pB: page size is too large (0x%x)" msgstr "%pB: слишком большой размер страницы (0x%x)" -#: coffcode.h:3111 +#: coffcode.h:3121 #, c-format msgid "%pB: too many sections (%d)" msgstr "%pB: слишком много разделов (%d)" -#: coffcode.h:3530 +#: coffcode.h:3548 #, c-format msgid "%pB: section %pA: string table overflow at offset %ld" msgstr "%pB: раздел %pA: переполнение таблицы строк по смещению %ld" -#: coffcode.h:3630 +#: coffcode.h:3655 #, c-format msgid "%pB:%s section %s: alignment 2**%u not representable" msgstr "%pB:%s раздел %s: выравнивание 2**%u не представимо" -#: coffcode.h:4329 +#: coffcode.h:4358 #, c-format msgid "%pB: warning: line number count (%#lx) exceeds section size (%#lx)" msgstr "%pB: предупреждение: счётчик количества строк (%#lx) превышает размер раздела (%#lx)" -#: coffcode.h:4349 +#: coffcode.h:4378 #, c-format msgid "%pB: warning: line number table read failed" msgstr "%pB: предупреждение: не удалось прочитать таблицу номеров строк" -#: coffcode.h:4383 coffcode.h:4397 +#: coffcode.h:4412 coffcode.h:4426 #, c-format msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d" msgstr "%pB: предупреждение: недопустимый символьный индекс 0x%lx в элементе номера строки %d" -#: coffcode.h:4411 +#: coffcode.h:4440 #, c-format msgid "%pB: warning: illegal symbol in line number entry %d" msgstr "%pB: предупреждение: недопустимый символьный индекс %d в элементе номера строки" -#: coffcode.h:4424 +#: coffcode.h:4453 #, c-format msgid "%pB: warning: duplicate line number information for `%s'" msgstr "%pB: предупреждение: повторяющаяся информация о номере строки для «%s»" -#: coffcode.h:4845 +#: coffcode.h:4874 #, c-format msgid "%pB: unrecognized storage class %d for %s symbol `%s'" msgstr "%pB: нераспознанный класс хранения %d для %s, символ «%s»" -#: coffcode.h:4975 +#: coffcode.h:5014 #, c-format msgid "warning: %pB: local symbol `%s' has no section" msgstr "предупреждение: %pB: локальный символ «%s» не имеет раздела" -#: coffcode.h:5125 +#: coffcode.h:5164 #, c-format msgid "%pB: illegal relocation type %d at address %#" msgstr "%pB: недопустимый тип перемещения %d по адресу %#" -#: coffgen.c:179 elf.c:1236 +#: coffgen.c:179 elf.c:1239 #, c-format msgid "%pB: unable to initialize compress status for section %s" msgstr "%pB: невозможно инициализировать состояние сжатия раздела %s" -#: coffgen.c:203 elf.c:1247 +#: coffgen.c:203 elf.c:1250 #, c-format msgid "%pB: unable to initialize decompress status for section %s" msgstr "%pB: невозможно инициализировать состояние разжатия раздела %s" -#: coffgen.c:1704 +#: coffgen.c:1706 #, c-format msgid "%pB: bad string table size %" msgstr "%pB: неправильный размер таблицы строк %#" -#: coffgen.c:1876 coffgen.c:1936 coffgen.c:1954 cofflink.c:2024 elf.c:1921 -#: xcofflink.c:4500 +#: coffgen.c:1878 coffgen.c:1938 coffgen.c:1956 cofflink.c:2024 elf.c:1936 +#: xcofflink.c:4540 msgid "" msgstr "<повреждено>" -#: coffgen.c:2085 +#: coffgen.c:2087 #, c-format msgid " %s" msgstr "<информация о повреждении> %s" -#: coffgen.c:2675 elflink.c:14624 linker.c:2956 +#: coffgen.c:2684 elflink.c:14829 linker.c:2965 msgid "%F%P: already_linked_table: %E\n" msgstr "%F%P: already_linked_table: %E\n" -#: coffgen.c:3016 elflink.c:13617 +#: coffgen.c:3026 elflink.c:13816 #, c-format msgid "removing unused section '%pA' in file '%pB'" msgstr "удаляется неиспользуемый раздел «%pA» в файле «%pB»" -#: coffgen.c:3093 elflink.c:13835 +#: coffgen.c:3103 elflink.c:14036 msgid "warning: gc-sections option ignored" msgstr "предупреждение: параметр gc-sections игнорируется" @@ -509,7 +542,7 @@ msgstr "предупреждение: параметр gc-sections игнори msgid "warning: symbol `%s' is both section and non-section" msgstr "предупреждение: символ «%s» для раздела и не для раздела одновременно" -#: cofflink.c:471 elf64-ia64-vms.c:5200 elflink.c:5131 +#: cofflink.c:471 elf64-ia64-vms.c:5202 elflink.c:5207 #, c-format msgid "warning: type of symbol `%s' changed from %d to %d in %pB" msgstr "предупреждение: тип символа «%s» изменён с %d на %d в %pB" @@ -519,177 +552,187 @@ msgstr "предупреждение: тип символа «%s» изменё msgid "%pB: relocs in section `%pA', but it has no contents" msgstr "%pB: перемещения в разделе «%pA», но он не имеет содержимого" -#: cofflink.c:2415 elflink.c:11082 +#: cofflink.c:2415 elflink.c:11342 #, c-format msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n" msgstr "%X«%s» указывает в раздел «%pA» из %pB: определён в отброшенном разделе «%pA» из %pB\n" -#: cofflink.c:2717 +#: cofflink.c:2610 +msgid "%pB: stripping non-representable symbol '%s' (value %" +msgstr "%pB: удаляется непредставимый символ «%s» (значение %" + +#: cofflink.c:2728 #, c-format msgid "%pB: %pA: reloc overflow: %#x > 0xffff" msgstr "%pB: %pA: переполнение перемещения: %#x > 0xffff" -#: cofflink.c:2725 +#: cofflink.c:2736 #, c-format msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff" msgstr "%pB: предупреждение: %pA: переполнение номера строки: %#x > 0xffff" -#: cofflink.c:3110 +#: cofflink.c:3127 #, c-format msgid "%pB: bad reloc address %# in section `%pA'" msgstr "%pB: неправильный адрес перемещения %# в разделе «%pA»" -#: coffswap.h:799 +#: coffswap.h:806 #, c-format msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff" msgstr "%pB: %s: переполнение перемещения: 0x%lx > 0xffff" -#: compress.c:271 +#: compress.c:270 #, c-format msgid "error: %pB(%pA) section size (%# bytes) is larger than file size (%# bytes)" msgstr "ошибка: размер раздела %pB(%pA) равен %#, это больше размера файла (%# байт)" -#: compress.c:282 +#: compress.c:281 #, c-format msgid "error: %pB(%pA) is too large (%# bytes)" msgstr "ошибка: %pB(%pA) слишком велико (%# байт)" -#: cpu-arm.c:303 cpu-arm.c:315 +#: cpu-arm.c:307 cpu-arm.c:319 #, c-format msgid "error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale" msgstr "ошибка: %pB скомпилирован для EP9312, в то время как %pB скомпилирован для XScale" -#: cpu-arm.c:451 +#: cpu-arm.c:455 #, c-format msgid "warning: unable to update contents of %s section in %pB" msgstr "предупреждение: невозможно обновить содержимое раздела %s в %pB" -#: dwarf2.c:543 +#: dwarf2.c:552 #, c-format msgid "DWARF error: can't find %s section." msgstr "ошибка в DWARF: раздел %s не найден" -#: dwarf2.c:578 +#. PR 26946 +#: dwarf2.c:563 +#, c-format +msgid "DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)" +msgstr "ошибка в DWARF: раздел %s больше размера его файла! (0x%lx и 0x%lx)" + +#: dwarf2.c:598 #, c-format msgid "DWARF error: offset (%) greater than or equal to %s size (%)" msgstr "ошибка в DWARF: смещение (%#) больше или равно размеру %s (%#)" -#: dwarf2.c:1165 +#: dwarf2.c:1201 msgid "DWARF error: info pointer extends beyond end of attributes" msgstr "ошибка в DWARF: информационный указатель выходит за конец атрибутов" -#: dwarf2.c:1333 +#: dwarf2.c:1349 #, c-format msgid "DWARF error: invalid or unhandled FORM value: %#x" msgstr "ошибка в DWARF: недопустимое или необработанное значение FORM: %#x" -#: dwarf2.c:1646 +#: dwarf2.c:1664 msgid "DWARF error: mangled line number section (bad file number)" msgstr "ошибка в DWARF: искажённый раздел номеров строк (неверный номер файла)" -#: dwarf2.c:1994 +#: dwarf2.c:2007 msgid "DWARF error: zero format count" msgstr "ошибка в DWARF: счётчик формата равен нулю" -#: dwarf2.c:2004 +#: dwarf2.c:2017 #, c-format msgid "DWARF error: data count (%) larger than buffer size" msgstr "ошибка в DWARF: счётчик данных (%#) больше размера буфера" -#: dwarf2.c:2045 +#: dwarf2.c:2056 #, c-format msgid "DWARF error: unknown format content type %" msgstr "ошибка в DWARF: неизвестный формат типа содержимого %#" -#: dwarf2.c:2112 +#: dwarf2.c:2126 #, c-format msgid "DWARF error: line info section is too small (%)" msgstr "ошибка в DWARF: раздел информации о строках слишком мал (%)" -#: dwarf2.c:2142 +#: dwarf2.c:2153 #, c-format msgid "DWARF error: line info data is bigger (%#) than the space remaining in the section (%#lx)" msgstr "ошибка в DWARF: данные информации о строках больше (%) чем пространство, оставшееся в разделе (%#lx)" -#: dwarf2.c:2155 +#: dwarf2.c:2166 #, c-format msgid "DWARF error: unhandled .debug_line version %d" msgstr "ошибка в DWARF: необработанная версия %d в .debug_line" -#: dwarf2.c:2165 +#: dwarf2.c:2175 msgid "DWARF error: ran out of room reading prologue" msgstr "ошибка в DWARF: кончилось место при чтении пролога" -#: dwarf2.c:2183 +#: dwarf2.c:2191 #, c-format msgid "DWARF error: line info unsupported segment selector size %u" msgstr "ошибка в DWARF: неподдерживаемый размер %u селектора сегмента в информации о строках" -#: dwarf2.c:2210 +#: dwarf2.c:2213 msgid "DWARF error: invalid maximum operations per instruction" msgstr "ошибка в DWARF: неверное максимальное количество операций на инструкцию" -#: dwarf2.c:2229 +#: dwarf2.c:2225 msgid "DWARF error: ran out of room reading opcodes" msgstr "ошибка в DWARF: кончилось место при чтении кодов операций" -#: dwarf2.c:2420 +#: dwarf2.c:2393 msgid "DWARF error: mangled line number section" msgstr "ошибка в DWARF: раздел номеров строк искажён" -#: dwarf2.c:2905 +#: dwarf2.c:2881 msgid "DWARF error: abstract instance recursion detected" msgstr "ошибка в DWARF: обнаружена рекурсия абстрактного экземпляра" -#: dwarf2.c:2939 dwarf2.c:3033 +#: dwarf2.c:2915 dwarf2.c:3009 msgid "DWARF error: invalid abstract instance DIE ref" msgstr "ошибка в DWARF: некорректный абстрактный экземпляр ссылки DIE" -#: dwarf2.c:2955 +#: dwarf2.c:2931 #, c-format msgid "DWARF error: unable to read alt ref %" msgstr "ошибка в DWARF: невозможно прочитать альтернативную ссылку %" -#: dwarf2.c:3011 +#: dwarf2.c:2987 #, c-format msgid "DWARF error: unable to locate abstract instance DIE ref %" msgstr "ошибка в DWARF: невозможно найти абстрактный экземпляр ссылки DIE %" -#: dwarf2.c:3050 dwarf2.c:3232 dwarf2.c:3618 +#: dwarf2.c:3024 dwarf2.c:3305 dwarf2.c:3750 #, c-format msgid "DWARF error: could not find abbrev number %u" msgstr "ошибка в DWARF: невозможно найти укороченный номер %u" -#: dwarf2.c:3381 +#: dwarf2.c:3538 #, c-format -msgid "DWARF error: could not find variable specification at offset %lx" -msgstr "ошибка в DWARF: невозможно найти задание переменной по смещению %lx" +msgid "DWARF error: could not find variable specification at offset 0x%lx" +msgstr "ошибка в DWARF: невозможно найти задание переменной по смещению 0x%lx" -#: dwarf2.c:3537 +#: dwarf2.c:3677 #, c-format msgid "DWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information" msgstr "ошибка в DWARF: найдена версия dwarf «%u», текущая функция чтения понимает только версии 2, 3, 4 и 5" -#: dwarf2.c:3581 +#: dwarf2.c:3714 #, c-format msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'" msgstr "ошибка в DWARF: найден размер адреса «%u», текущая функция чтения не умеет работать с размерами более чем «%u»" -#: dwarf2.c:3685 +#: dwarf2.c:3817 msgid "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form" msgstr "ошибка в DWARF: встречен атрибут DW_AT_comp_dir в не строковом виде" -#: ecoff.c:982 +#: ecoff.c:940 #, c-format msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)" msgstr "%pB: предупреждение: isymMax (%ld) больше, чем ifdMax (%ld)" -#: ecoff.c:1279 +#: ecoff.c:1236 #, c-format msgid "unknown basic type %d" msgstr "неизвестный начальный тип %d" -#: ecoff.c:1536 +#: ecoff.c:1492 #, c-format msgid "" "\n" @@ -698,7 +741,7 @@ msgstr "" "\n" " Символ End+1: %ld" -#: ecoff.c:1543 ecoff.c:1546 +#: ecoff.c:1499 ecoff.c:1502 #, c-format msgid "" "\n" @@ -707,7 +750,7 @@ msgstr "" "\n" " Первый символ: %ld" -#: ecoff.c:1559 +#: ecoff.c:1517 #, c-format msgid "" "\n" @@ -716,7 +759,7 @@ msgstr "" "\n" " Символ End+1: %-7ld Тип: %s" -#: ecoff.c:1566 +#: ecoff.c:1525 #, c-format msgid "" "\n" @@ -725,7 +768,7 @@ msgstr "" "\n" " Локальный символ: %ld" -#: ecoff.c:1574 +#: ecoff.c:1533 #, c-format msgid "" "\n" @@ -734,7 +777,7 @@ msgstr "" "\n" " struct; символ End+1: %ld" -#: ecoff.c:1579 +#: ecoff.c:1538 #, c-format msgid "" "\n" @@ -743,7 +786,7 @@ msgstr "" "\n" " union; символ End+1: %ld" -#: ecoff.c:1584 +#: ecoff.c:1543 #, c-format msgid "" "\n" @@ -752,7 +795,7 @@ msgstr "" "\n" " enum; символ End+1: %ld" -#: ecoff.c:1590 +#: ecoff.c:1551 #, c-format msgid "" "\n" @@ -761,22 +804,22 @@ msgstr "" "\n" " Тип: %s" -#: elf-attrs.c:449 +#: elf-attrs.c:477 #, c-format msgid "%pB: error: attribute section '%pA' too big: %#llx" msgstr "%pB: ошибка: слишком большой раздел атрибутов «%pA»: %#llx" -#: elf-attrs.c:490 +#: elf-attrs.c:514 #, c-format -msgid "%pB: error: attribute section length too small: %" -msgstr "%pB: ошибка: длина раздела атрибутов слишком мала: %" +msgid "%pB: error: attribute section length too small: %ld" +msgstr "%pB: ошибка: длина раздела атрибутов слишком мала: %ld" -#: elf-attrs.c:618 +#: elf-attrs.c:644 #, c-format msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain" msgstr "ошибка: %pB: объект содержит данные, задаваемые производителем, которые должно обрабатываться инструментами сборки «%s»" -#: elf-attrs.c:628 +#: elf-attrs.c:654 #, c-format msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'" msgstr "ошибка: %pB: объектный тег «%d, %s» несовместим с тегом «%d, %s»" @@ -842,85 +885,85 @@ msgstr ".eh_frame_hdr ссылается на перекрывающиеся FDE msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" msgstr "%F%P: динамический STT_GNU_IFUNC символ «%s» с одинаковым указателем в «%pB» нельзя использовать при создании исполняемого файла; перекомпилируйте с параметром -fPIE и перекомпонуйте с параметром -pie\n" -#: elf-m10200.c:434 elf-m10300.c:2145 elf32-avr.c:1508 elf32-bfin.c:3126 -#: elf32-cr16.c:1464 elf32-cris.c:2033 elf32-crx.c:920 elf32-d10v.c:510 -#: elf32-epiphany.c:562 elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:494 -#: elf32-h8300.c:523 elf32-ip2k.c:1477 elf32-iq2000.c:691 elf32-lm32.c:1069 -#: elf32-m32c.c:624 elf32-m32r.c:2860 elf32-m68hc1x.c:1272 elf32-mep.c:526 -#: elf32-metag.c:1986 elf32-microblaze.c:1627 elf32-moxie.c:288 elf32-mt.c:402 -#: elf32-nds32.c:6048 elf32-or1k.c:1817 elf32-score.c:2734 elf32-score7.c:2543 -#: elf32-spu.c:5083 elf32-tilepro.c:3380 elf32-v850.c:2290 elf32-visium.c:680 -#: elf32-xstormy16.c:929 elf64-bpf.c:512 elf64-mmix.c:1541 elfxx-tilegx.c:3744 +#: elf-m10200.c:434 elf-m10300.c:2146 elf32-avr.c:1508 elf32-bfin.c:3131 +#: elf32-cr16.c:1432 elf32-cris.c:2034 elf32-crx.c:913 elf32-d10v.c:510 +#: elf32-epiphany.c:562 elf32-fr30.c:594 elf32-frv.c:4049 elf32-ft32.c:493 +#: elf32-h8300.c:523 elf32-ip2k.c:1477 elf32-iq2000.c:691 elf32-lm32.c:1070 +#: elf32-m32c.c:624 elf32-m32r.c:2837 elf32-m68hc1x.c:1271 elf32-mep.c:522 +#: elf32-metag.c:1984 elf32-microblaze.c:1623 elf32-moxie.c:288 elf32-mt.c:402 +#: elf32-nds32.c:6044 elf32-or1k.c:1861 elf32-score.c:2743 elf32-score7.c:2552 +#: elf32-spu.c:5084 elf32-tilepro.c:3372 elf32-v850.c:2294 elf32-visium.c:680 +#: elf32-xstormy16.c:930 elf64-bpf.c:552 elf64-mmix.c:1541 elfxx-tilegx.c:3742 msgid "internal error: out of range error" msgstr "внутренняя ошибка: ошибка выхода из диапазона" -#: elf-m10200.c:438 elf-m10300.c:2149 elf32-avr.c:1512 elf32-bfin.c:3130 -#: elf32-cr16.c:1468 elf32-cris.c:2037 elf32-crx.c:924 elf32-d10v.c:514 -#: elf32-fr30.c:598 elf32-frv.c:4052 elf32-ft32.c:498 elf32-h8300.c:527 -#: elf32-iq2000.c:695 elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2864 -#: elf32-m68hc1x.c:1276 elf32-mep.c:530 elf32-metag.c:1990 -#: elf32-microblaze.c:1631 elf32-moxie.c:292 elf32-msp430.c:1371 -#: elf32-nds32.c:6052 elf32-or1k.c:1821 elf32-score.c:2738 elf32-score7.c:2547 -#: elf32-spu.c:5087 elf32-tilepro.c:3384 elf32-v850.c:2294 elf32-visium.c:684 -#: elf32-xstormy16.c:933 elf64-mmix.c:1545 elfxx-mips.c:10576 -#: elfxx-tilegx.c:3748 +#: elf-m10200.c:438 elf-m10300.c:2150 elf32-avr.c:1512 elf32-bfin.c:3135 +#: elf32-cr16.c:1436 elf32-cris.c:2038 elf32-crx.c:917 elf32-d10v.c:514 +#: elf32-fr30.c:598 elf32-frv.c:4053 elf32-ft32.c:497 elf32-h8300.c:527 +#: elf32-iq2000.c:695 elf32-lm32.c:1074 elf32-m32c.c:628 elf32-m32r.c:2841 +#: elf32-m68hc1x.c:1275 elf32-mep.c:526 elf32-metag.c:1988 +#: elf32-microblaze.c:1627 elf32-moxie.c:292 elf32-msp430.c:1510 +#: elf32-nds32.c:6048 elf32-or1k.c:1865 elf32-score.c:2747 elf32-score7.c:2556 +#: elf32-spu.c:5088 elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684 +#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10558 +#: elfxx-tilegx.c:3746 msgid "internal error: unsupported relocation error" msgstr "внутренняя ошибка: ошибка неподдерживаемого перемещения" -#: elf-m10200.c:442 elf32-cr16.c:1472 elf32-crx.c:928 elf32-d10v.c:518 -#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2868 elf32-m68hc1x.c:1280 -#: elf32-microblaze.c:1635 elf32-nds32.c:6056 elf32-score.c:2742 -#: elf32-score7.c:2551 elf32-spu.c:5091 +#: elf-m10200.c:442 elf32-cr16.c:1440 elf32-crx.c:921 elf32-d10v.c:518 +#: elf32-h8300.c:531 elf32-lm32.c:1078 elf32-m32r.c:2845 elf32-m68hc1x.c:1279 +#: elf32-microblaze.c:1631 elf32-nds32.c:6052 elf32-score.c:2751 +#: elf32-score7.c:2560 elf32-spu.c:5092 msgid "internal error: dangerous error" msgstr "внутренняя ошибка: опасная ошибка" -#: elf-m10200.c:446 elf-m10300.c:2166 elf32-avr.c:1520 elf32-bfin.c:3138 -#: elf32-cr16.c:1476 elf32-cris.c:2045 elf32-crx.c:932 elf32-d10v.c:522 -#: elf32-epiphany.c:577 elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:506 -#: elf32-h8300.c:535 elf32-ip2k.c:1492 elf32-iq2000.c:703 elf32-lm32.c:1081 -#: elf32-m32c.c:636 elf32-m32r.c:2872 elf32-m68hc1x.c:1284 elf32-mep.c:538 -#: elf32-metag.c:1998 elf32-microblaze.c:1639 elf32-moxie.c:300 -#: elf32-msp430.c:1379 elf32-mt.c:410 elf32-nds32.c:6060 elf32-or1k.c:1829 -#: elf32-score.c:2751 elf32-score7.c:2555 elf32-spu.c:5095 -#: elf32-tilepro.c:3392 elf32-v850.c:2314 elf32-visium.c:692 -#: elf32-xstormy16.c:941 elf64-bpf.c:525 elf64-mmix.c:1553 elfxx-tilegx.c:3756 +#: elf-m10200.c:446 elf-m10300.c:2167 elf32-avr.c:1520 elf32-bfin.c:3143 +#: elf32-cr16.c:1444 elf32-cris.c:2046 elf32-crx.c:925 elf32-d10v.c:522 +#: elf32-epiphany.c:577 elf32-fr30.c:606 elf32-frv.c:4061 elf32-ft32.c:505 +#: elf32-h8300.c:535 elf32-ip2k.c:1492 elf32-iq2000.c:703 elf32-lm32.c:1082 +#: elf32-m32c.c:636 elf32-m32r.c:2849 elf32-m68hc1x.c:1283 elf32-mep.c:534 +#: elf32-metag.c:1996 elf32-microblaze.c:1635 elf32-moxie.c:300 +#: elf32-msp430.c:1518 elf32-mt.c:410 elf32-nds32.c:6056 elf32-or1k.c:1873 +#: elf32-score.c:2760 elf32-score7.c:2564 elf32-spu.c:5096 +#: elf32-tilepro.c:3384 elf32-v850.c:2318 elf32-visium.c:692 +#: elf32-xstormy16.c:942 elf64-bpf.c:565 elf64-mmix.c:1553 elfxx-tilegx.c:3754 msgid "internal error: unknown error" msgstr "внутренняя ошибка: неизвестная ошибка" -#: elf-m10300.c:1029 +#: elf-m10300.c:1030 #, c-format msgid "%pB: unsupported transition from %s to %s" msgstr "%pB: неподдерживаемый переход из %s в %s" -#: elf-m10300.c:1196 +#: elf-m10300.c:1197 #, c-format msgid "%pB: %s' accessed both as normal and thread local symbol" msgstr "%pB: «%s» доступен как обычный и как локальный символ нити" -#: elf-m10300.c:2092 elf32-arm.c:13400 elf32-i386.c:3403 elf32-m32r.c:2354 -#: elf32-m68k.c:3931 elf32-s390.c:3082 elf32-sh.c:3677 elf32-tilepro.c:3283 -#: elf32-xtensa.c:3023 elf64-s390.c:3031 elf64-x86-64.c:4062 -#: elfxx-sparc.c:3795 elfxx-tilegx.c:3667 elfnn-aarch64.c:5505 -#: elfnn-aarch64.c:7102 +#: elf-m10300.c:2093 elf32-arm.c:13376 elf32-i386.c:3426 elf32-m32r.c:2331 +#: elf32-m68k.c:3929 elf32-s390.c:3080 elf32-sh.c:3671 elf32-tilepro.c:3275 +#: elf32-xtensa.c:3024 elf64-s390.c:3029 elf64-x86-64.c:4082 +#: elfxx-sparc.c:2917 elfxx-sparc.c:3814 elfxx-tilegx.c:3665 +#: elfnn-aarch64.c:5501 elfnn-aarch64.c:7104 #, c-format msgid "%pB(%pA+%#): unresolvable %s relocation against symbol `%s'" msgstr "%pB(%pA+%#): неразрешимое перемещение %s относительно символа «%s»" -#: elf-m10300.c:2154 +#: elf-m10300.c:2155 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" msgstr "ошибка: неподходящий тип перемещения для общей библиотеки (не указан -fpic?)" -#: elf-m10300.c:2158 +#: elf-m10300.c:2159 #, c-format msgid "%pB: taking the address of protected function '%s' cannot be done when making a shared library" msgstr "%pB: получение адреса защищённой функции «%s» не может быть выполнено при создании общей библиотеки" -#: elf-m10300.c:2161 +#: elf-m10300.c:2162 msgid "internal error: suspicious relocation type used in shared library" msgstr "внутренняя ошибка: подозрительный тип перемещения в общей библиотеке" -#: elf-m10300.c:2647 elf32-avr.c:2489 elf32-frv.c:5620 elf64-ia64-vms.c:364 -#: elfxx-sparc.c:2683 reloc.c:8244 reloc16.c:155 elfnn-ia64.c:364 +#: elf-m10300.c:2650 elf32-avr.c:2486 elf32-frv.c:5621 elf64-ia64-vms.c:365 +#: elfxx-sparc.c:2684 reloc.c:8282 reloc16.c:155 elfnn-ia64.c:365 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax и -r нельзя использовать вместе\n" @@ -949,131 +992,131 @@ msgstr "предупреждение: %pB: повреждённый размер msgid "warning: %pB: corrupt no copy on protected size: 0x%x" msgstr "предупреждение: %pB: повреждённый размер у выключения копирования защищённых перемещений: 0x%x" -#: elf-properties.c:186 +#: elf-properties.c:189 +#, c-format +msgid "error: %pB: " +msgstr "ошибка: %pB: <повреждение размера свойства (0x%x): 0x%x>" + +#: elf-properties.c:205 #, c-format msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" msgstr "предупреждение: %pB: неподдерживаемый тип GNU_PROPERTY_TYPE (%ld): 0x%x" -#: elf-properties.c:301 +#: elf-properties.c:391 msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n" msgstr "Удалено свойство %W при объединении %pB (0x%v) и %pB (0x%v)\n" -#: elf-properties.c:307 +#: elf-properties.c:397 msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n" msgstr "Удалено свойство %W при объединении %pB (0x%v) и %pB (не найдено)\n" -#: elf-properties.c:316 elf-properties.c:394 +#: elf-properties.c:406 elf-properties.c:484 msgid "Removed property %W to merge %pB and %pB\n" msgstr "Удалено свойство %W при объединении %pB и %pB\n" -#: elf-properties.c:320 +#: elf-properties.c:410 msgid "Removed property %W to merge %pB and %pB (not found)\n" msgstr "Удалено свойство %W при объединении %pB и %pB (не найдено)\n" -#: elf-properties.c:337 +#: elf-properties.c:427 msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n" msgstr "Обновлено свойство %W (0x%v) при объединении %pB (0x%v) и %pB (0x%v)\n" -#: elf-properties.c:346 +#: elf-properties.c:436 msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n" msgstr "Обновлено свойство %W (%v) при объединении %pB (0x%v) и %pB (не найдено)\n" -#: elf-properties.c:388 +#: elf-properties.c:478 msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n" msgstr "Удалено свойство %W при объединении %pB (не найдено) и %pB (0x%v)\n" #. Merge .note.gnu.property sections. -#: elf-properties.c:550 elf-properties.c:552 +#: elf-properties.c:640 elf-properties.c:642 msgid "\n" msgstr "\n" -#: elf-properties.c:551 +#: elf-properties.c:641 msgid "Merging program properties\n" msgstr "Объединение программных свойств\n" #. PR 17512: file: f057ec89. -#: elf.c:336 +#: elf.c:337 #, c-format msgid "%pB: attempt to load strings from a non-string section (number %d)" msgstr "%pB: попытка загрузить строки из не строкового раздела (номер %d)" -#: elf.c:361 +#: elf.c:362 #, c-format msgid "%pB: invalid string offset %u >= % for section `%s'" msgstr "%pB: недопустимое смещение строки %u >= % для раздела «%s»" -#: elf.c:513 elfnn-aarch64.c:8096 +#: elf.c:514 elfnn-aarch64.c:8104 #, c-format msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" msgstr "%pB: символьный номер %lu ссылается на несуществующий раздел SHT_SYMTAB_SHNDX" -#: elf.c:675 +#: elf.c:676 #, c-format msgid "%pB: invalid size field in group section header: %#" msgstr "%pB: некорректное поле размера в заголовке раздела групп: %#" -#: elf.c:720 +#: elf.c:721 #, c-format msgid "%pB: invalid entry in SHT_GROUP section [%u]" msgstr "%pB: некорректный элемент в разделе SHT_GROUP [%u]" -#: elf.c:739 +#: elf.c:740 #, c-format msgid "%pB: no valid group sections found" msgstr "%pB: не найдено корректных разделов групп" #. See PR 21957 for a reproducer. -#: elf.c:768 +#: elf.c:769 #, c-format msgid "%pB: group section '%pA' has no contents" msgstr "%pB: раздел групп «%pA» не имеет содержимого" -#: elf.c:829 +#: elf.c:830 #, c-format msgid "%pB: no group info for section '%pA'" msgstr "%pB: нет информации о группе для раздела «%pA»" -#: elf.c:859 elf.c:3955 -#, c-format -msgid "%pB: warning: sh_link not set for section `%pA'" -msgstr "%pB: предупреждение: не задан sh_link для раздела «%pA»" - -#: elf.c:879 +#: elf.c:878 #, c-format msgid "%pB: sh_link [%d] in section `%pA' is incorrect" msgstr "%pB: некорректный sh_link [%d] в разделе «%pA»" -#: elf.c:892 +#: elf.c:891 #, c-format msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections" msgstr "%pB: раздел SHT_GROUP [индекс %d] не содержит разделов SHF_GROUP" -#: elf.c:913 +#: elf.c:912 #, c-format msgid "%pB: section group entry number %u is corrupt" msgstr "%pB: номер элемента группы разделов %u повреждён" -#: elf.c:936 +#: elf.c:935 #, c-format msgid "%pB: unknown type [%#x] section `%s' in group [%pA]" msgstr "%pB: неизвестный тип [%#x] раздела «%s» в группе [%pA]" -#: elf.c:1438 +#: elf.c:1453 #, c-format msgid "%pB: invalid sh_link field (%d) in section number %d" msgstr "%pB: некорректное поле sh_link (%d) в номере раздела %d" -#: elf.c:1454 +#: elf.c:1469 #, c-format msgid "%pB: failed to find link section for section %d" msgstr "%pB: не удалось найти раздел ссылок для раздела %d" -#: elf.c:1481 +#: elf.c:1496 #, c-format msgid "%pB: failed to find info section for section %d" msgstr "%pB: не удалось найти информационный раздел для раздела %d" -#: elf.c:1653 +#: elf.c:1668 #, c-format msgid "" "\n" @@ -1082,7 +1125,7 @@ msgstr "" "\n" "Заголовок программы:\n" -#: elf.c:1695 +#: elf.c:1710 #, c-format msgid "" "\n" @@ -1091,7 +1134,7 @@ msgstr "" "\n" "Динамический раздел:\n" -#: elf.c:1836 +#: elf.c:1851 #, c-format msgid "" "\n" @@ -1100,7 +1143,7 @@ msgstr "" "\n" "Объявления версий:\n" -#: elf.c:1861 +#: elf.c:1876 #, c-format msgid "" "\n" @@ -1109,97 +1152,97 @@ msgstr "" "\n" "Версии ссылок:\n" -#: elf.c:1866 +#: elf.c:1881 #, c-format msgid " required from %s:\n" msgstr " требуется из %s:\n" -#: elf.c:2082 +#: elf.c:2071 #, c-format msgid "%pB: warning: loop in section dependencies detected" msgstr "%pB: предупреждение: обнаружено зацикливание в зависимостях разделов" -#: elf.c:2190 +#: elf.c:2178 #, c-format msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u" msgstr "%pB: предупреждение: обнаружена пустая таблица символов — игнорируется таблица в разделе %u" -#: elf.c:2274 +#: elf.c:2262 #, c-format msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" msgstr "%pB: предупреждение: обнаружена пустая таблица динамических символов — игнорируется таблица в разделе %u" -#: elf.c:2387 +#: elf.c:2375 #, c-format msgid "%pB: invalid link %u for reloc section %s (index %u)" msgstr "%pB: некорректная ссылка %u для раздела перемещений %s (индекс %u)" -#: elf.c:2478 +#: elf.c:2466 #, c-format msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring" msgstr "%pB: предупреждение: обнаружен вторичный раздел перемещений «%s» для раздела %pA — игнорируется" -#: elf.c:2562 elf.c:2577 elf.c:2588 elf.c:2601 +#: elf.c:2552 elf.c:2567 elf.c:2578 elf.c:2591 #, c-format msgid "%pB: unknown type [%#x] section `%s'" msgstr "%pB: неизвестный тип [%#x] раздела «%s»" -#: elf.c:3308 +#: elf.c:3288 #, c-format msgid "%pB: error: alignment power %d of section `%pA' is too big" msgstr "%pB: ошибка: кратность выравнивания %d раздела «%pA» слишком велика" -#: elf.c:3341 +#: elf.c:3321 #, c-format msgid "warning: section `%pA' type changed to PROGBITS" msgstr "предупреждение: тип раздела «%pA» изменён на PROGBITS" -#: elf.c:3824 +#: elf.c:3805 #, c-format msgid "%pB: too many sections: %u" msgstr "%pB: слишком много разделов: %u" -#: elf.c:3909 +#: elf.c:3891 #, c-format msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'" msgstr "%pB: sh_link раздела «%pA» указывает на отброшенный раздел «%pA» из «%pB»" -#: elf.c:3934 +#: elf.c:3909 #, c-format msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'" msgstr "%pB: sh_link раздела «%pA» указывает на удалённый раздел «%pA» из «%pB»" -#: elf.c:4495 +#: elf.c:4471 #, c-format msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d" msgstr "%pB: GNU_MBIND раздела «%pA» содержит некорректное поле sh_info: %d" -#: elf.c:5086 +#: elf.c:5065 #, c-format msgid "%pB: TLS sections are not adjacent:" msgstr "%pB: разделы TLS находятся не рядом:" -#: elf.c:5093 +#: elf.c:5072 #, c-format msgid "\t TLS: %pA" msgstr "\t TLS: %pA" -#: elf.c:5097 +#: elf.c:5076 #, c-format msgid "\tnon-TLS: %pA" msgstr "\t не-TLS: %pA" -#: elf.c:5687 +#: elf.c:5672 #, c-format msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "%pB: первый раздел в сегменте PT_DYNAMIC не является разделом .dynamic" -#: elf.c:5713 +#: elf.c:5698 #, c-format msgid "%pB: not enough room for program headers, try linking with -N" msgstr "%pB: недостаточно места для заголовков программы, попытайтесь скомпоновать с параметром -N" -#: elf.c:5830 +#: elf.c:5815 #, c-format msgid "%pB: section %pA lma %# adjusted to %#" msgstr "%pB: у раздела %pA lma %# подогнано к %#" @@ -1207,146 +1250,172 @@ msgstr "%pB: у раздела %pA lma %# подогнано к %#, is this intentional?" msgstr "%pB: предупреждение: обнаружен пустой загружаемый сегмент по vaddr=%#, это так задумывалось?" -#: elf.c:7773 +#: elf.c:7779 #, c-format msgid "%pB: warning: segment alignment of %# is too large" msgstr "%pB: предупреждение: слишком большое выравнивание сегмента %#" -#: elf.c:8286 +#: elf.c:8292 #, c-format msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead." msgstr "%pB: невозможно обработать индекс раздела %x в символе ELF. Вместо него используем ABS." -#: elf.c:8316 +#: elf.c:8322 #, c-format msgid "unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "невозможно найти подходящее место вывода для символа «%s» из раздела «%s»" -#: elf.c:8703 +#: elf.c:8735 #, c-format msgid "%pB: .gnu.version_r invalid entry" msgstr "%pB: некорректный элемент .gnu.version_r" -#: elf.c:8836 +#: elf.c:8868 #, c-format msgid "%pB: .gnu.version_d invalid entry" msgstr "%pB: некорректный элемент .gnu.version_d" -#: elf.c:9293 +#: elf.c:9325 #, c-format msgid "%pB:%pA: error: attempting to write into an unallocated compressed section" msgstr "%pB:%pA: ошибка: попытка записи в невыделенный сжатый раздел" -#: elf.c:9302 +#: elf.c:9334 #, c-format msgid "%pB:%pA: error: attempting to write over the end of the section" msgstr "%pB:%pA: ошибка: попытка записи за конец раздела" -#: elf.c:9313 +#: elf.c:9345 #, c-format msgid "%pB:%pA: error: attempting to write section into an empty buffer" msgstr "%pB:%pA: ошибка: попытка записи раздела в пустой буфер" -#: elf.c:12430 -msgid "GNU_MBIND section is unsupported" -msgstr "раздел GNU_MBIND не поддерживается" +#: elf.c:10246 +#, c-format +msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small" +msgstr "%pB: предупреждение: размер win32pstatus %s в %lu байт слишком мал" + +#: elf.c:10324 +#, c-format +msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u" +msgstr "%pB: размер win32pstatus NOTE_INFO_MODULE в %lu слишком мал, чтобы хранить имя размером %u" + +#: elf.c:12633 +msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets" +msgstr "раздел GNU_MBIND поддерживается только целями GNU и FreeBSD" -#: elf.c:12432 -msgid "symbol type STT_GNU_IFUNC is unsupported" -msgstr "символьный тип STT_GNU_IFUNC не поддерживается" +#: elf.c:12636 +msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets" +msgstr "символьный тип STT_GNU_IFUNC поддерживается только целями GNU и FreeBSD" -#: elf.c:12434 -msgid "symbol binding STB_GNU_UNIQUE is unsupported" -msgstr "символьная привязка STB_GNU_UNIQUE не поддерживается" +#: elf.c:12639 +msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets" +msgstr "символьная привязка STB_GNU_UNIQUE поддерживается только целями GNU и FreeBSD" -#: elf.c:12618 elf64-sparc.c:123 elfcode.h:1482 +#: elf.c:12642 +msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets" +msgstr "раздел GNU_RETAIN поддерживается только целями GNU и FreeBSD" + +#: elf.c:12850 elf64-sparc.c:123 elfcode.h:1504 #, c-format msgid "%pB(%pA): relocation %d has invalid symbol index %ld" msgstr "%pB(%pA): перемещение %d имеет некорректный индекс символа %ld" -#: elf.c:12692 +#: elf.c:12925 #, c-format msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table" msgstr "%pB(%pA): нельзя задать раздел ссылок, так как выходной файл не содержит таблицу символов" -#: elf.c:12704 +#: elf.c:12937 #, c-format msgid "%pB(%pA): info section index is invalid" msgstr "%pB(%pA): некорректный индекс раздела информации" -#: elf.c:12718 +#: elf.c:12951 #, c-format msgid "%pB(%pA): info section index cannot be set because the section is not in the output" msgstr "%pB(%pA): нельзя задать индекс раздела информации, так как раздел отсутствует в результате" -#: elf.c:12784 +#: elf.c:13026 #, c-format msgid "%pB(%pA): error: secondary reloc section processed twice" msgstr "%pB(%pA): ошибка: вторичный раздел перемещений обработан дважды" -#: elf.c:12796 +#: elf.c:13038 +#, c-format +msgid "%pB(%pA): error: secondary reloc section has zero sized entries" +msgstr "%pB(%pA): ошибка: вторичный раздел перемещений содержит элементы нулевого размера" + +#: elf.c:13049 +#, c-format +msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries" +msgstr "%pB(%pA): ошибка: вторичный раздел перемещений содержит элементы нестандартного размера" + +#: elf.c:13061 #, c-format msgid "%pB(%pA): error: secondary reloc section is empty!" msgstr "%pB(%pA): ошибка: вторичный раздел перемещений пуст!" -#: elf.c:12819 +#: elf.c:13084 #, c-format msgid "%pB(%pA): error: internal relocs missing for secondary reloc section" msgstr "%pB(%pA): ошибка: внутренние перемещения отсутствуют для вторичного раздела перемещений" -#: elf.c:12838 +#: elf.c:13103 #, c-format msgid "%pB(%pA): error: reloc table entry %u is empty" msgstr "%pB:%pA: ошибка: элемент таблицы перемещений %u пуст" -#: elf.c:12863 +#: elf.c:13128 #, c-format msgid "%pB(%pA): error: secondary reloc %u references a missing symbol" msgstr "%pB(%pA): ошибка: вторичный раздел %u ссылается на отсутствующий символ" -#: elf.c:12880 +#: elf.c:13145 #, c-format msgid "%pB(%pA): error: secondary reloc %u references a deleted symbol" msgstr "%pB(%pA): ошибка: вторичный раздел %u ссылается на удалённый символ" -#: elf.c:12893 +#: elf.c:13158 #, c-format msgid "%pB(%pA): error: secondary reloc %u is of an unknown type" msgstr "%pB(%pA): ошибка: вторичный раздел %u неизвестного типа" -#: elf32-arc.c:455 elf32-frv.c:6611 elf32-iq2000.c:868 elf32-m32c.c:914 -#: elf32-mt.c:562 elf32-rl78.c:1260 elf32-rx.c:3205 elf32-visium.c:844 -#: elf64-ppc.c:5291 +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#: elf32-arc.c:455 elf32-arm.c:15047 elf32-frv.c:6612 elf32-iq2000.c:868 +#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1260 elf32-rx.c:3206 +#: elf32-visium.c:844 elf64-ppc.c:5347 elfnn-aarch64.c:7334 #, c-format msgid "private flags = 0x%lx:" msgstr "собственные флаги = 0x%lx:" @@ -1391,8 +1460,8 @@ msgstr "ошибка: %pB: несогласующиеся атрибуты %s" msgid "error: attempting to link %pB with a binary %pB of different architecture" msgstr "ошибка: попытка компоновки %pB с двоичным файлом %pB другой архитектуры" -#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1391 -#: elf32-ppc.c:3867 elf64-sparc.c:722 elfxx-mips.c:15513 +#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390 +#: elf32-ppc.c:3866 elf64-sparc.c:722 elfxx-mips.c:15568 #, c-format msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)" msgstr "%pB: использующиеся поля e_flags (%#x) отличаются от использованных в предыдущих модулях (%#x)" @@ -1444,604 +1513,618 @@ msgstr "%pB(%pA): внутренняя ошибка: опасное переме msgid "%pB(%pA): internal error: unknown error" msgstr "%pB(%pA): внутренняя ошибка: неизвестная ошибка" -#: elf32-arc.c:2022 elf32-arc.c:2090 elf32-arm.c:15513 elf32-metag.c:2253 -#: elf32-nds32.c:5498 elfnn-aarch64.c:7739 elfnn-riscv.c:483 +#: elf32-arc.c:2023 elf32-arc.c:2091 elf32-arm.c:15502 elf32-metag.c:2251 +#: elf32-nds32.c:5494 elfnn-aarch64.c:7741 elfnn-riscv.c:617 #, c-format msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" msgstr "%pB: перемещение %s для «%s» не может использоваться при создании общего объекта; перекомпилируйте с -fPIC" -#: elf32-arc.c:2909 +#: elf32-arc.c:2910 #, c-format msgid "%pB: unknown mandatory ARC object attribute %d" msgstr "%pB: неизвестный обязательный атрибут объекта ARC %d" -#: elf32-arc.c:2917 +#: elf32-arc.c:2918 #, c-format msgid "warning: %pB: unknown ARC object attribute %d" msgstr "предупреждение: %pB: неизвестный атрибут объекта ARC %d" -#: elf32-arm.c:4307 elf32-arm.c:4341 elf32-arm.c:4360 elf32-arm.c:4412 +#: elf32-arm.c:4333 elf32-arm.c:4367 elf32-arm.c:4386 elf32-arm.c:4438 #, c-format msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction" msgstr "%pB(%pA): предупреждение: склейки длинных ветвей, использованных в разделе с атрибутом раздела SHF_ARM_PURECODE, поддерживаются только для целей M-профиля, который реализован инструкцией movw" -#: elf32-arm.c:4372 elf32-arm.c:4426 elf32-arm.c:9116 elf32-arm.c:9206 +#: elf32-arm.c:4398 elf32-arm.c:4452 elf32-arm.c:9141 elf32-arm.c:9231 #, c-format msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s" msgstr "%pB(%s): предупреждение: совместная работа не включена; первое упоминание: %pB: вызов %s в %s" -#: elf32-arm.c:4552 +#: elf32-arm.c:4578 #, c-format msgid "ERROR: CMSE stub (%s section) too far (%#) from destination (%#)" msgstr "ОШИБКА: заглушка CMSE (раздел %s) слишком далеко (%#) от назначения (%#)" -#: elf32-arm.c:4721 +#: elf32-arm.c:4747 #, c-format msgid "no address assigned to the veneers output section %s" msgstr "не назначен адрес склейкам в выходном разделе %s" -#: elf32-arm.c:4796 elf32-arm.c:6943 elf32-csky.c:3172 elf32-hppa.c:584 -#: elf32-m68hc1x.c:165 elf32-metag.c:1182 elf32-nios2.c:2204 elf64-ppc.c:3775 -#: elfnn-aarch64.c:3190 +#: elf32-arm.c:4822 elf32-arm.c:6968 elf32-csky.c:3400 elf32-hppa.c:582 +#: elf32-m68hc1x.c:164 elf32-metag.c:1180 elf32-nios2.c:2201 elf64-ppc.c:3827 +#: elf64-ppc.c:13638 elfnn-aarch64.c:3187 #, c-format msgid "%pB: cannot create stub entry %s" msgstr "%pB: невозможно создать элемент заглушки %s" -#: elf32-arm.c:5017 elf32-csky.c:3514 elf32-hppa.c:734 elf32-m68hc11.c:422 -#: elf32-m68hc12.c:542 elf32-metag.c:3347 elf32-nios2.c:2497 elf64-ppc.c:11315 -#: elfnn-aarch64.c:3259 +#: elf32-arm.c:5043 elf32-csky.c:3742 elf32-hppa.c:732 elf32-m68hc11.c:422 +#: elf32-m68hc12.c:542 elf32-metag.c:3345 elf32-nios2.c:2494 elf64-ppc.c:11473 +#: elfnn-aarch64.c:3256 msgid "%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n" msgstr "%F%P: Невозможно назначить «%pA» выходному разделу. Повторите без --enable-non-contiguous-regions.\n" -#: elf32-arm.c:5987 +#: elf32-arm.c:6011 #, c-format msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later" msgstr "%pB: специальный символ «%s» разрешён только для архитектуры ARMv8-M и новее" -#: elf32-arm.c:5996 +#: elf32-arm.c:6020 #, c-format msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol" msgstr "%pB: некорректный специальный символ «%s»; это должен быть глобальный или слабый символ функции" -#: elf32-arm.c:6035 +#: elf32-arm.c:6059 #, c-format msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol" msgstr "%pB: некорректный стандартный символ «%s»; это должен быть глобальный или слабый символ функции" -#: elf32-arm.c:6041 +#: elf32-arm.c:6065 #, c-format msgid "%pB: absent standard symbol `%s'" msgstr "%pB: отсутствует стандартный символ «%s»" -#: elf32-arm.c:6053 +#: elf32-arm.c:6077 #, c-format msgid "%pB: `%s' and its special symbol are in different sections" msgstr "%pB: «%s» и его специальный символ находятся в разных разделах" -#: elf32-arm.c:6065 +#: elf32-arm.c:6089 #, c-format msgid "%pB: entry function `%s' not output" msgstr "%pB: входная функция «%s» отсутствует в выводе" -#: elf32-arm.c:6072 +#: elf32-arm.c:6096 #, c-format msgid "%pB: entry function `%s' is empty" msgstr "%pB: входная функция «%s» пуста" -#: elf32-arm.c:6201 +#: elf32-arm.c:6225 #, c-format msgid "%pB: --in-implib only supported for Secure Gateway import libraries" msgstr "%pB: --in-implib поддерживается только для библиотек импорта Secure Gateway" -#: elf32-arm.c:6250 +#: elf32-arm.c:6274 #, c-format msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions" msgstr "%pB: некорректный элемент импортируемой библиотеки: «%s»; символ должен быть абсолютным, глобальным или ссылаться на функции Thumb" -#: elf32-arm.c:6272 +#: elf32-arm.c:6296 #, c-format msgid "entry function `%s' disappeared from secure code" msgstr "входная функция «%s» исчезла из безопасного кода" -#: elf32-arm.c:6296 +#: elf32-arm.c:6320 #, c-format msgid "`%s' refers to a non entry function" msgstr "«%s» ссылается на не пустую входную функцию" -#: elf32-arm.c:6311 +#: elf32-arm.c:6335 #, c-format msgid "%pB: visibility of symbol `%s' has changed" msgstr "%pB: изменилась видимость символа «%s»" -#: elf32-arm.c:6320 +#: elf32-arm.c:6344 #, c-format msgid "%pB: incorrect size for symbol `%s'" msgstr "%pB: некорректный размер символа «%s»" -#: elf32-arm.c:6339 +#: elf32-arm.c:6363 #, c-format msgid "offset of veneer for entry function `%s' not a multiple of its size" msgstr "смещение склейки входной функции «%s» не кратно её размеру" -#: elf32-arm.c:6359 +#: elf32-arm.c:6383 msgid "new entry function(s) introduced but no output import library specified:" msgstr "появилась новая входная функция(и), но не указан вывод импортируемой библиотеки:" -#: elf32-arm.c:6367 +#: elf32-arm.c:6391 #, c-format msgid "start address of `%s' is different from previous link" msgstr "начальный адрес «%s» отличается от предыдущей ссылки" -#: elf32-arm.c:7076 elf32-arm.c:7111 +#: elf32-arm.c:7101 elf32-arm.c:7136 #, c-format msgid "unable to find %s glue '%s' for '%s'" msgstr "не удалось найти склейку %s «%s» для «%s»" -#: elf32-arm.c:7822 +#: elf32-arm.c:7847 #, c-format msgid "%pB: BE8 images only valid in big-endian mode" msgstr "%pB: образы BE8 разрешены только в режиме big-endian" #. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:8049 +#: elf32-arm.c:8074 #, c-format msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture" msgstr "%pB: предупреждение: выбранный обход ошибки VFP11 не требуется для целевой архитектуры" -#: elf32-arm.c:8076 +#: elf32-arm.c:8101 #, c-format msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" msgstr "%pB: предупреждение: выбранный обход ошибки STM32L4XX не требуется для целевой архитектуры" -#: elf32-arm.c:8612 elf32-arm.c:8632 elf32-arm.c:8699 elf32-arm.c:8718 +#: elf32-arm.c:8637 elf32-arm.c:8657 elf32-arm.c:8724 elf32-arm.c:8743 #, c-format msgid "%pB: unable to find %s veneer `%s'" msgstr "%pB: невозможно найти склейку %s «%s»" -#: elf32-arm.c:8925 +#: elf32-arm.c:8950 #, c-format msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block" msgstr "%pB(%pA+%#x): ошибка: обнаружено несколько инструкций загрузок в не последнем блоке IT: невозможно сгенерировать склейку STM32L4XX; используйте параметр gcc -mrestrict-it для генерации только одной инструкции в блоке IT" -#: elf32-arm.c:9023 +#: elf32-arm.c:9048 #, c-format msgid "invalid TARGET2 relocation type '%s'" msgstr "недопустимый TARGET2 тип перемещения «%s»" #. FIXME: We ought to be able to generate thumb-1 PLT #. instructions... -#: elf32-arm.c:9825 +#: elf32-arm.c:9818 #, c-format msgid "%pB: warning: thumb-1 mode PLT generation not currently supported" msgstr "%pB: предупреждение: генерация PLT в режиме thumb-1 пока не поддерживается" -#: elf32-arm.c:10135 elf32-arm.c:10177 +#: elf32-arm.c:10127 elf32-arm.c:10169 #, c-format msgid "%pB(%pA+%#): unexpected %s instruction '%#lx' in TLS trampoline" msgstr "%pB(%pA+%#): неожидаемая инструкция %s «%#lx» в трамплине TLS" -#: elf32-arm.c:10521 +#: elf32-arm.c:10519 msgid "shared object" msgstr "общий объект" -#: elf32-arm.c:10524 +#: elf32-arm.c:10522 msgid "PIE executable" msgstr "исполняемый PIE" -#: elf32-arm.c:10527 +#: elf32-arm.c:10525 #, c-format msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" msgstr "%pB: перемещение %s для внешнего или неопределённого символа «%s» не может использоваться при создании %s; перекомпилируйте с -fPIC" -#: elf32-arm.c:10664 elf32-arm.c:11091 +#: elf32-arm.c:10627 elf32-arm.c:11044 #, c-format msgid "%pB: warning: %s BLX instruction targets %s function '%s'" msgstr "%pB: предупреждение: инструкция BLX %s указывает на функцию %s «%s»" -#: elf32-arm.c:12003 elf32-arm.c:12029 +#: elf32-arm.c:11678 +#, c-format +msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu" +msgstr "%pB: ожидается индекс символа в диапазоне 0..%lu, но найден локальный символ с индексом %lu" + +#: elf32-arm.c:11953 elf32-arm.c:11979 #, c-format msgid "%pB(%pA+%#): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC" msgstr "%pB(%pA+%#): неожидаемая инструкция %s «%#lx», на которую ссылается TLS_GOTDESC" -#: elf32-arm.c:12075 elf32-csky.c:4746 elf32-m68k.c:3735 elf32-metag.c:1915 -#: elf32-nios2.c:4385 +#: elf32-arm.c:12025 elf32-csky.c:4970 elf32-m68k.c:3733 elf32-metag.c:1913 +#: elf32-nios2.c:4382 #, c-format msgid "%pB(%pA+%#): %s relocation not permitted in shared object" msgstr "%pB(%pA+%#): перемещение %s не разрешено в общем объекте" -#: elf32-arm.c:12289 +#: elf32-arm.c:12239 #, c-format msgid "%pB(%pA+%#): only ADD or SUB instructions are allowed for ALU group relocations" msgstr "%pB(%pA+%#): в группе перемещений ALU разрешены только инструкции ADD или SUB" -#: elf32-arm.c:12330 elf32-arm.c:12422 elf32-arm.c:12510 elf32-arm.c:12600 +#: elf32-arm.c:12280 elf32-arm.c:12372 elf32-arm.c:12460 elf32-arm.c:12550 #, c-format msgid "%pB(%pA+%#): overflow whilst splitting %# for group relocation %s" msgstr "%pB(%pA+%#): переполнение во время разделения %# для группы перемещений %s" -#: elf32-arm.c:13232 elf32-sh.c:3571 +#: elf32-arm.c:12608 elf32-arm.c:12767 +msgid "local symbol index too big" +msgstr "индекс локального символа слишком большой" + +#: elf32-arm.c:12618 elf32-arm.c:12652 +msgid "no dynamic index information available" +msgstr "нет информации о динамическом индексе" + +#: elf32-arm.c:12660 +msgid "invalid dynamic index" +msgstr "неверный динамический индекс" + +#: elf32-arm.c:12777 +msgid "dynamic index information not available" +msgstr "нет информации о динамическом индексе" + +#: elf32-arm.c:13208 elf32-sh.c:3565 #, c-format msgid "%pB(%pA+%#): %s relocation against SEC_MERGE section" msgstr "%pB(%pA+%#): перемещение %s в разделе SEC_MERGE" -#: elf32-arm.c:13345 elf32-m68k.c:3968 elf32-xtensa.c:2761 -#: elfnn-aarch64.c:6829 +#: elf32-arm.c:13321 elf32-m68k.c:3966 elf32-xtensa.c:2762 +#: elfnn-aarch64.c:6831 #, c-format msgid "%pB(%pA+%#): %s used with TLS symbol %s" msgstr "%pB(%pA+%#): %s используется с TLS-символом %s" -#: elf32-arm.c:13347 elf32-m68k.c:3970 elf32-xtensa.c:2763 -#: elfnn-aarch64.c:6831 +#: elf32-arm.c:13323 elf32-m68k.c:3968 elf32-xtensa.c:2764 +#: elfnn-aarch64.c:6833 #, c-format msgid "%pB(%pA+%#): %s used with non-TLS symbol %s" msgstr "%pB(%pA+%#): %s используется с не TLS-символом %s" -#: elf32-arm.c:13430 elf32-tic6x.c:2649 elfnn-aarch64.c:7166 +#: elf32-arm.c:13406 elf32-tic6x.c:2649 elfnn-aarch64.c:7168 msgid "out of range" msgstr "вне диапазона" -#: elf32-arm.c:13434 elf32-nios2.c:4519 elf32-pru.c:936 elf32-tic6x.c:2653 -#: elfnn-aarch64.c:7170 +#: elf32-arm.c:13410 elf32-nios2.c:4516 elf32-pru.c:936 elf32-tic6x.c:2653 +#: elfnn-aarch64.c:7172 msgid "unsupported relocation" msgstr "неподдерживаемое перемещение" -#: elf32-arm.c:13442 elf32-nios2.c:4529 elf32-pru.c:946 elf32-tic6x.c:2661 -#: elfnn-aarch64.c:7178 +#: elf32-arm.c:13418 elf32-nios2.c:4526 elf32-pru.c:946 elf32-tic6x.c:2661 +#: elfnn-aarch64.c:7180 msgid "unknown error" msgstr "неизвестная ошибка" -#: elf32-arm.c:13920 +#: elf32-arm.c:13898 #, c-format msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking" msgstr "предупреждение: флаг совместной работы для %pB не устанавливается, так как он уже указывает на несовместную работу" -#: elf32-arm.c:13924 +#: elf32-arm.c:13902 #, c-format msgid "warning: clearing the interworking flag of %pB due to outside request" msgstr "предупреждение: очищается флаг совместной работы для %pB из-за внешнего запроса" -#: elf32-arm.c:13969 +#: elf32-arm.c:13947 #, c-format msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it" msgstr "предупреждение: сброс флага совместной работы %pB, так как с ним был скомпонован код без совместной работы из %pB" -#: elf32-arm.c:14056 +#: elf32-arm.c:14034 #, c-format msgid "%pB: unknown mandatory EABI object attribute %d" msgstr "%pB: неизвестный обязательный атрибут EABI-объекта %d" -#: elf32-arm.c:14064 +#: elf32-arm.c:14042 #, c-format msgid "warning: %pB: unknown EABI object attribute %d" msgstr "предупреждение: %pB: неизвестный атрибут EABI-объекта %d" -#: elf32-arm.c:14364 +#: elf32-arm.c:14342 #, c-format msgid "error: %pB: unknown CPU architecture" msgstr "ошибка: %pB: неизвестная процессорная архитектура" -#: elf32-arm.c:14402 elf32-nios2.c:2953 +#: elf32-arm.c:14380 elf32-nios2.c:2950 #, c-format msgid "error: %pB: conflicting CPU architectures %d/%d" msgstr "ошибка: %pB: противоречащие архитектурные профили %d/%d" -#: elf32-arm.c:14499 +#: elf32-arm.c:14477 #, c-format msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes" msgstr "ошибка: %pB содержит одновременно и текущий и устаревший атрибут Tag_MPextension_use" -#: elf32-arm.c:14528 +#: elf32-arm.c:14506 #, c-format msgid "error: %pB uses VFP register arguments, %pB does not" msgstr "ошибка: %pB использует регистровые аргументы VFP, а %pB нет" -#: elf32-arm.c:14687 +#: elf32-arm.c:14665 #, c-format msgid "error: %pB: unable to merge virtualization attributes with %pB" msgstr "ошибка: %pB: не удалось объединить атрибуты виртуализации с %pB" -#: elf32-arm.c:14713 +#: elf32-arm.c:14691 #, c-format msgid "error: %pB: conflicting architecture profiles %c/%c" msgstr "ошибка: %pB: противоречащие архитектурные профили %c/%c" -#: elf32-arm.c:14852 +#: elf32-arm.c:14830 #, c-format msgid "warning: %pB: conflicting platform configuration" msgstr "предупреждение: %pB: противоречивые настройки платформы" -#: elf32-arm.c:14861 +#: elf32-arm.c:14839 #, c-format msgid "error: %pB: conflicting use of R9" msgstr "ошибка: %pB: противоречащее использование R9" -#: elf32-arm.c:14873 +#: elf32-arm.c:14851 #, c-format msgid "error: %pB: SB relative addressing conflicts with use of R9" msgstr "ошибка: %pB: противоречащее использование относительной адресации SB и R9" -#: elf32-arm.c:14886 +#: elf32-arm.c:14864 #, c-format msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" msgstr "предупреждение: %pB использует %u-байтовый wchar_t, хотя уже использовался %u-байтовый wchar_t; использование значений wchar_t в разных объектах может привести к ошибке" -#: elf32-arm.c:14917 +#: elf32-arm.c:14895 #, c-format msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" msgstr "предупреждение: %pB использует %s enum, хотя уже использовался %s enum; использование значений enum в разных объектах может привести к ошибке" -#: elf32-arm.c:14929 +#: elf32-arm.c:14907 #, c-format msgid "error: %pB uses iWMMXt register arguments, %pB does not" msgstr "ошибка: %pB использует регистровые аргументы iWMMXt, а %pB нет" -#: elf32-arm.c:14946 +#: elf32-arm.c:14924 #, c-format msgid "error: fp16 format mismatch between %pB and %pB" msgstr "ошибка: формат fp16 расходится в %pB и %pB" -#: elf32-arm.c:14982 +#: elf32-arm.c:14960 #, c-format msgid "%pB has both the current and legacy Tag_MPextension_use attributes" msgstr "%pB содержит одновременно и текущий и устаревший атрибут Tag_MPextension_use" -#. Ignore init flag - it may not be set, despite the flags field -#. containing valid data. -#. Ignore init flag - it may not be set, despite the flags field containing valid data. -#. Ignore init flag - it may not be set, despite the flags field -#. containing valid data. -#: elf32-arm.c:15069 elf32-bfin.c:4719 elf32-cris.c:3861 elf32-m68hc1x.c:1416 -#: elf32-m68k.c:1267 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537 -#: elf32-xgate.c:494 elfxx-mips.c:16199 elfnn-aarch64.c:7332 -#, c-format -msgid "private flags = %lx:" -msgstr "собственные флаги = %lx:" - -#: elf32-arm.c:15078 +#: elf32-arm.c:15056 #, c-format msgid " [interworking enabled]" msgstr " [совместная работа включена]" -#: elf32-arm.c:15086 +#: elf32-arm.c:15064 #, c-format msgid " [VFP float format]" msgstr " [VFP формат плавающей точки]" -#: elf32-arm.c:15088 +#: elf32-arm.c:15066 #, c-format msgid " [Maverick float format]" msgstr " [Maverick формат плавающей точки]" -#: elf32-arm.c:15090 +#: elf32-arm.c:15068 #, c-format msgid " [FPA float format]" msgstr " [FPA формат плавающей точки]" -#: elf32-arm.c:15093 +#: elf32-arm.c:15071 #, c-format msgid " [floats passed in float registers]" msgstr " [числа с плавающей точкой передаются в регистрах с плавающей точкой]" -#: elf32-arm.c:15096 elf32-arm.c:15182 +#: elf32-arm.c:15074 elf32-arm.c:15160 #, c-format msgid " [position independent]" msgstr " [позиционно-независимый]" -#: elf32-arm.c:15099 +#: elf32-arm.c:15077 #, c-format msgid " [new ABI]" msgstr " [новый ABI]" -#: elf32-arm.c:15102 +#: elf32-arm.c:15080 #, c-format msgid " [old ABI]" msgstr " [старый ABI]" -#: elf32-arm.c:15105 +#: elf32-arm.c:15083 #, c-format msgid " [software FP]" msgstr " [программная FP]" -#: elf32-arm.c:15114 +#: elf32-arm.c:15092 #, c-format msgid " [Version1 EABI]" msgstr " [Версия1 EABI]" -#: elf32-arm.c:15117 elf32-arm.c:15128 +#: elf32-arm.c:15095 elf32-arm.c:15106 #, c-format msgid " [sorted symbol table]" msgstr " [отсортированная таблица символов]" -#: elf32-arm.c:15119 elf32-arm.c:15130 +#: elf32-arm.c:15097 elf32-arm.c:15108 #, c-format msgid " [unsorted symbol table]" msgstr " [несортированная таблица символов]" -#: elf32-arm.c:15125 +#: elf32-arm.c:15103 #, c-format msgid " [Version2 EABI]" msgstr " [Версия2 EABI]" -#: elf32-arm.c:15133 +#: elf32-arm.c:15111 #, c-format msgid " [dynamic symbols use segment index]" msgstr " [динамические символы используют сегментный индекс]" -#: elf32-arm.c:15136 +#: elf32-arm.c:15114 #, c-format msgid " [mapping symbols precede others]" msgstr " [проецируемые символы указываются раньше]" -#: elf32-arm.c:15143 +#: elf32-arm.c:15121 #, c-format msgid " [Version3 EABI]" msgstr " [Версия3 EABI]" -#: elf32-arm.c:15147 +#: elf32-arm.c:15125 #, c-format msgid " [Version4 EABI]" msgstr " [Версия4 EABI]" -#: elf32-arm.c:15151 +#: elf32-arm.c:15129 #, c-format msgid " [Version5 EABI]" msgstr " [Версия5 EABI]" -#: elf32-arm.c:15154 +#: elf32-arm.c:15132 #, c-format msgid " [soft-float ABI]" msgstr " [soft-float ABI]" -#: elf32-arm.c:15157 +#: elf32-arm.c:15135 #, c-format msgid " [hard-float ABI]" msgstr " [hard-float ABI]" -#: elf32-arm.c:15163 +#: elf32-arm.c:15141 #, c-format msgid " [BE8]" msgstr " [BE8]" -#: elf32-arm.c:15166 +#: elf32-arm.c:15144 #, c-format msgid " [LE8]" msgstr " [LE8]" -#: elf32-arm.c:15172 +#: elf32-arm.c:15150 #, c-format msgid " " msgstr " <нераспознанная версия EABI>" -#: elf32-arm.c:15179 +#: elf32-arm.c:15157 #, c-format msgid " [relocatable executable]" msgstr " [перемещаемый исполняемый]" -#: elf32-arm.c:15185 +#: elf32-arm.c:15163 #, c-format msgid " [FDPIC ABI supplement]" msgstr " [дополнительный FDPIC ABI]" -#: elf32-arm.c:15190 elfnn-aarch64.c:7335 +#: elf32-arm.c:15168 elfnn-aarch64.c:7337 #, c-format -msgid "" -msgstr "<Нераспознанный набор битов флага>" +msgid " " +msgstr " <Нераспознанный набор битов флага>" -#: elf32-arm.c:15307 elf32-i386.c:1524 elf32-s390.c:925 elf32-tic6x.c:2724 -#: elf32-tilepro.c:1443 elf32-xtensa.c:1093 elf64-s390.c:847 -#: elf64-x86-64.c:1902 elfxx-sparc.c:1386 elfxx-tilegx.c:1664 -#: elfnn-aarch64.c:7606 elfnn-riscv.c:525 +#: elf32-arm.c:15285 elf32-arm.c:15419 elf32-i386.c:1524 elf32-s390.c:923 +#: elf32-tic6x.c:2724 elf32-tilepro.c:1435 elf32-xtensa.c:1094 +#: elf64-s390.c:845 elf64-x86-64.c:1900 elfxx-sparc.c:1386 elfxx-tilegx.c:1662 +#: elfnn-aarch64.c:7608 elfnn-riscv.c:660 #, c-format msgid "%pB: bad symbol index: %d" msgstr "%pB: неправильный символьный индекс: %d" -#: elf32-arm.c:15696 +#: elf32-arm.c:15675 #, c-format msgid "FDPIC does not yet support %s relocation to become dynamic for executable" msgstr "FDPIC пока не поддерживает создание динамических перемещений %s для исполняемых файлов" -#: elf32-arm.c:16939 +#: elf32-arm.c:16936 #, c-format msgid "errors encountered processing file %pB" msgstr "при обработке файла %pB обнаружены ошибки" -#: elf32-arm.c:17326 elflink.c:12818 elflink.c:12865 +#: elf32-arm.c:17309 elflink.c:12991 elflink.c:13038 #, c-format msgid "could not find section %s" msgstr "невозможно найти раздел %s" -#: elf32-arm.c:18550 +#: elf32-arm.c:18230 +#, c-format +msgid "%pB: Number of symbols in input file has increased from %lu to %u\n" +msgstr "%pB: Количество символов во входном файле увеличилось с %lu до %u\n" + +#: elf32-arm.c:18494 #, c-format msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "%pB: ошибка: заглушка для ошибки Cortex-A8 расположена в небезопасном месте" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:18577 +#: elf32-arm.c:18521 #, c-format msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "%pB: ошибка: заглушка для ошибки Cortex-A8 находится вне диапазона (слишком большой входной файл)" -#: elf32-arm.c:19404 elf32-arm.c:19426 +#: elf32-arm.c:19348 elf32-arm.c:19370 #, c-format msgid "%pB: error: VFP11 veneer out of range" msgstr "%pB: ошибка: склейка VFP11 вне диапазона" -#: elf32-arm.c:19477 +#: elf32-arm.c:19421 #, c-format msgid "%pB(%#): error: cannot create STM32L4XX veneer; jump out of range by % bytes; cannot encode branch instruction" msgstr "%pB(%#): ошибка: невозможно создать склейку STM32L4XX; прыжок выходит за диапазон % байт; невозможно закодировать инструкцию ветвления" -#: elf32-arm.c:19516 +#: elf32-arm.c:19460 #, c-format msgid "%pB: error: cannot create STM32L4XX veneer" msgstr "%pB: ошибка: невозможно создать склейку STM32L4XX" -#: elf32-arm.c:20600 +#: elf32-arm.c:20544 #, c-format msgid "error: %pB is already in final BE8 format" msgstr "ошибка: %pB уже в конечном формате BE8" -#: elf32-arm.c:20676 +#: elf32-arm.c:20620 #, c-format msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d" msgstr "ошибка: объект-источник %pB имеет версию EABI %d, а цель %pB имеет версию EABI %d" -#: elf32-arm.c:20691 +#: elf32-arm.c:20635 #, c-format msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d" msgstr "ошибка: %pB скомпилирован для APCS-%d, в то время как цель %pB использует APCS-%d" -#: elf32-arm.c:20701 +#: elf32-arm.c:20645 #, c-format msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers" msgstr "ошибка: %pB передаёт числа с плавающей точкой в регистрах с плавающей точкой, в то время как %pB передаёт их в целочисленных регистрах" -#: elf32-arm.c:20705 +#: elf32-arm.c:20649 #, c-format msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers" msgstr "ошибка: %pB передаёт числа в целочисленных регистрах, в то время как %pB передаёт их в регистрах с плавающей точкой" -#: elf32-arm.c:20715 elf32-arm.c:20719 elf32-arm.c:20729 +#: elf32-arm.c:20659 elf32-arm.c:20663 elf32-arm.c:20673 #, c-format msgid "error: %pB uses %s instructions, whereas %pB does not" msgstr "ошибка: %pB использует инструкции %s, в то время как %pB нет" -#: elf32-arm.c:20733 +#: elf32-arm.c:20677 #, c-format msgid "error: %pB does not use %s instructions, whereas %pB does" msgstr "ошибка: %pB не использует инструкции %s, в то время как %pB использует" -#: elf32-arm.c:20752 +#: elf32-arm.c:20696 #, c-format msgid "error: %pB uses software FP, whereas %pB uses hardware FP" msgstr "ошибка: %pB использует программную FP, в то время как %pB использует аппаратную FP" -#: elf32-arm.c:20756 +#: elf32-arm.c:20700 #, c-format msgid "error: %pB uses hardware FP, whereas %pB uses software FP" msgstr "ошибка: %pB использует аппаратную FP, в то время как %pB использует программную FP" -#: elf32-arm.c:20770 +#: elf32-arm.c:20714 #, c-format msgid "warning: %pB supports interworking, whereas %pB does not" msgstr "предупреждение: %pB поддерживает совместную работу, в то время как %pB нет" -#: elf32-arm.c:20776 +#: elf32-arm.c:20720 #, c-format msgid "warning: %pB does not support interworking, whereas %pB does" msgstr "предупреждение: %pB не поддерживает совместную работу, в то время как %pB поддерживает" -#: elf32-avr.c:1516 elf32-bfin.c:3134 elf32-cris.c:2041 elf32-epiphany.c:573 -#: elf32-fr30.c:602 elf32-frv.c:4056 elf32-ft32.c:502 elf32-ip2k.c:1488 -#: elf32-iq2000.c:699 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1994 -#: elf32-moxie.c:296 elf32-msp430.c:1375 elf32-mt.c:406 elf32-or1k.c:1825 -#: elf32-tilepro.c:3388 elf32-v850.c:2298 elf32-visium.c:688 -#: elf32-xstormy16.c:937 elf64-bpf.c:521 elf64-mmix.c:1549 elfxx-tilegx.c:3752 +#: elf32-avr.c:1516 elf32-bfin.c:3139 elf32-cris.c:2042 elf32-epiphany.c:573 +#: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:501 elf32-ip2k.c:1488 +#: elf32-iq2000.c:699 elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1992 +#: elf32-moxie.c:296 elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1869 +#: elf32-tilepro.c:3380 elf32-v850.c:2302 elf32-visium.c:688 +#: elf32-xstormy16.c:938 elf64-bpf.c:561 elf64-mmix.c:1549 elfxx-tilegx.c:3750 msgid "internal error: dangerous relocation" msgstr "внутренняя ошибка: опасное перемещение" -#: elf32-avr.c:3327 elfnn-aarch64.c:3221 +#: elf32-avr.c:3324 elfnn-aarch64.c:3218 #, c-format msgid "cannot create stub entry %s" msgstr "невозможно создать элемент заглушки %s" @@ -2050,219 +2133,252 @@ msgstr "невозможно создать элемент заглушки %s" msgid "relocation should be even number" msgstr "значение перемещения должно быть чётным числом" -#: elf32-bfin.c:1584 +#: elf32-bfin.c:1587 #, c-format msgid "%pB(%pA+%#): unresolvable relocation against symbol `%s'" msgstr "%pB(%pA+%#): неразрешимое перемещение с символом «%s»" -#: elf32-bfin.c:1616 elf32-i386.c:3443 elf32-m68k.c:4008 elf32-s390.c:3140 -#: elf64-s390.c:3089 elf64-x86-64.c:4112 +#: elf32-bfin.c:1619 elf32-i386.c:3466 elf32-m68k.c:4006 elf32-s390.c:3138 +#: elf64-s390.c:3087 elf64-x86-64.c:4137 #, c-format msgid "%pB(%pA+%#): reloc against `%s': error %d" msgstr "%pB(%pA+%#): перемещение с «%s»: ошибка %d" -#: elf32-bfin.c:2641 +#: elf32-bfin.c:2645 #, c-format msgid "%pB: relocation at `%pA+%#' references symbol `%s' with nonzero addend" msgstr "%pB: перемещение по адресу «%pA+%#» ссылается на символ «%s» с ненулевым добавлением" -#: elf32-bfin.c:2658 +#: elf32-bfin.c:2662 msgid "relocation references symbol not defined in the module" msgstr "перемещение указывает на неопределённый символ в модуле" -#: elf32-bfin.c:2755 +#: elf32-bfin.c:2760 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC указывает на динамический символ с ненулевым добавлением" -#: elf32-bfin.c:2795 elf32-bfin.c:2916 +#: elf32-bfin.c:2800 elf32-bfin.c:2921 msgid "cannot emit fixups in read-only section" msgstr "невозможно сгенерировать местоположения в разделе только для чтения" -#: elf32-bfin.c:2825 elf32-bfin.c:2953 elf32-lm32.c:1006 elf32-sh.c:4389 +#: elf32-bfin.c:2830 elf32-bfin.c:2958 elf32-lm32.c:1007 elf32-sh.c:4383 msgid "cannot emit dynamic relocations in read-only section" msgstr "невозможно сгенерировать динамические перемещения в разделе только для чтения" -#: elf32-bfin.c:2875 +#: elf32-bfin.c:2880 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC_VALUE указывает на динамический символ с ненулевым добавлением" -#: elf32-bfin.c:3038 +#: elf32-bfin.c:3043 msgid "relocations between different segments are not supported" msgstr "перемещения между различными сегментами не поддерживаются" -#: elf32-bfin.c:3039 +#: elf32-bfin.c:3044 msgid "warning: relocation references a different segment" msgstr "предупреждение: перемещение ссылается на другой сегмент" -#: elf32-bfin.c:4770 elf32-frv.c:6584 +#. Ignore init flag - it may not be set, despite the flags field containing valid data. +#: elf32-bfin.c:4729 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265 +#: elf32-score.c:3996 elf32-score7.c:3801 elf32-vax.c:536 elf32-xgate.c:494 +#: elfxx-mips.c:16254 +#, c-format +msgid "private flags = %lx:" +msgstr "собственные флаги = %lx:" + +#: elf32-bfin.c:4780 elf32-frv.c:6585 #, c-format msgid "%pB: cannot link non-fdpic object file into fdpic executable" msgstr "%pB: невозможно скомпоновать объектный файл, не являющийся fdpic, в исполняемый fdpic" -#: elf32-bfin.c:4774 elf32-frv.c:6588 +#: elf32-bfin.c:4784 elf32-frv.c:6589 #, c-format msgid "%pB: cannot link fdpic object file into non-fdpic executable" msgstr "%pB: невозможно скомпоновать объектный файл, являющийся fdpic, в исполняемый не fdpic" -#: elf32-bfin.c:4924 +#: elf32-bfin.c:4921 #, c-format msgid "*** check this relocation %s" msgstr "*** проверьте это перемещение %s" -#: elf32-bfin.c:5040 +#: elf32-bfin.c:5037 msgid "the bfin target does not currently support the generation of copy relocations" msgstr "для цели bfin пока не поддерживается генерация копирования перемещений" -#: elf32-bfin.c:5334 elf32-cr16.c:2731 elf32-m68k.c:4422 +#: elf32-bfin.c:5331 elf32-cr16.c:2713 elf32-m68k.c:4420 msgid "unsupported relocation type" msgstr "неподдерживаемый тип перемещения" -#: elf32-cris.c:1119 +#: elf32-cris.c:1120 #, c-format msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'" msgstr "%pB, раздел %pA: неразрешимое перемещение %s у символа «%s»" -#: elf32-cris.c:1184 +#: elf32-cris.c:1185 #, c-format msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'" msgstr "%pB, раздел %pA: нет ни PLT ни GOT для перемещения %s у символа «%s»" -#: elf32-cris.c:1187 +#: elf32-cris.c:1188 #, c-format msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'" msgstr "%pB, раздел %pA: нет PLT для перемещения %s у символа «%s»" -#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674 -#: elf32-cris.c:1827 elf32-tic6x.c:2560 +#: elf32-cris.c:1194 elf32-cris.c:1327 elf32-cris.c:1592 elf32-cris.c:1675 +#: elf32-cris.c:1828 elf32-tic6x.c:2560 msgid "[whose name is lost]" msgstr "[чьё имя потеряно]" -#: elf32-cris.c:1311 elf32-tic6x.c:2544 +#: elf32-cris.c:1312 elf32-tic6x.c:2544 #, c-format msgid "%pB, section %pA: relocation %s with non-zero addend % against local symbol" msgstr "%pB, раздел %pA: перемещение %s с ненулевым добавлением % у локального символа" -#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2553 +#: elf32-cris.c:1321 elf32-cris.c:1669 elf32-cris.c:1822 elf32-tic6x.c:2553 #, c-format msgid "%pB, section %pA: relocation %s with non-zero addend % against symbol `%s'" msgstr "%pB, раздел %pA: перемещение %s с ненулевым добавлением % у символа «%s»" -#: elf32-cris.c:1347 +#: elf32-cris.c:1348 #, c-format msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'" msgstr "%pB, раздел %pA: перемещение %s не разрешено для глобального символа: «%s»" -#: elf32-cris.c:1364 +#: elf32-cris.c:1365 #, c-format msgid "%pB, section %pA: relocation %s with no GOT created" msgstr "%pB, раздел %pA: перемещение %s без созданного GOT" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1581 +#: elf32-cris.c:1582 #, c-format msgid "%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" msgstr "%pB, раздел %pA: перемещение %s имеет неопределённую ссылку на «%s»; возможно, смешение объявлений?" -#: elf32-cris.c:1584 +#: elf32-cris.c:1585 #, c-format msgid "%pB, section %pA: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" msgstr "%pB, раздел %pA: перемещение %s не разрешено для «%s», глобального символа с видимостью по умолчанию; возможно, смешение объявлений?" -#: elf32-cris.c:1955 +#: elf32-cris.c:1956 #, c-format msgid "%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" msgstr "%pB, раздел %pA: перемещение %s не разрешено для символа: «%s», который определён вне программы; возможно, смешение объявлений?" -#: elf32-cris.c:2008 +#: elf32-cris.c:2009 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "(слишком много глобальных переменных для -fpic: перекомпилируйте с параметром -fPIC)" -#: elf32-cris.c:2015 +#: elf32-cris.c:2016 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" msgstr "(локальный данные нити слишком велики для -fpic или -msmall-tls: перекомпилируйте с параметром -fPIC или -mno-small-tls)" -#: elf32-cris.c:3050 +#: elf32-cris.c:3051 #, c-format msgid "%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation" msgstr "%pB, раздел %pA: v10/v32 совместимый объект не должен содержать перемещение PIC" -#: elf32-cris.c:3104 +#: elf32-cris.c:3105 #, c-format msgid "" "%pB, section %pA:\n" " relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC" msgstr "%pB, раздел %pA: перемещение %s не должно использоваться в общем объекте; возможно, смешение параметров, перекомпилируйте с -fPIC" -#: elf32-cris.c:3322 +#: elf32-cris.c:3323 #, c-format msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "%pB, раздел %pA: перемещение %s не должно использоваться в общем объекте; перекомпилируйте с -fPIC" -#: elf32-cris.c:3700 +#: elf32-cris.c:3701 #, c-format msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "%pB, раздел «%pA», к символу «%s»: перемещение %s не должно использоваться в общем объекте; перекомпилируйте с -fPIC" -#: elf32-cris.c:3812 +#: elf32-cris.c:3813 msgid "unexpected machine number" msgstr "неожидаемое машинное число" -#: elf32-cris.c:3864 +#: elf32-cris.c:3865 #, c-format msgid " [symbols have a _ prefix]" msgstr " [символы содержат префикс _]" -#: elf32-cris.c:3867 +#: elf32-cris.c:3868 #, c-format msgid " [v10 and v32]" msgstr " [v10 и v32]" -#: elf32-cris.c:3870 +#: elf32-cris.c:3871 #, c-format msgid " [v32]" msgstr " [v32]" -#: elf32-cris.c:3914 +#: elf32-cris.c:3915 #, c-format msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "%pB: используются символы с префиксом _, но в файл записываются символы без префиксов" -#: elf32-cris.c:3915 +#: elf32-cris.c:3916 #, c-format msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "%pB: используются символы без префикса _, но в файл записываются символы с префиксом _" -#: elf32-cris.c:3934 +#: elf32-cris.c:3935 #, c-format msgid "%pB contains CRIS v32 code, incompatible with previous objects" msgstr "%pB содержит код CRIS v32, который не совместим с предыдущими объектами" -#: elf32-cris.c:3936 +#: elf32-cris.c:3937 #, c-format msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects" msgstr "%pB содержит код не CRIS v32, который не совместим с предыдущими объектами" -#: elf32-csky.c:2022 +#: elf32-csky.c:2019 msgid "GOT table size out of range" msgstr "размер таблицы GOT выходит за границы" -#: elf32-csky.c:2802 +#: elf32-csky.c:2831 #, c-format msgid "warning: unrecognized arch eflag '%#lx'" -msgstr "предупреждение: нераспознанный архитектурный eflag «%#lx»" +msgstr "предупреждение: нераспознанный eflag архитектуры «%#lx»" + +#: elf32-csky.c:2854 +#, c-format +msgid "warning: unrecognised arch name '%#x'" +msgstr "предупреждение: нераспознанное имя архитектуры «%#x»" -#: elf32-csky.c:2862 +#: elf32-csky.c:2928 elf32-csky.c:3086 #, c-format msgid "%pB: machine flag conflict with target" msgstr "%pB: машинный флаг конфликтует с целью" -#: elf32-csky.c:2875 +#: elf32-csky.c:2941 +#, c-format +msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s" +msgstr "предупреждение: файловый флаг %pB архитектуры %s конфликтует с целевым %s, используем флаг целевой архитектуры %s" + +#: elf32-csky.c:2970 +#, c-format +msgid "Error: %pB and %pB has different VDSP version" +msgstr "Ошибка: у %pB и %pB разные версии VDSP" + +#: elf32-csky.c:2987 +#, c-format +msgid "Error: %pB and %pB has different DSP version" +msgstr "Ошибка: у %pB и %pB разные версии DSP" + +#: elf32-csky.c:3005 +#, c-format +msgid "Error: %pB and %pB has different FPU ABI" +msgstr "Ошибка: у %pB и %pB разные FPU ABI" + +#: elf32-csky.c:3100 #, c-format -msgid "warning: file %pB's arch flag ck%s conflicts with target ck%s, using ck%s" -msgstr "предупреждение: файловый флаг %pB архитектуры ck%s конфликтует с ck%s цели, используем ck%s" +msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s" +msgstr "предупреждение: файловый флаг %pB архитектуры %s конфликтует с целевым %s, используем %s" #. The r_type is error, not support it. -#: elf32-csky.c:4118 elf32-i386.c:350 +#: elf32-csky.c:4342 elf32-i386.c:350 #, c-format msgid "%pB: unsupported relocation type: %#x" msgstr "%pB: неподдерживаемый тип перемещения : %#x" @@ -2282,100 +2398,100 @@ msgstr "прыжок (PC rel26) в раздел (%s) не поддерживае msgid "unsupported relocation between data/insn address spaces" msgstr "неподдерживаемое перемещение между адресным пространством данных/инструкций" -#: elf32-frv.c:1452 elf32-frv.c:1603 +#: elf32-frv.c:1453 elf32-frv.c:1604 msgid "relocation requires zero addend" msgstr "для перемещения требуется нулевое добавление" -#: elf32-frv.c:2832 +#: elf32-frv.c:2833 #, c-format msgid "%H: relocation to `%s+%v' may have caused the error above\n" msgstr "%H: перемещение в «%s+%v» может быть вызвано предыдущей ошибкой\n" -#: elf32-frv.c:2849 +#: elf32-frv.c:2850 msgid "%H: relocation references symbol not defined in the module\n" msgstr "%H: перемещение указывает на неопределённый символ в модуле\n" -#: elf32-frv.c:2925 +#: elf32-frv.c:2926 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" msgstr "%H: R_FRV_GETTLSOFF не применимо для инструкции call\n" -#: elf32-frv.c:2966 +#: elf32-frv.c:2967 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" msgstr "%H R_FRV_GOTTLSDESC12 не применимо для инструкции lddi\n" -#: elf32-frv.c:3037 +#: elf32-frv.c:3038 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSDESCHI не применимо для инструкции sethi\n" -#: elf32-frv.c:3074 +#: elf32-frv.c:3075 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSDESCLO не применимо для инструкции setlo или setlos\n" -#: elf32-frv.c:3121 +#: elf32-frv.c:3122 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" msgstr "%H: R_FRV_TLSDESC_RELAX не применимо для инструкции ldd\n" -#: elf32-frv.c:3205 +#: elf32-frv.c:3206 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" msgstr "%H: R_FRV_GETTLSOFF_RELAX не применимо для инструкции calll\n" -#: elf32-frv.c:3259 +#: elf32-frv.c:3260 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" msgstr "%H: R_FRV_GOTTLSOFF12 не применимо для инструкции ldi\n" -#: elf32-frv.c:3289 +#: elf32-frv.c:3290 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSOFFHI не применимо для инструкции sethi\n" -#: elf32-frv.c:3318 +#: elf32-frv.c:3319 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSOFFLO не применимо для инструкции setlo или setlos\n" -#: elf32-frv.c:3348 +#: elf32-frv.c:3349 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" msgstr "%H: R_FRV_TLSOFF_RELAX не применимо для инструкции ld\n" -#: elf32-frv.c:3393 +#: elf32-frv.c:3394 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_TLSMOFFHI не применимо для инструкции sethi\n" -#: elf32-frv.c:3420 +#: elf32-frv.c:3421 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" msgstr "R_FRV_TLSMOFFLO не применимо для инструкции setlo или setlos\n" -#: elf32-frv.c:3541 elf32-frv.c:3661 +#: elf32-frv.c:3542 elf32-frv.c:3662 msgid "%H: %s references dynamic symbol with nonzero addend\n" msgstr "%H: %s указывает на динамический символ с ненулевым добавлением\n" -#: elf32-frv.c:3582 elf32-frv.c:3703 +#: elf32-frv.c:3583 elf32-frv.c:3704 msgid "%H: cannot emit fixups in read-only section\n" msgstr "%H: невозможно сгенерировать местоположения в разделе только для чтения\n" -#: elf32-frv.c:3612 elf32-frv.c:3745 +#: elf32-frv.c:3613 elf32-frv.c:3746 msgid "%H: cannot emit dynamic relocations in read-only section\n" msgstr "%H: невозможно сгенерировать динамические перемещения в разделе только для чтения\n" -#: elf32-frv.c:3917 +#: elf32-frv.c:3918 #, c-format msgid "%H: reloc against `%s' references a different segment\n" msgstr "%H: перемещение указывает на ссылки «%s» другого сегмента\n" -#: elf32-frv.c:4068 +#: elf32-frv.c:4069 #, c-format msgid "%H: reloc against `%s': %s\n" msgstr "%H: перемещение указывает на «%s»: %s\n" -#: elf32-frv.c:6495 +#: elf32-frv.c:6496 #, c-format msgid "%pB: compiled with %s and linked with modules that use non-pic relocations" msgstr "%pB: скомпилирован с %s и скомпонован с модулями, в которых используются не-pic перемещения" -#: elf32-frv.c:6549 elf32-iq2000.c:830 elf32-m32c.c:876 +#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876 #, c-format msgid "%pB: compiled with %s and linked with modules compiled with %s" msgstr "%pB: скомпилирован с %s и скомпонован с модулями, скомпилированными с %s" -#: elf32-frv.c:6562 +#: elf32-frv.c:6563 #, c-format msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)" msgstr "%pB: используются неизвестные поля e_flags (%#x), отличающиеся от использованных в предыдущих модулях (%#x)" @@ -2385,50 +2501,50 @@ msgstr "%pB: используются неизвестные поля e_flags (% msgid "%pB: relocations in generic ELF (EM: %d)" msgstr "%pB: перемещения в универсальном ELF (EM: %d)" -#: elf32-hppa.c:763 elf32-hppa.c:844 elf64-ppc.c:11859 +#: elf32-hppa.c:761 elf32-hppa.c:842 elf64-ppc.c:12022 msgid "%F%P: Could not assign %pA to an output section. Retry without --enable-non-contiguous-regions.\n" msgstr "%F%P: Невозможно назначить %pA выходному разделу. Повторите без --enable-non-contiguous-regions.\n" -#: elf32-hppa.c:865 elf32-hppa.c:3407 +#: elf32-hppa.c:863 elf32-hppa.c:3403 #, c-format msgid "%pB(%pA+%#): cannot reach %s, recompile with -ffunction-sections" msgstr "%pB(%pA+%#): невозможно достичь %s, перекомпилируйте с -ffunction-sections" -#: elf32-hppa.c:1243 +#: elf32-hppa.c:1241 #, c-format msgid "%pB: relocation %s can not be used when making a shared object; recompile with -fPIC" msgstr "%pB: перемещение %s не может использоваться при создании общего объекта; перекомпилируйте с -fPIC" -#: elf32-hppa.c:2584 +#: elf32-hppa.c:2580 #, c-format msgid "%pB: duplicate export stub %s" msgstr "%pB: повторный экспорт заглушки %s" -#: elf32-hppa.c:3240 +#: elf32-hppa.c:3236 #, c-format msgid "%pB(%pA+%#): %s fixup for insn %#x is not supported in a non-shared link" msgstr "%pB(%pA+%#): местоположение %s для инструкции %#x не поддерживается в не общей ссылке" -#: elf32-hppa.c:4036 +#: elf32-hppa.c:4032 #, c-format msgid "%s has both normal and TLS relocs" msgstr "%s содержит обычные перемещения и перемещения TLS" -#: elf32-hppa.c:4054 +#: elf32-hppa.c:4050 #, c-format msgid "%pB:%s has both normal and TLS relocs" msgstr "%pB:%s содержит обычные перемещения и перемещения TLS" -#: elf32-hppa.c:4113 +#: elf32-hppa.c:4109 #, c-format msgid "%pB(%pA+%#): cannot handle %s for %s" msgstr "%pB(%pA+%#): невозможно обработать %s для %s" -#: elf32-hppa.c:4417 +#: elf32-hppa.c:4413 msgid ".got section not immediately after .plt section" msgstr "раздел .got не может стоять сразу после раздела .plt" -#: elf32-i386.c:1169 elf64-x86-64.c:1382 +#: elf32-i386.c:1169 elf64-x86-64.c:1380 #, c-format msgid "%pB: TLS transition from %s to %s against `%s' at %# in section `%pA' failed" msgstr "%pB: TLS-переход из %s в %s для «%s» по адресу %# в разделе «%pA» завершился ошибкой" @@ -2438,9 +2554,9 @@ msgstr "%pB: TLS-переход из %s в %s для «%s» по адресу %# msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" msgstr "%pB: прямое GOT перемещение R_386_GOT32X c «%s» без базового регистра не может использоваться при создании общего объекта" -#: elf32-i386.c:1721 elf32-s390.c:1153 elf32-sh.c:5494 elf32-tilepro.c:1556 -#: elf32-xtensa.c:1265 elf64-s390.c:1085 elfxx-sparc.c:1555 -#: elfxx-tilegx.c:1769 elfnn-riscv.c:437 +#: elf32-i386.c:1721 elf32-s390.c:1151 elf32-sh.c:5488 elf32-tilepro.c:1548 +#: elf32-xtensa.c:1266 elf64-s390.c:1083 elfxx-sparc.c:1556 +#: elfxx-tilegx.c:1767 elfnn-riscv.c:568 #, c-format msgid "%pB: `%s' accessed both as normal and thread local symbol" msgstr "%pB: «%s» доступен как обычный и как локальный для нити символ" @@ -2450,44 +2566,45 @@ msgstr "%pB: «%s» доступен как обычный и как локал msgid "%pB: unsupported non-PIC call to IFUNC `%s'" msgstr "%pB: неподдерживаемый не PIC вызов IFUNC «%s»" -#: elf32-i386.c:2373 elf64-x86-64.c:2721 +#: elf32-i386.c:2373 elf64-x86-64.c:2721 elfnn-riscv.c:2284 #, c-format msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" msgstr "%pB: перемещение %s с STT_GNU_IFUNC символом «%s» не поддерживается" -#: elf32-i386.c:2406 elf32-i386.c:3654 elf32-i386.c:3795 elf64-x86-64.c:2778 -#: elf64-x86-64.c:4285 elf64-x86-64.c:4441 +#: elf32-i386.c:2406 elf32-i386.c:3677 elf32-i386.c:3824 elf64-x86-64.c:2778 +#: elf64-x86-64.c:4310 elf64-x86-64.c:4472 elfnn-riscv.c:2157 +#: elfnn-riscv.c:2956 elfnn-riscv.c:3030 #, c-format msgid "Local IFUNC function `%s' in %pB\n" msgstr "Локальная функция IFUNC «%s» в %pB\n" -#: elf32-i386.c:2563 +#: elf32-i386.c:2575 #, c-format msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" msgstr "%pB: прямое GOT перемещение %s c «%s» без базового регистра не может использоваться при создании общего объекта" -#: elf32-i386.c:2598 elf64-x86-64.c:2977 +#: elf32-i386.c:2610 elf64-x86-64.c:2988 msgid "hidden symbol" msgstr "скрытый символ" -#: elf32-i386.c:2601 elf64-x86-64.c:2980 +#: elf32-i386.c:2613 elf64-x86-64.c:2991 msgid "internal symbol" msgstr "внутренний символ" -#: elf32-i386.c:2604 elf64-x86-64.c:2983 +#: elf32-i386.c:2616 elf64-x86-64.c:2994 msgid "protected symbol" msgstr "защищённый символ" -#: elf32-i386.c:2607 elf64-x86-64.c:2986 +#: elf32-i386.c:2619 elf64-x86-64.c:2997 msgid "symbol" msgstr "символ" -#: elf32-i386.c:2613 +#: elf32-i386.c:2625 #, c-format msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" msgstr "%pB: перемещение R_386_GOTOFF для неопределённого %s «%s» не может использоваться при создании общего объекта" -#: elf32-i386.c:2626 +#: elf32-i386.c:2638 #, c-format msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" msgstr "%pB: перемещение R_386_GOTOFF для защищённой %s «%s» не может использоваться при создании общего объекта" @@ -2510,158 +2627,158 @@ msgstr "компоновщик ip2k: отсутствует страница и msgid "ip2k linker: redundant page instruction at %# (dest = %#)" msgstr "компоновщик ip2k: повторяющаяся страница инструкций по адресу %# (назнач = %#)" -#: elf32-lm32.c:608 elf32-nios2.c:3148 +#: elf32-lm32.c:609 elf32-nios2.c:3145 msgid "global pointer relative relocation when _gp not defined" msgstr "глобальный указатель относительно перемещения, но _gp не определена" -#: elf32-lm32.c:663 elf32-nios2.c:3585 +#: elf32-lm32.c:664 elf32-nios2.c:3582 msgid "global pointer relative address out of range" msgstr "глобальный указатель относительно адреса вне диапазона" -#: elf32-lm32.c:959 +#: elf32-lm32.c:960 #, c-format msgid "internal error: addend should be zero for %s" msgstr "внутренняя ошибка: добавление должно быть нулём для %s" -#: elf32-m32r.c:1471 +#: elf32-m32r.c:1461 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "перемещение SDA, но _SDA_BASE_ не определена" -#: elf32-m32r.c:2799 elf32-microblaze.c:1097 elf32-microblaze.c:1145 +#: elf32-m32r.c:2776 elf32-microblaze.c:1093 elf32-microblaze.c:1141 #, c-format msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)" msgstr "%pB: цель (%s) перемещения %s в ошибочном разделе (%pA)" -#: elf32-m32r.c:3302 +#: elf32-m32r.c:3279 #, c-format msgid "%pB: instruction set mismatch with previous modules" msgstr "%pB: набор инструкций не совпадает с набором у предыдущих модулей" -#: elf32-m32r.c:3323 elf32-nds32.c:6855 +#: elf32-m32r.c:3300 elf32-nds32.c:6851 #, c-format msgid "private flags = %lx" msgstr "собственные флаги = %lx" -#: elf32-m32r.c:3328 +#: elf32-m32r.c:3305 #, c-format msgid ": m32r instructions" msgstr ": инструкции m32r" -#: elf32-m32r.c:3329 +#: elf32-m32r.c:3306 #, c-format msgid ": m32rx instructions" msgstr ": инструкции m32rx" -#: elf32-m32r.c:3330 +#: elf32-m32r.c:3307 #, c-format msgid ": m32r2 instructions" msgstr ": инструкции m32r2" -#: elf32-m68hc1x.c:1136 +#: elf32-m68hc1x.c:1135 #, c-format msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" msgstr "ссылка на дальний символ «%s» с помощью ошибочного перемещения может привести к неправильному выполнению" -#: elf32-m68hc1x.c:1167 +#: elf32-m68hc1x.c:1166 #, c-format msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." msgstr "Адрес XGATE (%lx) находится вне общей оперативной памяти (0xE000-0xFFFF), поэтому вы должны вручную указывать адрес смещения и, возможно, управлять страницей в коде." -#: elf32-m68hc1x.c:1183 +#: elf32-m68hc1x.c:1182 #, c-format msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" msgstr "банкируемый адрес [%lx:%04lx] (%lx) не совпадает с банком текущего банкируемого адреса [%lx:%04lx] (%lx)" -#: elf32-m68hc1x.c:1198 +#: elf32-m68hc1x.c:1197 #, c-format msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" msgstr "ссылка на банкируемый адрес [%lx:%04lx] в обычном адресном пространстве по адресу %04lx" -#: elf32-m68hc1x.c:1234 +#: elf32-m68hc1x.c:1233 #, c-format msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" msgstr "Адрес S12 (%lx) находится вне общей оперативной памяти (0x2000-0x4000), поэтому вы должны вручную указывать адрес смещения в коде" -#: elf32-m68hc1x.c:1358 +#: elf32-m68hc1x.c:1357 #, c-format msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" msgstr "%pB: компоновка файлов, скомпилированных для 16-битных целых (-mshort), с файлами, скомпилированными для 32-битных целых" -#: elf32-m68hc1x.c:1365 +#: elf32-m68hc1x.c:1364 #, c-format msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" msgstr "%pB: компоновка файлов, скомпилированных для 32-битных double (-fshort-double), с файлами, скомпилированными для 64-битных double" -#: elf32-m68hc1x.c:1374 +#: elf32-m68hc1x.c:1373 #, c-format msgid "%pB: linking files compiled for HCS12 with others compiled for HC12" msgstr "%pB: компоновка файлов, скомпилированных для HCS12, с файлами, скомпилированными для HC12" -#: elf32-m68hc1x.c:1419 elf32-xgate.c:497 +#: elf32-m68hc1x.c:1418 elf32-xgate.c:497 #, c-format msgid "[abi=32-bit int, " msgstr "[abi=32-битное int, " -#: elf32-m68hc1x.c:1421 elf32-xgate.c:499 +#: elf32-m68hc1x.c:1420 elf32-xgate.c:499 #, c-format msgid "[abi=16-bit int, " msgstr "[abi=16-битное int, " -#: elf32-m68hc1x.c:1424 elf32-xgate.c:502 +#: elf32-m68hc1x.c:1423 elf32-xgate.c:502 #, c-format msgid "64-bit double, " msgstr "64-битное double, " -#: elf32-m68hc1x.c:1426 elf32-xgate.c:504 +#: elf32-m68hc1x.c:1425 elf32-xgate.c:504 #, c-format msgid "32-bit double, " msgstr "32-битное double, " -#: elf32-m68hc1x.c:1429 +#: elf32-m68hc1x.c:1428 #, c-format msgid "cpu=HC11]" msgstr "ЦП=HC11]" -#: elf32-m68hc1x.c:1431 +#: elf32-m68hc1x.c:1430 #, c-format msgid "cpu=HCS12]" msgstr "ЦП=HCS12]" -#: elf32-m68hc1x.c:1433 +#: elf32-m68hc1x.c:1432 #, c-format msgid "cpu=HC12]" msgstr "ЦП=HC12]" -#: elf32-m68hc1x.c:1436 +#: elf32-m68hc1x.c:1435 #, c-format msgid " [memory=bank-model]" msgstr " [память=модель с банками]" -#: elf32-m68hc1x.c:1438 +#: elf32-m68hc1x.c:1437 #, c-format msgid " [memory=flat]" msgstr " [память=плоская]" -#: elf32-m68hc1x.c:1441 +#: elf32-m68hc1x.c:1440 #, c-format msgid " [XGATE RAM offsetting]" msgstr " [смещение XGATE памяти]" -#: elf32-m68k.c:1159 elf32-m68k.c:1167 elf32-ppc.c:3583 elf32-ppc.c:3591 +#: elf32-m68k.c:1157 elf32-m68k.c:1165 elf32-ppc.c:3582 elf32-ppc.c:3590 #, c-format msgid "%pB uses hard float, %pB uses soft float" msgstr "%pB использует аппаратную плавающую точку, %pB использует программную плавающую точку" -#: elf32-m68k.c:1282 elf32-m68k.c:1283 vms-alpha.c:7664 vms-alpha.c:7680 +#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:7662 vms-alpha.c:7678 msgid "unknown" msgstr "неизвестно" -#: elf32-m68k.c:1733 +#: elf32-m68k.c:1731 #, c-format msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d" msgstr "%pB: переполнение GOT: количество перемещений с 8-битным смещением > %d" -#: elf32-m68k.c:1740 +#: elf32-m68k.c:1738 #, c-format msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d" msgstr "%pB: переполнение GOT: количество перемещений с 8-ми или 16-битным смещением > %d" @@ -2677,90 +2794,95 @@ msgstr "mep: нет перемещения для кода %d" msgid "MeP: howto %d has type %d" msgstr "MeP: howto %d имеет тип %d" -#: elf32-mep.c:622 +#: elf32-mep.c:618 #, c-format msgid "%pB and %pB are for different cores" msgstr "%pB и %pB для разных ядер" -#: elf32-mep.c:641 +#: elf32-mep.c:637 #, c-format msgid "%pB and %pB are for different configurations" msgstr "%pB и %pB для разных конфигураций" -#: elf32-mep.c:679 +#: elf32-mep.c:675 #, c-format msgid "private flags = 0x%lx" msgstr "собственные флаги = 0x%lx" -#: elf32-metag.c:1859 +#: elf32-metag.c:1857 #, c-format msgid "%pB(%pA): multiple TLS models are not supported" msgstr "%pB(%pA): несколько моделей TLS не поддерживается" -#: elf32-metag.c:1862 +#: elf32-metag.c:1860 #, c-format msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link" msgstr "%pB(%pA): при выполнении статической компоновки обнаружен символ %s общей библиотеки" -#: elf32-microblaze.c:1540 elf32-tilepro.c:3029 elfxx-sparc.c:3427 -#: elfxx-tilegx.c:3417 +#: elf32-microblaze.c:1536 elf32-tilepro.c:3021 elfxx-sparc.c:3446 +#: elfxx-tilegx.c:3415 #, c-format msgid "%pB: probably compiled without -fPIC?" msgstr "%pB: вероятно, компиляция без -fPIC?" -#: elf32-mips.c:1775 elf64-mips.c:3516 elfn32-mips.c:3332 +#: elf32-mips.c:1777 elf64-mips.c:3516 elfn32-mips.c:3334 msgid "literal relocation occurs for an external symbol" msgstr "для внешнего символа обнаружено константное перемещение" -#: elf32-mips.c:1822 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3559 -#: elfn32-mips.c:3373 +#: elf32-mips.c:1824 elf32-score.c:572 elf32-score7.c:472 elf64-mips.c:3559 +#: elfn32-mips.c:3375 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "для внешнего символа обнаружено 32—битное относительное перемещение" -#: elf32-msp430.c:846 elf32-msp430.c:1160 +#: elf32-msp430.c:914 +#, c-format +msgid "error: final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space" +msgstr "ошибка: конечный размер значения uleb128 по смещению 0x%lx в %pA из %pB превышает доступное место" + +#: elf32-msp430.c:983 elf32-msp430.c:1297 msgid "try enabling relaxation to avoid relocation truncations" msgstr "попробуйте включить ослабление, чтобы избежать обрезания перемещений" -#: elf32-msp430.c:1367 +#: elf32-msp430.c:1506 msgid "internal error: branch/jump to an odd address detected" msgstr "внутренняя ошибка: обнаружено ветвление/прыжок по странному адресу" -#: elf32-msp430.c:2532 +#: elf32-msp430.c:2671 #, c-format msgid "warning: %pB: unknown MSPABI object attribute %d" msgstr "предупреждение: %pB: неизвестный атрибут MSPABI-объекта %d" -#: elf32-msp430.c:2633 +#: elf32-msp430.c:2772 #, c-format msgid "error: %pB uses %s instructions but %pB uses %s" msgstr "ошибка: %pB использует инструкции %s, в то время как %pB использует %s" -#: elf32-msp430.c:2645 +#: elf32-msp430.c:2784 #, c-format msgid "error: %pB uses the %s code model whereas %pB uses the %s code model" msgstr "ошибка: %pB использует модель кода %s, в то время как %pB использует модель кода %s" -#: elf32-msp430.c:2658 +#: elf32-msp430.c:2797 #, c-format msgid "error: %pB uses the large code model but %pB uses MSP430 instructions" msgstr "ошибка: %pB использует огромную модель кода, в то время как %pB использует инструкции MSP430" -#: elf32-msp430.c:2669 +#: elf32-msp430.c:2808 #, c-format msgid "error: %pB uses the %s data model whereas %pB uses the %s data model" msgstr "ошибка: %pB использует модель данных %s, в то время как %pB использует модель данных %s" -#: elf32-msp430.c:2682 +#: elf32-msp430.c:2821 #, c-format msgid "error: %pB uses the small code model but %pB uses the %s data model" msgstr "ошибка: %pB использует малую модель данных, в то время как %pB использует модель данных %s" -#: elf32-msp430.c:2694 +#: elf32-msp430.c:2833 #, c-format msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions" msgstr "ошибка: %pB использует модель данных %s, в то время как %pB использует только инструкции MSP430" -#: elf32-msp430.c:2719 +#: elf32-msp430.c:2858 #, c-format msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory" msgstr "ошибка: %pB может использовать верхнюю область для данных, но %pB предполагает, что данные находятся только в нижней области памяти" @@ -2770,303 +2892,303 @@ msgstr "ошибка: %pB может использовать верхнюю о msgid "error: can't find symbol: %s" msgstr "ошибка: невозможно найти символ: %s" -#: elf32-nds32.c:5528 +#: elf32-nds32.c:5524 #, c-format msgid "%pB: warning: %s unsupported in shared mode" msgstr "%pB: предупреждение: %s не поддерживается в общем режиме" -#: elf32-nds32.c:5654 +#: elf32-nds32.c:5650 #, c-format msgid "%pB: warning: unaligned access to GOT entry" msgstr "%pB: предупреждение: невыровненный доступ к элементу GOT" -#: elf32-nds32.c:5695 +#: elf32-nds32.c:5691 #, c-format msgid "%pB: warning: relocate SDA_BASE failed" msgstr "%pB: предупреждение: не удалось выполнить перемещение SDA_BASE" -#: elf32-nds32.c:5717 +#: elf32-nds32.c:5713 #, c-format msgid "%pB(%pA): warning: unaligned small data access of type %d" msgstr "%pB(%pA): предупреждение: невыровненный доступ к малым данным с типом %d" -#: elf32-nds32.c:6643 +#: elf32-nds32.c:6639 #, c-format msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" msgstr "%pB: размер вектора ISR не совпадает с предыдущими модулями, был %u-байтовый, стал %u-байтовый" -#: elf32-nds32.c:6691 +#: elf32-nds32.c:6687 #, c-format msgid "%pB: warning: endian mismatch with previous modules" msgstr "%pB: предупреждение: порядок байт не совпадает с предыдущими модулями" -#: elf32-nds32.c:6705 +#: elf32-nds32.c:6701 #, c-format msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain" msgstr "%pB: предупреждение: обнаружена старая версия объектного файла, перекомпилируйте текущим набором инструментов" -#: elf32-nds32.c:6793 +#: elf32-nds32.c:6789 #, c-format msgid "%pB: error: ABI mismatch with previous modules" msgstr "%pB: ошибка: ABI не совпадает с использованным в предыдущих модулях" -#: elf32-nds32.c:6803 +#: elf32-nds32.c:6799 #, c-format msgid "%pB: error: instruction set mismatch with previous modules" msgstr "%pB: ошибка: набор инструкций не совпадает с использованным в предыдущих модулях" -#: elf32-nds32.c:6830 +#: elf32-nds32.c:6826 #, c-format msgid "%pB: warning: incompatible elf-versions %s and %s" msgstr "%pB: предупреждение: несовместимые версии elf %s и %s" -#: elf32-nds32.c:6861 +#: elf32-nds32.c:6857 #, c-format msgid ": n1 instructions" msgstr ": инструкции n1" -#: elf32-nds32.c:6864 +#: elf32-nds32.c:6860 #, c-format msgid ": n1h instructions" msgstr ": инструкции n1h" -#: elf32-nds32.c:9316 +#: elf32-nds32.c:9313 #, c-format msgid "%pB: error: search_nds32_elf_blank reports wrong node" msgstr "%pB: ошибка: search_nds32_elf_blank сообщает о неверном узле" -#: elf32-nds32.c:9576 +#: elf32-nds32.c:9577 #, c-format msgid "%pB: warning: %s points to unrecognized reloc at %#" msgstr "%pB: предупреждение: %s указывает на нераспознанное перемещение по адресу %#" -#: elf32-nds32.c:12839 +#: elf32-nds32.c:12842 #, c-format msgid "%pB: nested OMIT_FP in %pA" msgstr "%pB: вложенные OMIT_FP в %pA" -#: elf32-nds32.c:12858 +#: elf32-nds32.c:12861 #, c-format msgid "%pB: unmatched OMIT_FP in %pA" msgstr "%pB: несовпадение OMIT_FP в %pA" -#: elf32-nds32.c:13140 reloc.c:8470 +#: elf32-nds32.c:13143 elfxx-mips.c:13407 reloc.c:8508 #, c-format msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n" msgstr "%X%P: %pB(%pA): перемещение «%R» выходит за диапазон\n" -#: elf32-nios2.c:2937 +#: elf32-nios2.c:2934 #, c-format msgid "error: %pB: big-endian R2 is not supported" msgstr "ошибка: %pB: порядок от старшего к младшему R2 не поддерживается" -#: elf32-nios2.c:3829 +#: elf32-nios2.c:3826 #, c-format msgid "global pointer relative relocation at address %# when _gp not defined\n" msgstr "глобальный указатель относительного перемещения по адресу %#, но _gp не определена\n" -#: elf32-nios2.c:3859 +#: elf32-nios2.c:3856 #, c-format msgid "unable to reach %s (at %#) from the global pointer (at %#) because the offset (%) is out of the allowed range, -32678 to 32767\n" msgstr "невозможно достичь %s (по адресу %#) из глобального указателя (%#), так как смещение (%) выходит из разрешённого диапазона -32678—32767\n" -#: elf32-nios2.c:4514 elf32-pru.c:931 +#: elf32-nios2.c:4511 elf32-pru.c:931 msgid "relocation out of range" msgstr "перемещение выходит за диапазон" -#: elf32-nios2.c:4524 elf32-pru.c:941 elf32-tic6x.c:2657 +#: elf32-nios2.c:4521 elf32-pru.c:941 elf32-tic6x.c:2657 msgid "dangerous relocation" msgstr "опасное перемещение" -#: elf32-nios2.c:5367 +#: elf32-nios2.c:5364 #, c-format msgid "dynamic variable `%s' is zero size" msgstr "динамическая переменная «%s» имеет нулевой размер" -#: elf32-or1k.c:1210 +#: elf32-or1k.c:1241 #, c-format msgid "%pB: Cannot handle relocation value size of %d" msgstr "%pB: невозможно обработать размер значения перемещения %d" -#: elf32-or1k.c:1317 +#: elf32-or1k.c:1349 #, c-format msgid "%pB: unknown relocation type %d" msgstr "%pB: неизвестный тип перемещения %d" -#: elf32-or1k.c:1371 +#: elf32-or1k.c:1403 #, c-format msgid "%pB: addend should be zero for plt relocations" msgstr "%pB: добавление должно быть нулём для перемещений plt" -#: elf32-or1k.c:1476 +#: elf32-or1k.c:1520 #, c-format msgid "%pB: addend should be zero for got relocations" msgstr "%pB: добавление должно быть нулём для перемещений got" -#: elf32-or1k.c:1493 +#: elf32-or1k.c:1537 #, c-format msgid "%pB: gotoff relocation against dynamic symbol %s" msgstr "%pB: перемещение gotoff для динамического символа %s" -#: elf32-or1k.c:1510 elf64-alpha.c:4421 elf64-alpha.c:4565 +#: elf32-or1k.c:1554 elf64-alpha.c:4426 elf64-alpha.c:4570 #, c-format msgid "%pB: pc-relative relocation against dynamic symbol %s" msgstr "%pB: pc-относительное перемещение для динамического символа %s" -#: elf32-or1k.c:1524 +#: elf32-or1k.c:1568 #, c-format msgid "%pB: non-pic relocation against symbol %s" msgstr "%pB: не-pic перемещение для символа %s" -#: elf32-or1k.c:1608 +#: elf32-or1k.c:1652 #, c-format msgid "%pB: support for local dynamic not implemented" msgstr "%pB: поддержка локальных динамических элементов не реализована" -#: elf32-or1k.c:1787 +#: elf32-or1k.c:1831 #, c-format msgid "%pB: will not resolve runtime TLS relocation" msgstr "%pB: перемещение TLS времени выполнения не будет решено" -#: elf32-or1k.c:2120 +#: elf32-or1k.c:2165 #, c-format msgid "%pB: bad relocation section name `%s'" msgstr "%pB: неправильное имя перемещаемого раздела «%s»" -#: elf32-or1k.c:3181 +#: elf32-or1k.c:3279 #, c-format msgid "%pB: %s flag mismatch with previous modules" msgstr "%pB: флаг %s не совпадает с предыдущими модулями" -#: elf32-ppc.c:989 +#: elf32-ppc.c:987 elf64-ppc.c:1723 #, c-format msgid "generic linker can't handle %s" msgstr "универсальный компоновщик не смог обработать %s" -#: elf32-ppc.c:1628 +#: elf32-ppc.c:1627 #, c-format msgid "corrupt %s section in %pB" msgstr "повреждённый раздел %s в %pB" -#: elf32-ppc.c:1647 +#: elf32-ppc.c:1646 #, c-format msgid "unable to read in %s section from %pB" msgstr "не удалось прочитать раздел %s из %pB" -#: elf32-ppc.c:1689 +#: elf32-ppc.c:1688 #, c-format msgid "warning: unable to set size of %s section in %pB" msgstr "предупреждение: не удалось задать размер раздела %s в %pB" -#: elf32-ppc.c:1738 +#: elf32-ppc.c:1737 msgid "failed to allocate space for new APUinfo section" msgstr "не удалось выделить место для нового раздела APUinfo" -#: elf32-ppc.c:1757 +#: elf32-ppc.c:1756 msgid "failed to compute new APUinfo section" msgstr "не удалось вычислить новый раздел APUinfo" -#: elf32-ppc.c:1760 +#: elf32-ppc.c:1759 msgid "failed to install new APUinfo section" msgstr "не удалось установить новый раздел APUinfo" -#: elf32-ppc.c:2861 +#: elf32-ppc.c:2858 #, c-format msgid "%pB: relocation %s cannot be used when making a shared object" msgstr "%pB: перемещение %s не может использоваться при создании общего объекта" -#: elf32-ppc.c:3599 elf32-ppc.c:3607 +#: elf32-ppc.c:3598 elf32-ppc.c:3606 #, c-format msgid "%pB uses double-precision hard float, %pB uses single-precision hard float" msgstr "%pB использует аппаратную плавающую точку двойной точности, %pB использует аппаратную плавающую точку одинарной точности" -#: elf32-ppc.c:3629 elf32-ppc.c:3637 +#: elf32-ppc.c:3628 elf32-ppc.c:3636 #, c-format msgid "%pB uses 64-bit long double, %pB uses 128-bit long double" msgstr "%pB использует 64-битный long double, %pB использует 128-битный long double" -#: elf32-ppc.c:3645 elf32-ppc.c:3653 +#: elf32-ppc.c:3644 elf32-ppc.c:3652 #, c-format msgid "%pB uses IBM long double, %pB uses IEEE long double" msgstr "%pB использует long double в формате IBM, %pB использует long double в формате IEEE" -#: elf32-ppc.c:3720 elf32-ppc.c:3729 +#: elf32-ppc.c:3719 elf32-ppc.c:3728 #, c-format msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI" msgstr "%pB использует ABI векторов AltiVec, %pB использует ABI векторов SPE" -#: elf32-ppc.c:3758 elf32-ppc.c:3767 +#: elf32-ppc.c:3757 elf32-ppc.c:3766 #, c-format msgid "%pB uses r3/r4 for small structure returns, %pB uses memory" msgstr "%pB использует r3/r4 для возврата маленькой структуры, %pB использует память" -#: elf32-ppc.c:3831 +#: elf32-ppc.c:3830 #, c-format msgid "%pB: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%pB: скомпилирована с параметром -mrelocatable и нормально скомпонована со скомпилированными модулями" -#: elf32-ppc.c:3839 +#: elf32-ppc.c:3838 #, c-format msgid "%pB: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%pB: нормально скомпилирована и скомпонована с модулями, скомпилированными с параметром -mrelocatable" -#: elf32-ppc.c:3908 +#: elf32-ppc.c:3907 #, c-format msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn" msgstr "%pB(%pA+0x%lx): ожидается перемещение в формате 16A по адресу 0x%08x insn" -#: elf32-ppc.c:3927 +#: elf32-ppc.c:3926 #, c-format msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn" msgstr "%pB(%pA+0x%lx): ожидается перемещение в формате 16D по адресу 0x%08x insn" -#: elf32-ppc.c:4030 +#: elf32-ppc.c:4029 #, c-format msgid "bss-plt forced due to %pB" msgstr "принудительно используется bss-plt из-за %pB" -#: elf32-ppc.c:4032 +#: elf32-ppc.c:4031 msgid "bss-plt forced by profiling" msgstr "принудительно используется bss-plt из-за профилирования" +#: elf32-ppc.c:4608 elf64-ppc.c:8317 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: предупреждение: в %s не ожидалось insn %#x.\n" + #. Uh oh, we didn't find the expected call. We #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:4606 elf64-ppc.c:8252 +#: elf32-ppc.c:4638 elf64-ppc.c:8382 #, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "%H аргумент lost __tls_get_addr, оптимизация TLS выключена\n" -#: elf32-ppc.c:5513 elf32-sh.c:3023 elf32-tilepro.c:2256 elfxx-sparc.c:2453 -#: elfxx-tilegx.c:2496 +#: elf32-ppc.c:5564 elf32-sh.c:3017 elf32-tilepro.c:2248 elfxx-sparc.c:2454 +#: elfxx-tilegx.c:2494 #, c-format msgid "%pB: dynamic relocation in read-only section `%pA'\n" msgstr "%pB: динамическое перемещение в разделе только для чтения «%pA»\n" -#: elf32-ppc.c:7356 +#: elf32-ppc.c:7407 msgid "%P: %H: error: %s with unexpected instruction %x\n" msgstr "%P: %H: ошибка: %s с неожиданной инструкцией %x\n" -#: elf32-ppc.c:7393 +#: elf32-ppc.c:7444 msgid "%H: fixup branch overflow\n" msgstr "%H: переполнение ветви местоположений\n" -#: elf32-ppc.c:7433 elf32-ppc.c:7469 +#: elf32-ppc.c:7484 elf32-ppc.c:7520 #, c-format msgid "%pB(%pA+%#): error: %s with unexpected instruction %#x" msgstr "%pB(%pA+%#): ошибка: %s с неожиданной инструкцией %#x" -#: elf32-ppc.c:7533 +#: elf32-ppc.c:7584 #, c-format msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" msgstr "%X%H: неподдерживаемая bss-plt -fPIC ifunc %s\n" -#: elf32-ppc.c:7572 elf64-ppc.c:16848 -msgid "%H: warning: %s unexpected insn %#x.\n" -msgstr "%H: предупреждение: в %s не ожидалось insn %#x.\n" - -#: elf32-ppc.c:7881 +#: elf32-ppc.c:7899 #, c-format msgid "%H: non-zero addend on %s reloc against `%s'\n" msgstr "%H: ненулевое добавление в перемещении %s для «%s»\n" @@ -3079,49 +3201,49 @@ msgstr "%H: ненулевое добавление в перемещении %s #. local won't have the +32k reloc addend trick marking #. -fPIC code, so the linker won't know whether r30 is #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. -#: elf32-ppc.c:7913 +#: elf32-ppc.c:7931 #, c-format msgid "%X%H: @local call to ifunc %s\n" msgstr "%X%H: @local вызов ifunc %s\n" -#: elf32-ppc.c:8091 +#: elf32-ppc.c:8109 #, c-format msgid "%H: relocation %s for indirect function %s unsupported\n" msgstr "%H: перемещение %s для неявного вызова функции %s не поддерживается\n" -#: elf32-ppc.c:8425 elf32-ppc.c:8456 elf32-ppc.c:8547 elf32-ppc.c:8643 +#: elf32-ppc.c:8441 elf32-ppc.c:8472 elf32-ppc.c:8563 elf32-ppc.c:8659 #, c-format msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)" msgstr "%pB: назначение (%s) перемещения %s в ошибочный выходной раздел (%s)" -#: elf32-ppc.c:8773 elf32-ppc.c:8791 +#: elf32-ppc.c:8814 elf32-ppc.c:8832 msgid "%X%P: %H: %s relocation unsupported for bss-plt\n" msgstr "%X%P: %H: перемещение %s не поддерживается для bss-plt\n" -#: elf32-ppc.c:8872 +#: elf32-ppc.c:8913 #, c-format msgid "%H: error: %s against `%s' not a multiple of %u\n" msgstr "%H: ошибка: %s в «%s» не кратно %u\n" -#: elf32-ppc.c:8901 +#: elf32-ppc.c:8942 #, c-format msgid "%H: unresolvable %s relocation against symbol `%s'\n" msgstr "%H: неразрешимое перемещение %s для символа «%s»\n" -#: elf32-ppc.c:8982 +#: elf32-ppc.c:9023 #, c-format msgid "%H: %s reloc against `%s': error %d\n" msgstr "%H: перемещение %s для «%s»: ошибка %d\n" -#: elf32-ppc.c:9872 +#: elf32-ppc.c:9904 msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" msgstr "%X%P: текстовые перемещения и неявные функции GNU приведут к ошибке сегментирования во время выполнения\n" -#: elf32-ppc.c:9876 elf64-ppc.c:17398 +#: elf32-ppc.c:9908 elf64-ppc.c:17667 msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" msgstr "%P: предупреждение: текстовые перемещения и неявные функции GNU могут привести к ошибке сегментирования во время выполнения\n" -#: elf32-ppc.c:9921 +#: elf32-ppc.c:9953 #, c-format msgid "%s not defined in linker created %pA" msgstr "%s не определено в компоновщике, созданном %pA" @@ -3215,201 +3337,201 @@ msgstr " флаги входного файла: %s" msgid " the output file's flags: %s" msgstr " флаги выходного файла: %s" -#: elf32-rx.c:3784 +#: elf32-rx.c:3785 #, c-format msgid "%pB:%pA: table %s missing corresponding %s" msgstr "%pB:%pA: отсутствует таблица %s, соответствующая %s" -#: elf32-rx.c:3792 +#: elf32-rx.c:3793 #, c-format msgid "%pB:%pA: %s and %s must be in the same input section" msgstr "%pB:%pA: %s и %s должны быть в одном входном разделе" -#: elf32-s390.c:2011 elf64-s390.c:1965 +#: elf32-s390.c:2009 elf64-s390.c:1963 #, c-format msgid "%pB(%pA+%#): invalid instruction for TLS relocation %s" msgstr "%pB(%pA+%#): недопустимая инструкция для TLS-перемещения %s" -#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3800 +#: elf32-score.c:1524 elf32-score7.c:1385 elfxx-mips.c:3798 msgid "not enough GOT space for local GOT entries" msgstr "недостаточно пространства GOT для локальных элементов GOT" -#: elf32-score.c:2747 +#: elf32-score.c:2756 msgid "address not word aligned" msgstr "адрес не выровнен по границе слова" -#: elf32-score.c:2828 elf32-score7.c:2633 +#: elf32-score.c:2837 elf32-score7.c:2642 #, c-format msgid "%pB: malformed reloc detected for section %pA" msgstr "%pB: обнаружено искажённое перемещение в разделе %pA" -#: elf32-score.c:2882 elf32-score7.c:2687 +#: elf32-score.c:2891 elf32-score7.c:2696 #, c-format msgid "%pB: CALL15 reloc at %# not against global symbol" msgstr "%pB: перемещение CALL15 по адресу %# не для глобального символа" -#: elf32-score.c:4003 elf32-score7.c:3808 +#: elf32-score.c:3999 elf32-score7.c:3804 #, c-format msgid " [pic]" msgstr " [pic]" -#: elf32-score.c:4007 elf32-score7.c:3812 +#: elf32-score.c:4003 elf32-score7.c:3808 #, c-format msgid " [fix dep]" msgstr " [fix dep]" -#: elf32-score.c:4054 elf32-score7.c:3859 +#: elf32-score.c:4050 elf32-score7.c:3855 #, c-format msgid "%pB: warning: linking PIC files with non-PIC files" msgstr "%pB: предупреждение: выполняется компоновка PIC-файлов с не-PIC файлами" -#: elf32-sh.c:533 +#: elf32-sh.c:532 #, c-format msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn 0x%x" msgstr "%pB: %#: предупреждение: R_SH_USES указывает на нераспознанную инструкцию 0x%x" -#: elf32-sh.c:3758 +#: elf32-sh.c:3752 #, c-format msgid "%pB: %#: fatal: unaligned branch target for relax-support relocation" msgstr "%pB: %#: останов: невыровненное назначение ветвления для перемещения с поддержкой ослабления" -#: elf32-sh.c:3788 elf32-sh.c:3804 +#: elf32-sh.c:3782 elf32-sh.c:3798 #, c-format msgid "%pB: %#: fatal: unaligned %s relocation %#" msgstr "%pB: %#: останов: невыровненное перемещение %s (%#)" -#: elf32-sh.c:3820 +#: elf32-sh.c:3814 #, c-format msgid "%pB: %#: fatal: R_SH_PSHA relocation % not in range -32..32" msgstr "%pB: %#: останов: перемещение R_SH_PSHA %# вне диапазона -32..32" -#: elf32-sh.c:3836 +#: elf32-sh.c:3830 #, c-format msgid "%pB: %#: fatal: R_SH_PSHL relocation % not in range -32..32" msgstr "%pB: %#: останов: перемещение R_SH_PSHL %# вне диапазона -32..32" -#: elf32-sh.c:3966 elf32-sh.c:4361 +#: elf32-sh.c:3960 elf32-sh.c:4355 #, c-format msgid "%pB(%pA+%#): cannot emit fixup to `%s' in read-only section" msgstr "%pB(%pA+%#): невозможно сгенерировать местоположение к «%s» в разделе только для чтения" -#: elf32-sh.c:4464 +#: elf32-sh.c:4458 #, c-format msgid "%pB(%pA+%#): %s relocation against external symbol \"%s\"" msgstr "%pB(%pA+%#): перемещение %s для внешнего символа «%s»" -#: elf32-sh.c:4583 +#: elf32-sh.c:4577 #, c-format msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#" msgstr "%pB(%pA): смещение в перемещении для трансляции GD->LE слишком мало: %#" #. The backslash is to prevent bogus trigraph detection. -#: elf32-sh.c:4601 +#: elf32-sh.c:4595 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0xd4??)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0xd4??)" -#: elf32-sh.c:4609 +#: elf32-sh.c:4603 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0xc7??)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0xc7??)" -#: elf32-sh.c:4616 +#: elf32-sh.c:4610 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0xd1??)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0xd1??)" -#: elf32-sh.c:4623 +#: elf32-sh.c:4617 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0x310c)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0x310c)" -#: elf32-sh.c:4630 +#: elf32-sh.c:4624 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0x410b)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0x410b)" -#: elf32-sh.c:4637 +#: elf32-sh.c:4631 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0x34cc)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0x34cc)" -#: elf32-sh.c:4672 +#: elf32-sh.c:4666 #, c-format msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#" msgstr "%pB(%pA): смещение в перемещении для трансляции IE->LE слишком мало: %#" -#: elf32-sh.c:4690 +#: elf32-sh.c:4684 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0xd0??: mov.l)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0xd0??: mov.l)" -#: elf32-sh.c:4699 +#: elf32-sh.c:4693 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0x0?12: stc)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0x0?12: stc)" -#: elf32-sh.c:4706 +#: elf32-sh.c:4700 #, c-format msgid "%pB(%pA+%#): unexpected instruction %#04X (expected 0x0?ce: mov.l)" msgstr "%pB(%pA+%#): неожиданная инструкция %#04X (ожидалась 0x0?ce: mov.l)" -#: elf32-sh.c:4821 +#: elf32-sh.c:4815 #, c-format msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#" msgstr "%pB(%pA): смещение в перемещении для трансляции GD->IE слишком мало: %#" -#: elf32-sh.c:4889 +#: elf32-sh.c:4883 #, c-format msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#" msgstr "%pB(%pA): смещение в перемещении для трансляции LD->LE слишком мало: %#" -#: elf32-sh.c:5017 +#: elf32-sh.c:5011 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" msgstr "%X%C: перемещение указывает на ссылки «%s» другого сегмента\n" -#: elf32-sh.c:5024 +#: elf32-sh.c:5018 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" msgstr "%C: предупреждение: перемещение указывает на ссылки «%s» другого сегмента\n" -#: elf32-sh.c:5483 elf32-sh.c:5565 +#: elf32-sh.c:5477 elf32-sh.c:5559 #, c-format msgid "%pB: `%s' accessed both as normal and FDPIC symbol" msgstr "%pB: «%s» доступен как обычный и как FDPIC символ" -#: elf32-sh.c:5489 elf32-sh.c:5570 +#: elf32-sh.c:5483 elf32-sh.c:5564 #, c-format msgid "%pB: `%s' accessed both as FDPIC and thread local symbol" msgstr "%pB: «%s» доступен как FDPIC и как локальный символ нити" -#: elf32-sh.c:5520 +#: elf32-sh.c:5514 #, c-format msgid "%pB: Function descriptor relocation with non-zero addend" msgstr "%pB: перемещение дескриптора функции с ненулевым добавлением" -#: elf32-sh.c:5727 elf64-alpha.c:4657 +#: elf32-sh.c:5721 elf64-alpha.c:4662 #, c-format msgid "%pB: TLS local exec code cannot be linked into shared objects" msgstr "%pB: локальный исполняемый код TLS не может быть скомпонован с общими объектами" -#: elf32-sh.c:5842 +#: elf32-sh.c:5836 #, c-format msgid "%pB: uses %s instructions while previous modules use %s instructions" msgstr "%pB: используются инструкции %s, хотя в предыдущих модулях использовались инструкции %s" -#: elf32-sh.c:5854 +#: elf32-sh.c:5848 #, c-format msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" msgstr "внутренняя ошибка: объединение архитектуры «%s» с архитектурой «%s» создаёт неизвестную архитектуру" -#: elf32-sh.c:5895 +#: elf32-sh.c:5889 #, c-format msgid "%pB: uses instructions which are incompatible with instructions used in previous modules" msgstr "%pB: используются инструкции, не совместимые с инструкциями, использовавшимися в предыдущих модулях" -#: elf32-sh.c:5908 +#: elf32-sh.c:5902 #, c-format msgid "%pB: attempt to mix FDPIC and non-FDPIC objects" msgstr "%pB: попытка смешать объекты FDPIC и не FDPIC" @@ -3429,118 +3551,118 @@ msgstr "%pB: производится компоновка файлов с об msgid "%pB: unhandled sparc machine value '%lu' detected during write processing" msgstr "%pB: во время выполнения записи обнаружено необработанное машинное значение sparc «%lu»" -#: elf32-spu.c:735 +#: elf32-spu.c:736 msgid "%X%P: overlay section %pA does not start on a cache line\n" msgstr "%X%P: раздел оверлея %pA не начинается со строки кэша\n" -#: elf32-spu.c:743 +#: elf32-spu.c:744 msgid "%X%P: overlay section %pA is larger than a cache line\n" msgstr "%X%P: раздел оверлея %pA больше строки кэша\n" -#: elf32-spu.c:763 +#: elf32-spu.c:764 msgid "%X%P: overlay section %pA is not in cache area\n" msgstr "%X%P: раздел оверлея %pA не в области кэша\n" -#: elf32-spu.c:804 +#: elf32-spu.c:805 #, c-format msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n" msgstr "%X%P: разделы оверлеев %pA и %pA не начинаются с одинакового адреса\n" -#: elf32-spu.c:1030 +#: elf32-spu.c:1031 #, c-format msgid "warning: call to non-function symbol %s defined in %pB" msgstr "предупреждение: вызов символа не-функции %s, определённой в %pB" -#: elf32-spu.c:1380 +#: elf32-spu.c:1381 #, c-format msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" msgstr "%pA:0x%v lrlive .brinfo (%u) отличается от анализируемого (%u)\n" -#: elf32-spu.c:1910 +#: elf32-spu.c:1911 #, c-format msgid "%pB is not allowed to define %s" msgstr "%pB не разрешено определять %s" -#: elf32-spu.c:1918 +#: elf32-spu.c:1919 #, c-format msgid "you are not allowed to define %s in a script" msgstr "вам не разрешено определять %s в сценарии" -#: elf32-spu.c:1952 +#: elf32-spu.c:1953 #, c-format msgid "%s in overlay section" msgstr "%s в разделе оверлеев" -#: elf32-spu.c:1981 +#: elf32-spu.c:1982 msgid "overlay stub relocation overflow" msgstr "переполнение оверлейной заглушки перемещения" -#: elf32-spu.c:1990 elf64-ppc.c:14496 +#: elf32-spu.c:1991 elf64-ppc.c:14761 msgid "stubs don't match calculated size" msgstr "заглушка не соответствует вычисленному размеру" -#: elf32-spu.c:2573 +#: elf32-spu.c:2574 #, c-format msgid "warning: %s overlaps %s\n" msgstr "предупреждение: %s перекрывается с %s\n" -#: elf32-spu.c:2589 +#: elf32-spu.c:2590 #, c-format msgid "warning: %s exceeds section size\n" msgstr "предупреждение: %s превышает размер раздела\n" -#: elf32-spu.c:2621 +#: elf32-spu.c:2622 #, c-format msgid "%pA:0x%v not found in function table\n" msgstr "%pA:0x%v не найдена в таблице функций\n" -#: elf32-spu.c:2762 +#: elf32-spu.c:2763 #, c-format msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n" msgstr "%pB(%pA+0x%v): вызов не кодового раздела %pB(%pA), анализ не полон\n" -#: elf32-spu.c:3328 +#: elf32-spu.c:3329 #, c-format msgid "stack analysis will ignore the call from %s to %s\n" msgstr "в анализе стека будет игнорироваться вызов из %s в %s\n" -#: elf32-spu.c:4025 +#: elf32-spu.c:4026 msgid " calls:\n" msgstr " вызовы:\n" -#: elf32-spu.c:4340 +#: elf32-spu.c:4341 #, c-format msgid "%s duplicated in %s\n" msgstr "%s повторяется в %s\n" -#: elf32-spu.c:4344 +#: elf32-spu.c:4345 #, c-format msgid "%s duplicated\n" msgstr "%s повторяется\n" -#: elf32-spu.c:4351 +#: elf32-spu.c:4352 msgid "sorry, no support for duplicate object files in auto-overlay script\n" msgstr "поддержка повторяющихся объектных файлов в сценарии auto-overlay пока не сделана\n" -#: elf32-spu.c:4393 +#: elf32-spu.c:4394 #, c-format msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n" msgstr "не оверлейный размер 0x%v плюс максимальный размер оверлея 0x%v превышает локальное хранилище\n" -#: elf32-spu.c:4549 +#: elf32-spu.c:4550 #, c-format msgid "%pB:%pA%s exceeds overlay size\n" msgstr "%pB:%pA%s превышает размер оверлея\n" -#: elf32-spu.c:4690 +#: elf32-spu.c:4691 msgid "%F%P: auto overlay error: %E\n" msgstr "%F%P: ошибка автоматического оверлея: %E\n" -#: elf32-spu.c:4711 +#: elf32-spu.c:4712 msgid "Stack size for call graph root nodes.\n" msgstr "Размер стека для вызова графа корневых узлов.\n" -#: elf32-spu.c:4712 +#: elf32-spu.c:4713 msgid "" "\n" "Stack size for functions. Annotations: '*' max stack, 't' tail call\n" @@ -3548,23 +3670,23 @@ msgstr "" "\n" "Размер стека для функций. Примечания: '*' макс стек, 't' хвостовой вызов\n" -#: elf32-spu.c:4722 +#: elf32-spu.c:4723 msgid "Maximum stack required is 0x%v\n" msgstr "Для максимального стека требуется 0x%v\n" -#: elf32-spu.c:4741 +#: elf32-spu.c:4742 msgid "%X%P: stack/lrlive analysis error: %E\n" msgstr "%X%P: ошибка при анализе стека/lrlive: %E\n" -#: elf32-spu.c:4744 +#: elf32-spu.c:4745 msgid "%F%P: can not build overlay stubs: %E\n" msgstr "%F%P: невозможно собрать заглушки оверлея: %E\n" -#: elf32-spu.c:4813 +#: elf32-spu.c:4814 msgid "fatal error while creating .fixup" msgstr "неисправимая ошибка при создании .fixup" -#: elf32-spu.c:5049 +#: elf32-spu.c:5050 #, c-format msgid "%pB(%s+%#): unresolvable %s relocation against symbol `%s'" msgstr "%pB(%s+%#): неразрешимое перемещение %s для символа «%s»" @@ -3582,48 +3704,48 @@ msgstr "предупреждение: генерация общей библио msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined" msgstr "%pB: относительное перемещение SB, но __c6xabi_DSBT_BASE не определён" -#: elf32-tic6x.c:3511 +#: elf32-tic6x.c:3498 #, c-format msgid "%pB: error: unknown mandatory EABI object attribute %d" msgstr "%pB: ошибка: неизвестный обязательный атрибут EABI-объекта %d" -#: elf32-tic6x.c:3520 +#: elf32-tic6x.c:3507 #, c-format msgid "%pB: warning: unknown EABI object attribute %d" msgstr "%pB: предупреждение: неизвестный атрибут EABI-объекта %d" -#: elf32-tic6x.c:3638 elf32-tic6x.c:3647 +#: elf32-tic6x.c:3625 elf32-tic6x.c:3634 #, c-format msgid "error: %pB requires more stack alignment than %pB preserves" msgstr "ошибка: для %pB требуется большее выравнивание стека, чем сохранено в %pB" -#: elf32-tic6x.c:3657 elf32-tic6x.c:3666 +#: elf32-tic6x.c:3644 elf32-tic6x.c:3653 #, c-format msgid "error: unknown Tag_ABI_array_object_alignment value in %pB" msgstr "ошибка: неизвестное значение Tag_ABI_array_object_alignment в %pB" -#: elf32-tic6x.c:3675 elf32-tic6x.c:3684 +#: elf32-tic6x.c:3662 elf32-tic6x.c:3671 #, c-format msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB" msgstr "ошибка: неизвестное значение Tag_ABI_array_object_align_expected в %pB" -#: elf32-tic6x.c:3693 elf32-tic6x.c:3701 +#: elf32-tic6x.c:3680 elf32-tic6x.c:3688 #, c-format msgid "error: %pB requires more array alignment than %pB preserves" msgstr "ошибка: для %pB требуется большее выравнивание массива, чем сохранено в %pB" -#: elf32-tic6x.c:3724 +#: elf32-tic6x.c:3711 #, c-format msgid "warning: %pB and %pB differ in wchar_t size" msgstr "предупреждение: в %pB и %pB различается размер wchar_t" -#: elf32-tic6x.c:3743 +#: elf32-tic6x.c:3730 #, c-format msgid "warning: %pB and %pB differ in whether code is compiled for DSBT" msgstr "предупреждение: в %pB и %pB по-разному скомпилирован код для DSBT" -#: elf32-tilepro.c:3635 elfxx-tilegx.c:4019 elfxx-x86.c:1393 -#: elfnn-aarch64.c:9704 elfnn-riscv.c:2522 +#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:1397 +#: elfnn-aarch64.c:9711 elfnn-riscv.c:3253 #, c-format msgid "discarded output section: `%pA'" msgstr "отброшенный выходной раздел: «%pA»" @@ -3653,225 +3775,225 @@ msgstr "переменная «%s» не может быть в маленьки msgid "variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "переменная «%s» не может быть в нулевых и крошечных областях данных одновременно" -#: elf32-v850.c:462 +#: elf32-v850.c:466 msgid "failed to find previous HI16 reloc" msgstr "не удалось найти предыдущее перемещение HI16" -#: elf32-v850.c:2302 +#: elf32-v850.c:2306 msgid "could not locate special linker symbol __gp" msgstr "невозможно отыскать специальный символ компоновки __gp" -#: elf32-v850.c:2306 +#: elf32-v850.c:2310 msgid "could not locate special linker symbol __ep" msgstr "невозможно отыскать специальный символ компоновки __ep" -#: elf32-v850.c:2310 +#: elf32-v850.c:2314 msgid "could not locate special linker symbol __ctbp" msgstr "невозможно отыскать специальный символ компоновки __ctbp" -#: elf32-v850.c:2531 +#: elf32-v850.c:2535 #, c-format msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment" msgstr "ошибка: для %pB требуется 8-байтовое выравнивание, но для %pB задано 4-байтовое выравнивание" -#: elf32-v850.c:2547 +#: elf32-v850.c:2551 #, c-format msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles" msgstr "ошибка: в %pB используются 64-битные double, но в %pB используют 32-битные double" -#: elf32-v850.c:2562 +#: elf32-v850.c:2566 #, c-format msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0" msgstr "ошибка: в %pB используется FPU-3.0, в то время как %pB поддерживает только FPU-2.0" -#: elf32-v850.c:2594 +#: elf32-v850.c:2598 #, c-format msgid " alignment of 8-byte entities: " msgstr " выравнивание 8-байтовых элементов: " -#: elf32-v850.c:2597 +#: elf32-v850.c:2601 #, c-format msgid "4-byte" msgstr "4-байтовое" -#: elf32-v850.c:2598 +#: elf32-v850.c:2602 #, c-format msgid "8-byte" msgstr "8-байтовое" -#: elf32-v850.c:2599 elf32-v850.c:2611 +#: elf32-v850.c:2603 elf32-v850.c:2615 #, c-format msgid "not set" msgstr " [не задано]" -#: elf32-v850.c:2600 elf32-v850.c:2612 elf32-v850.c:2624 elf32-v850.c:2635 -#: elf32-v850.c:2646 elf32-v850.c:2657 +#: elf32-v850.c:2604 elf32-v850.c:2616 elf32-v850.c:2628 elf32-v850.c:2639 +#: elf32-v850.c:2650 elf32-v850.c:2661 #, c-format msgid "unknown: %x" msgstr "неизвестно: %x" -#: elf32-v850.c:2606 +#: elf32-v850.c:2610 #, c-format msgid " size of doubles: " msgstr " размер double: " -#: elf32-v850.c:2609 +#: elf32-v850.c:2613 #, c-format msgid "4-bytes" msgstr "4-байтовые" -#: elf32-v850.c:2610 +#: elf32-v850.c:2614 #, c-format msgid "8-bytes" msgstr "8-байтовые" -#: elf32-v850.c:2618 +#: elf32-v850.c:2622 #, c-format msgid " FPU support required: " msgstr " требуемая поддержка FPU: " -#: elf32-v850.c:2621 +#: elf32-v850.c:2625 #, c-format msgid "FPU-2.0" msgstr "FPU-2.0" -#: elf32-v850.c:2622 +#: elf32-v850.c:2626 #, c-format msgid "FPU-3.0" msgstr "FPU-3.0" -#: elf32-v850.c:2623 +#: elf32-v850.c:2627 #, c-format msgid "none" msgstr "не требуется" -#: elf32-v850.c:2630 +#: elf32-v850.c:2634 #, c-format msgid "SIMD use: " msgstr "Использование SIMD: " -#: elf32-v850.c:2633 elf32-v850.c:2644 elf32-v850.c:2655 +#: elf32-v850.c:2637 elf32-v850.c:2648 elf32-v850.c:2659 #, c-format msgid "yes" msgstr "да" -#: elf32-v850.c:2634 elf32-v850.c:2645 elf32-v850.c:2656 +#: elf32-v850.c:2638 elf32-v850.c:2649 elf32-v850.c:2660 #, c-format msgid "no" msgstr "нет" -#: elf32-v850.c:2641 +#: elf32-v850.c:2645 #, c-format msgid "CACHE use: " msgstr "Использование CACHE: " -#: elf32-v850.c:2652 +#: elf32-v850.c:2656 #, c-format msgid "MMU use: " msgstr "Использование MMU: " -#: elf32-v850.c:2819 elf32-v850.c:2875 +#: elf32-v850.c:2823 elf32-v850.c:2879 #, c-format msgid "%pB: architecture mismatch with previous modules" msgstr "%pB: архитектура не совпадает с использованной в предыдущих модулях" #. xgettext:c-format. -#: elf32-v850.c:2893 +#: elf32-v850.c:2897 #, c-format msgid "private flags = %lx: " msgstr "собственные флаги = %lx: " -#: elf32-v850.c:2898 +#: elf32-v850.c:2902 #, c-format msgid "unknown v850 architecture" msgstr "неизвестная архитектура v850" -#: elf32-v850.c:2900 +#: elf32-v850.c:2904 #, c-format msgid "v850 E3 architecture" msgstr "архитектура v850 E3" -#: elf32-v850.c:2902 elf32-v850.c:2909 +#: elf32-v850.c:2906 elf32-v850.c:2913 #, c-format msgid "v850 architecture" msgstr "архитектура v850" -#: elf32-v850.c:2910 +#: elf32-v850.c:2914 #, c-format msgid "v850e architecture" msgstr "архитектура v850e" -#: elf32-v850.c:2911 +#: elf32-v850.c:2915 #, c-format msgid "v850e1 architecture" msgstr "архитектура v850e1" -#: elf32-v850.c:2912 +#: elf32-v850.c:2916 #, c-format msgid "v850e2 architecture" msgstr "архитектура v850e2" -#: elf32-v850.c:2913 +#: elf32-v850.c:2917 #, c-format msgid "v850e2v3 architecture" msgstr "архитектура v850e2v3" -#: elf32-v850.c:2914 +#: elf32-v850.c:2918 #, c-format msgid "v850e3v5 architecture" msgstr "архитектура v850e3v5" -#: elf32-v850.c:3612 elf32-v850.c:3851 +#: elf32-v850.c:3591 elf32-v850.c:3830 #, c-format msgid "%pB: %#: warning: %s points to unrecognized insns" msgstr "%pB: %#: предупреждение: %s указывает на нераспознанные инструкции" -#: elf32-v850.c:3622 elf32-v850.c:3861 +#: elf32-v850.c:3601 elf32-v850.c:3840 #, c-format msgid "%pB: %#: warning: %s points to unrecognized insn %#x" msgstr "%pB: %#: предупреждение: %s указывает на нераспознанную инструкцию %#x" -#: elf32-v850.c:3668 elf32-v850.c:3896 +#: elf32-v850.c:3647 elf32-v850.c:3875 #, c-format msgid "%pB: %#: warning: %s points to unrecognized reloc" msgstr "%pB: %#: предупреждение: %s указывает на нераспознанное перемещение" -#: elf32-v850.c:3708 +#: elf32-v850.c:3687 #, c-format msgid "%pB: %#: warning: %s points to unrecognized reloc %#" msgstr "%pB: %#: предупреждение: %s указывает на нераспознанное перемещение по адресу %#" -#: elf32-vax.c:540 +#: elf32-vax.c:539 #, c-format msgid " [nonpic]" msgstr " [не-pic]" -#: elf32-vax.c:543 +#: elf32-vax.c:542 #, c-format msgid " [d-float]" msgstr " [d-float]" -#: elf32-vax.c:546 +#: elf32-vax.c:545 #, c-format msgid " [g-float]" msgstr " [g-float]" -#: elf32-vax.c:632 +#: elf32-vax.c:631 #, c-format msgid "%pB: warning: GOT addend of % to `%s' does not match previous GOT addend of %" msgstr "%pB: предупреждение: добавление GOT из % к «%s» не совпадает с предыдущим добавлением GOT из %" -#: elf32-vax.c:1389 +#: elf32-vax.c:1388 #, c-format msgid "%pB: warning: PLT addend of % to `%s' from %pA section ignored" msgstr "%pB: предупреждение: добавление PLT из % к «%s» из раздела %pA игнорируется" -#: elf32-vax.c:1515 +#: elf32-vax.c:1514 #, c-format msgid "%pB: warning: %s relocation against symbol `%s' from %pA section" msgstr "%pB: предупреждение: перемещение %s для символа «%s» из раздела %pA" -#: elf32-vax.c:1522 +#: elf32-vax.c:1521 #, c-format msgid "%pB: warning: %s relocation to %# from %pA section" msgstr "%pB: предупреждение: перемещение %s к % из раздела %pA" @@ -3891,60 +4013,60 @@ msgstr "процессор=XGATE]" msgid "error reading cpu type from elf private data" msgstr "ошибка чтения типа процессора из закрытых данных elf" -#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2074 elfnn-ia64.c:2343 +#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345 msgid "non-zero addend in @fptr reloc" msgstr "ненулевое добавление в перемещение @fptr" -#: elf32-xtensa.c:1001 +#: elf32-xtensa.c:1002 #, c-format msgid "%pB(%pA): invalid property table" msgstr "%pB(%pA): некорректная таблица свойств" -#: elf32-xtensa.c:2733 +#: elf32-xtensa.c:2734 #, c-format msgid "%pB(%pA+%#): relocation offset out of range (size=%#)" msgstr "%pB(%pA+%): смещение перемещения вне диапазона (размер=%)" -#: elf32-xtensa.c:2816 elf32-xtensa.c:2939 +#: elf32-xtensa.c:2817 elf32-xtensa.c:2940 msgid "dynamic relocation in read-only section" msgstr "динамическое перемещение в разделе только для чтения" -#: elf32-xtensa.c:2916 +#: elf32-xtensa.c:2917 msgid "TLS relocation invalid without dynamic sections" msgstr "TLS-перемещение недопустимо без динамических разделов" -#: elf32-xtensa.c:3126 +#: elf32-xtensa.c:3130 msgid "internal inconsistency in size of .got.loc section" msgstr "внутренняя несогласованность размера раздела .got.loc" -#: elf32-xtensa.c:3432 +#: elf32-xtensa.c:3436 #, c-format msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x" msgstr "%pB: несовместимый машинный тип; выходной 0x%x; входной 0x%x" -#: elf32-xtensa.c:4726 elf32-xtensa.c:4734 +#: elf32-xtensa.c:4735 elf32-xtensa.c:4743 msgid "attempt to convert L32R/CALLX to CALL failed" msgstr "попытка преобразования L32R/CALLX в CALL завершилась неудачно" -#: elf32-xtensa.c:6559 elf32-xtensa.c:6638 elf32-xtensa.c:8064 +#: elf32-xtensa.c:6571 elf32-xtensa.c:6650 elf32-xtensa.c:8076 #, c-format msgid "%pB(%pA+%#): could not decode instruction; possible configuration mismatch" msgstr "%pB(%pA+%#): невозможно декодировать инструкцию; возможно несовпадение конфигурации" -#: elf32-xtensa.c:7805 +#: elf32-xtensa.c:7817 #, c-format msgid "%pB(%pA+%#): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" msgstr "%pB(%pA+%#): невозможно декодировать инструкцию для перемещения XTENSA_ASM_SIMPLIFY; возможно несовпадение конфигурации" -#: elf32-xtensa.c:9663 +#: elf32-xtensa.c:9675 msgid "invalid relocation address" msgstr "недопустимый адрес перемещения" -#: elf32-xtensa.c:9754 +#: elf32-xtensa.c:9766 msgid "overflow after relaxation" msgstr "переполнение после ослабления" -#: elf32-xtensa.c:10900 +#: elf32-xtensa.c:10912 #, c-format msgid "%pB(%pA+%#): unexpected fix for %s relocation" msgstr "%pB(%pA+%#): неожиданное назначение для перемещения %s" @@ -3964,66 +4086,66 @@ msgstr "%pB: неподдерживаемая машина %#x" msgid "%pB: unsupported arch %#x" msgstr "%pB: неподдерживаемая архитектура %#x" -#: elf64-alpha.c:473 +#: elf64-alpha.c:474 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "Не найдены инструкции ldah и lda для перемещения GPDISP" -#: elf64-alpha.c:1999 elf64-alpha.c:2694 elflink.c:14885 +#: elf64-alpha.c:2002 elf64-alpha.c:2697 elflink.c:15091 #, c-format msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n" msgstr "%pB: динамическое перемещение с «%pT» в разделе только для чтения «%pA»\n" -#: elf64-alpha.c:2451 +#: elf64-alpha.c:2454 #, c-format msgid "%pB: .got subsegment exceeds 64K (size %d)" msgstr "%pB: подраздел .got превышает 64K (размер %d)" -#: elf64-alpha.c:2989 elf64-alpha.c:3183 +#: elf64-alpha.c:2992 elf64-alpha.c:3187 #, c-format msgid "%pB: %pA+%#: warning: %s relocation against unexpected insn" msgstr "%pB: %pA+%#: предупреждение: перемещение %s с неожиданной инструкцией" -#: elf64-alpha.c:4381 elf64-alpha.c:4394 +#: elf64-alpha.c:4386 elf64-alpha.c:4399 #, c-format msgid "%pB: gp-relative relocation against dynamic symbol %s" msgstr "%pB: gp-относительное перемещение для динамического символа %s" -#: elf64-alpha.c:4450 +#: elf64-alpha.c:4455 #, c-format msgid "%pB: change in gp: BRSGP %s" msgstr "%pB: изменение в gp: BRSGP %s" -#: elf64-alpha.c:4475 mach-o.c:616 elfnn-riscv.c:485 +#: elf64-alpha.c:4480 mach-o.c:616 elfnn-riscv.c:619 msgid "" msgstr "<неизвестно>" -#: elf64-alpha.c:4481 +#: elf64-alpha.c:4486 #, c-format msgid "%pB: !samegp reloc against symbol without .prologue: %s" msgstr "%pB: перемещение !samegp для символа без .prologue: %s" -#: elf64-alpha.c:4539 +#: elf64-alpha.c:4544 #, c-format msgid "%pB: unhandled dynamic relocation against %s" msgstr "%pB: необработанное динамическое перемещение для %s" -#: elf64-alpha.c:4574 +#: elf64-alpha.c:4579 #, c-format msgid "%pB: pc-relative relocation against undefined weak symbol %s" msgstr "%pB: pc-относительное перемещение для неопределённого слабого символа %s" -#: elf64-alpha.c:4640 +#: elf64-alpha.c:4645 #, c-format msgid "%pB: dtp-relative relocation against dynamic symbol %s" msgstr "%pB: dtp-относительное перемещение для динамического символа %s" -#: elf64-alpha.c:4665 +#: elf64-alpha.c:4670 #, c-format msgid "%pB: tp-relative relocation against dynamic symbol %s" msgstr "%pB: tp-относительное перемещение для динамического символа %s" #. Only if it's not an unresolved symbol. -#: elf64-bpf.c:517 +#: elf64-bpf.c:557 msgid "internal error: relocation not supported" msgstr "внутренняя ошибка: перемещение не поддерживается" @@ -4042,105 +4164,105 @@ msgstr "элемент заглушки для %s не может загрузи msgid "%pB(%pA+%#): cannot reach %s" msgstr "%pB(%pA+%#): невозможно добраться до %s" -#: elf64-ia64-vms.c:598 elfnn-ia64.c:639 +#: elf64-ia64-vms.c:599 elfnn-ia64.c:640 #, c-format msgid "%pB: can't relax br at %# in section `%pA'; please use brl or indirect branch" msgstr "%pB: невозможно ослабить br по адресу %# в разделе «%pA»; используйте brl или косвенное ветвление" -#: elf64-ia64-vms.c:2029 elfnn-ia64.c:2291 +#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293 msgid "@pltoff reloc against local symbol" msgstr "перемещение @pltoff для локального символа" -#: elf64-ia64-vms.c:3281 elfnn-ia64.c:3674 +#: elf64-ia64-vms.c:3283 elfnn-ia64.c:3670 #, c-format msgid "%pB: short data segment overflowed (%# >= 0x400000)" msgstr "%pB: переполнение короткого сегмента данных (%# >= 0x400000)" -#: elf64-ia64-vms.c:3291 elfnn-ia64.c:3684 +#: elf64-ia64-vms.c:3293 elfnn-ia64.c:3680 #, c-format msgid "%pB: __gp does not cover short data segment" msgstr "%pB: __gp не покрывает короткий сегмент данных" -#: elf64-ia64-vms.c:3561 elfnn-ia64.c:3958 +#: elf64-ia64-vms.c:3563 elfnn-ia64.c:3953 #, c-format msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'" msgstr "%pB: не-pic код с перемещением imm для динамического символа «%s»" -#: elf64-ia64-vms.c:3625 elfnn-ia64.c:4026 +#: elf64-ia64-vms.c:3627 elfnn-ia64.c:4021 #, c-format msgid "%pB: @gprel relocation against dynamic symbol %s" msgstr "%pB: перемещение @gprel для динамического символа %s" -#: elf64-ia64-vms.c:3684 elfnn-ia64.c:4089 +#: elf64-ia64-vms.c:3686 elfnn-ia64.c:4084 #, c-format msgid "%pB: linking non-pic code in a position independent executable" msgstr "%pB: компоновка не-pic кода в позиционно-независимый исполняемый" -#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4227 +#: elf64-ia64-vms.c:3788 elfnn-ia64.c:4222 #, c-format msgid "%pB: @internal branch to dynamic symbol %s" msgstr "%pB: ветвление @internal к динамическому символу %s" -#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4230 +#: elf64-ia64-vms.c:3791 elfnn-ia64.c:4225 #, c-format msgid "%pB: speculation fixup to dynamic symbol %s" msgstr "%pB: догадка местоположения динамического символа %s" -#: elf64-ia64-vms.c:3792 elfnn-ia64.c:4233 +#: elf64-ia64-vms.c:3794 elfnn-ia64.c:4228 #, c-format msgid "%pB: @pcrel relocation against dynamic symbol %s" msgstr "%pB: перемещение @pcrel для динамического символа %s" -#: elf64-ia64-vms.c:3916 elfnn-ia64.c:4430 +#: elf64-ia64-vms.c:3918 elfnn-ia64.c:4425 msgid "unsupported reloc" msgstr "неподдерживаемое перемещение" -#: elf64-ia64-vms.c:3953 elfnn-ia64.c:4468 +#: elf64-ia64-vms.c:3955 elfnn-ia64.c:4463 #, c-format msgid "%pB: missing TLS section for relocation %s against `%s' at %# in section `%pA'." msgstr "%pB: отсутствует TLS-раздел для перемещения %s для «%s» по адресу %# в разделе «%pA»." -#: elf64-ia64-vms.c:3970 elfnn-ia64.c:4485 +#: elf64-ia64-vms.c:3972 elfnn-ia64.c:4480 #, c-format msgid "%pB: Can't relax br (%s) to `%s' at %# in section `%pA' with size %# (> 0x1000000)." msgstr "%pB: Невозможно ослабить br (%s) до «%s» по адресу %# в разделе «%pA» с размером %# (> 0x1000000)." -#: elf64-ia64-vms.c:4266 elfnn-ia64.c:4746 +#: elf64-ia64-vms.c:4268 elfnn-ia64.c:4741 #, c-format msgid "%pB: linking trap-on-NULL-dereference with non-trapping files" msgstr "%pB: компоновка trap-on-NULL-dereference с не-trapping файлами" -#: elf64-ia64-vms.c:4275 elfnn-ia64.c:4755 +#: elf64-ia64-vms.c:4277 elfnn-ia64.c:4750 #, c-format msgid "%pB: linking big-endian files with little-endian files" msgstr "%pB: компоновка файлов с прямым порядком байт с файлами с обратным порядком байт" -#: elf64-ia64-vms.c:4284 elfnn-ia64.c:4764 +#: elf64-ia64-vms.c:4286 elfnn-ia64.c:4759 #, c-format msgid "%pB: linking 64-bit files with 32-bit files" msgstr "%pB: компоновка 64-битных файлов с 32-битными файлами" -#: elf64-ia64-vms.c:4293 elfnn-ia64.c:4773 +#: elf64-ia64-vms.c:4295 elfnn-ia64.c:4768 #, c-format msgid "%pB: linking constant-gp files with non-constant-gp files" msgstr "%pB: компоновка constant-gp файлов с не-constant-gp файлами" -#: elf64-ia64-vms.c:4303 elfnn-ia64.c:4783 +#: elf64-ia64-vms.c:4305 elfnn-ia64.c:4778 #, c-format msgid "%pB: linking auto-pic files with non-auto-pic files" msgstr "%pB: компоновка auto-pic файлов с не-auto-pic файлами" -#: elf64-ia64-vms.c:5150 elflink.c:5072 +#: elf64-ia64-vms.c:5152 elflink.c:5148 #, c-format msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA" msgstr "предупреждение: выравнивание %u общего символа «%s» в %pB больше, чем выравнивание (%u) его раздела %pA" -#: elf64-ia64-vms.c:5157 elflink.c:5079 +#: elf64-ia64-vms.c:5159 elflink.c:5155 #, c-format msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB" msgstr "предупреждение: выравнивание %u символа «%s» в %pB меньше, чем %u в %pB" -#: elf64-ia64-vms.c:5173 elflink.c:5096 +#: elf64-ia64-vms.c:5175 elflink.c:5172 #, c-format msgid "warning: size of symbol `%s' changed from % in %pB to % in %pB" msgstr "предупреждение: размер символа «%s» изменился с % в %pB на % в %pB" @@ -4197,155 +4319,166 @@ msgstr "%pB: директива LOCAL разрешена только с рег msgid "%pB: LOCAL directive: register $% is not a local register; first global register is $%" msgstr "%pB: директива LOCAL: регистр $% не является локальным регистром; первый глобальный регистр: $%" -#: elf64-mmix.c:2167 +#: elf64-mmix.c:2157 #, c-format msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier linked file" msgstr "%pB: ошибка: множественные объявления «%s»; начало %s установлено в ранее скомпонованном файле" -#: elf64-mmix.c:2222 +#: elf64-mmix.c:2212 msgid "register section has contents\n" msgstr "в регистровом разделе имеется содержимое\n" -#: elf64-mmix.c:2412 +#: elf64-mmix.c:2402 #, c-format msgid "internal inconsistency: remaining %lu != max %lu; please report this bug" msgstr "внутреннее противоречие: остаётся %lu != макс %lu; сообщите об этом дефекте" -#: elf64-ppc.c:1342 +#: elf64-ppc.c:1349 #, c-format msgid "warning: %s should be used rather than %s" msgstr "предупреждение: нужно использовать %s, а не %s" -#: elf64-ppc.c:4101 +#: elf64-ppc.c:4153 #, c-format msgid "symbol '%s' has invalid st_other for ABI version 1" msgstr "символ «%s» содержит некорректное st_other для ABI версии 1" -#: elf64-ppc.c:4281 +#: elf64-ppc.c:4334 #, c-format msgid "%pB .opd not allowed in ABI version %d" msgstr "%pB .opd запрещено в ABI версии %d" -#: elf64-ppc.c:4852 +#: elf64-ppc.c:4906 #, c-format msgid "%H: %s reloc unsupported in shared libraries and PIEs\n" msgstr "%H: перемещение %s не поддерживается в общих библиотеках и PIE\n" -#: elf64-ppc.c:5260 +#: elf64-ppc.c:5316 #, c-format msgid "%pB uses unknown e_flags 0x%lx" msgstr "%pB использует неизвестное значение e_flags 0x%lx" -#: elf64-ppc.c:5268 +#: elf64-ppc.c:5324 #, c-format msgid "%pB: ABI version %ld is not compatible with ABI version %ld output" msgstr "%pB: ABI версии %ld не совместимо с выводом с ABI версии %ld" -#: elf64-ppc.c:5295 +#: elf64-ppc.c:5351 #, c-format msgid " [abiv%ld]" msgstr " [abiv%ld]" -#: elf64-ppc.c:6574 +#: elf64-ppc.c:6649 msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" msgstr "%P: копирование перемещения для «%pT» требует ленивой plt-компоновки; не задавайте LD_BIND_NOW=1 или обновите gcc\n" -#: elf64-ppc.c:6841 +#: elf64-ppc.c:6916 #, c-format msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "%pB: неопределённый символ по перемещению R_PPC64_TOCSAVE" -#: elf64-ppc.c:7089 +#: elf64-ppc.c:7164 #, c-format msgid "dynreloc miscount for %pB, section %pA" msgstr "ошибка в вычислении dynreloc %pB, раздел %pA" -#: elf64-ppc.c:7178 +#: elf64-ppc.c:7253 #, c-format msgid "%pB: .opd is not a regular array of opd entries" msgstr "%pB: .opd не является обычным массивом элементов opd" -#: elf64-ppc.c:7188 +#: elf64-ppc.c:7263 #, c-format msgid "%pB: unexpected reloc type %u in .opd section" msgstr "%pB: неожиданный тип перемещения %u в разделе .opd" -#: elf64-ppc.c:7210 +#: elf64-ppc.c:7285 #, c-format msgid "%pB: undefined sym `%s' in .opd section" msgstr "%pB: неопределённый символ «%s» в разделе .opd" -#: elf64-ppc.c:7697 +#. The issue is that __glink_PLTresolve saves r2, which is done +#. because glibc ld.so _dl_runtime_resolve restores r2 to support +#. a glibc plt call optimisation where global entry code is +#. skipped on calls that resolve to the same binary. The +#. __glink_PLTresolve save of r2 is incompatible with code +#. making tail calls, because the tail call might go via the +#. resolver and thus overwrite the proper saved r2. +#: elf64-ppc.c:7779 +msgid "warning: --plt-localentry is incompatible with power10 pc-relative code" +msgstr "предупреждение: --plt-localentry несовместим с pc-относительным кодом power10" + +#: elf64-ppc.c:7787 msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations" msgstr "предупреждение: --plt-localentry особенно опасно без поддержки в ld.so определения нарушений ABI" -#: elf64-ppc.c:8017 +#: elf64-ppc.c:8111 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "%H __tls_get_addr без аргумента, оптимизация TLS выключена\n" -#: elf64-ppc.c:8417 elf64-ppc.c:9130 +#: elf64-ppc.c:8546 elf64-ppc.c:9259 #, c-format msgid "%s defined on removed toc entry" msgstr "%s определён на удалённом элементе toc" -#: elf64-ppc.c:9087 +#: elf64-ppc.c:9216 #, c-format msgid "%H: %s references optimized away TOC entry\n" msgstr "%H: %s ссылается на удалённый оптимизатором элемент TOC\n" -#: elf64-ppc.c:9308 +#: elf64-ppc.c:9437 #, c-format msgid "%H: got/toc optimization is not supported for %s instruction\n" msgstr "%H: оптимизация got/toc не поддерживается для инструкции %s\n" -#: elf64-ppc.c:10135 +#: elf64-ppc.c:10282 #, c-format msgid "warning: discarding dynamic section %s" msgstr "предупреждение: отбрасывается динамический раздел %s" -#: elf64-ppc.c:11277 +#: elf64-ppc.c:11433 msgid "%P: cannot find opd entry toc for `%pT'\n" msgstr "%P: не удалось найти opd у элемента toc для «%pT»\n" -#: elf64-ppc.c:11323 elf64-ppc.c:11867 +#: elf64-ppc.c:11481 elf64-ppc.c:12030 msgid "%F%P: Could not assign group %pA target %pA to an output section. Retry without --enable-non-contiguous-regions.\n" msgstr "%F%P: Невозможно назначить группу %pA цели %pA выходному разделу. Повторите без --enable-non-contiguous-regions.\n" -#: elf64-ppc.c:11385 +#: elf64-ppc.c:11542 #, c-format msgid "long branch stub `%s' offset overflow" msgstr "переполнение смещения заглушки длинного ветвления «%s»" -#: elf64-ppc.c:11412 +#: elf64-ppc.c:11569 #, c-format msgid "can't find branch stub `%s'" msgstr "не найдена заглушка ветвления «%s»" -#: elf64-ppc.c:11476 elf64-ppc.c:11743 elf64-ppc.c:13972 +#: elf64-ppc.c:11633 elf64-ppc.c:11898 elf64-ppc.c:14202 #, c-format msgid "%P: linkage table error against `%pT'\n" msgstr "%P: ошибка в таблице компоновки для «%pT»\n" -#: elf64-ppc.c:11939 +#: elf64-ppc.c:12102 #, c-format msgid "can't build branch stub `%s'" msgstr "невозможно собрать заглушку ветвления «%s»" -#: elf64-ppc.c:12920 +#: elf64-ppc.c:13114 #, c-format msgid "%pB section %pA exceeds stub group size" msgstr "%pB раздела %pA превышает групповой размер заглушки" -#: elf64-ppc.c:14153 +#: elf64-ppc.c:14381 msgid "__tls_get_addr call offset overflow" msgstr "__tls_get_addr вызвала перемещение смещения" -#: elf64-ppc.c:14455 elf64-ppc.c:14474 +#: elf64-ppc.c:14720 elf64-ppc.c:14739 #, c-format msgid "%s offset too large for .eh_frame sdata4 encoding" msgstr "смещение %s слишком больше для кодирования sdata4 в .eh_frame" -#: elf64-ppc.c:14506 +#: elf64-ppc.c:14771 #, c-format msgid "linker stubs in %u group\n" msgid_plural "linker stubs in %u groups\n" @@ -4353,7 +4486,7 @@ msgstr[0] "заглушки компоновщика в %u группе\n" msgstr[1] "заглушки компоновщика в %u группах\n" msgstr[2] "заглушки компоновщика в %u группах\n" -#: elf64-ppc.c:14513 +#: elf64-ppc.c:14778 #, c-format msgid "" "%s branch %lu\n" @@ -4384,57 +4517,57 @@ msgstr "" " оба plt-вызова %lu\n" " глобальный элемент %lu" -#: elf64-ppc.c:14913 +#: elf64-ppc.c:15178 #, c-format msgid "%H: %s used with TLS symbol `%pT'\n" msgstr "%H: %s используется с TLS-символом «%pT»\n" -#: elf64-ppc.c:14915 +#: elf64-ppc.c:15180 #, c-format msgid "%H: %s used with non-TLS symbol `%pT'\n" msgstr "%H: %s используется с не TLS-символом «%pT»\n" -#: elf64-ppc.c:15670 +#: elf64-ppc.c:15936 #, c-format msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n" msgstr "%H: вызов «%pT» указывает на не nop, невозможно восстановить toc; (вызов заглушки plt)\n" -#: elf64-ppc.c:15676 +#: elf64-ppc.c:15942 #, c-format msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n" msgstr "%H: вызов «%pT» указывает на не nop, невозможно восстановить toc; (заглушка сохранения/исправления toc)\n" -#: elf64-ppc.c:16564 +#: elf64-ppc.c:16845 #, c-format msgid "%H: %s for indirect function `%pT' unsupported\n" msgstr "%H: %s для неявного вызова функции «%pT» не поддерживается\n" -#: elf64-ppc.c:16649 +#: elf64-ppc.c:16930 #, c-format msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n" msgstr "%X%P: %pB: %s с %pT не поддерживается в glibc как динамическое перемещение\n" -#: elf64-ppc.c:16704 +#: elf64-ppc.c:16985 #, c-format msgid "%P: %pB: %s is not supported for `%pT'\n" msgstr "%P: %pB: %s не поддерживается для «%pT»\n" -#: elf64-ppc.c:16963 +#: elf64-ppc.c:17233 #, c-format msgid "%H: error: %s not a multiple of %u\n" msgstr "%H: ошибка: %s не кратно %u\n" -#: elf64-ppc.c:16986 +#: elf64-ppc.c:17256 #, c-format msgid "%H: unresolvable %s against `%pT'\n" msgstr "%H: неразрешимое %s для символа «%pT»\n" -#: elf64-ppc.c:17131 +#: elf64-ppc.c:17400 #, c-format msgid "%H: %s against `%pT': error %d\n" msgstr "%H: %s для «%pT»: ошибка %d\n" -#: elf64-s390.c:2446 +#: elf64-s390.c:2444 #, c-format msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" msgstr "%pB: не PLT перемещение «%s» для символа, определённого в общей библиотеке, к которому обращаются из исполняемого файла (пересоберите файл с -fPIC ?)" @@ -4464,114 +4597,121 @@ msgstr "символ «%s» имеет различные типы: %s в %pB, msgid "%pB: linking UltraSPARC specific with HAL specific code" msgstr "%pB: UltraSPARC-специфичная компоновка с HAL-специфичным кодом" -#: elf64-x86-64.c:1417 +#: elf64-x86-64.c:1415 msgid "hidden symbol " msgstr "скрытый символ " -#: elf64-x86-64.c:1420 +#: elf64-x86-64.c:1418 msgid "internal symbol " msgstr "внутренний символ " -#: elf64-x86-64.c:1423 elf64-x86-64.c:1427 +#: elf64-x86-64.c:1421 elf64-x86-64.c:1425 msgid "protected symbol " msgstr "защищённый символ " -#: elf64-x86-64.c:1429 +#: elf64-x86-64.c:1427 msgid "symbol " msgstr "символ " -#: elf64-x86-64.c:1435 +#: elf64-x86-64.c:1433 msgid "undefined " msgstr "не определено " -#: elf64-x86-64.c:1445 +#: elf64-x86-64.c:1443 msgid "a shared object" msgstr "общий объект" -#: elf64-x86-64.c:1447 +#: elf64-x86-64.c:1445 msgid "; recompile with -fPIC" msgstr "; перекомпилируйте с параметром -fPIC" -#: elf64-x86-64.c:1452 +#: elf64-x86-64.c:1450 msgid "a PIE object" msgstr "объект PIE" -#: elf64-x86-64.c:1454 +#: elf64-x86-64.c:1452 msgid "a PDE object" msgstr "объект PDE" -#: elf64-x86-64.c:1456 +#: elf64-x86-64.c:1454 msgid "; recompile with -fPIE" msgstr "; перекомпилируйте с параметром -fPIE" -#: elf64-x86-64.c:1460 +#: elf64-x86-64.c:1458 #, c-format msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s" msgstr "%pB: перемещение %s для %s%s«%s» не может использоваться при создании %s%s" -#: elf64-x86-64.c:1968 +#: elf64-x86-64.c:1966 #, c-format msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode" msgstr "%pB: перемещение %s для символа «%s» не поддерживается в режиме x32" -#: elf64-x86-64.c:2124 +#: elf64-x86-64.c:2122 #, c-format msgid "%pB: '%s' accessed both as normal and thread local symbol" msgstr "%pB: «%s» доступен как обычный и как локальный для нити символ" -#: elf64-x86-64.c:2747 elfnn-aarch64.c:5546 +#: elf64-x86-64.c:2747 elfnn-aarch64.c:5542 elfnn-riscv.c:2124 #, c-format msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %" msgstr "%pB: перемещение %s вместе с STT_GNU_IFUNC символом «%s» имеет ненулевое добавление: %" -#: elf64-x86-64.c:2992 +#: elf64-x86-64.c:3003 #, c-format msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" msgstr "%pB: перемещение R_X86_64_GOTOFF64 для неопределённого %s «%s» не может использоваться при создании общего объекта" -#: elf64-x86-64.c:3006 +#: elf64-x86-64.c:3017 #, c-format msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" msgstr "%pB: перемещение R_X86_64_GOTOFF64 для защищённого %s «%s» не может использоваться при создании общего объекта" -#: elf64-x86-64.c:3283 +#: elf64-x86-64.c:3297 #, c-format msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %# in section `%pA' is out of range" msgstr "%pB: добавление %s%#x в перемещении %s для символа «%s» по адресу %# разделе «%pA»." -#: elf64-x86-64.c:3417 elflink.c:13267 +#: elf64-x86-64.c:3437 elflink.c:13453 msgid "%F%P: corrupt input: %pB\n" msgstr "%F%P: повреждённый ввод: %pB\n" -#: elf64-x86-64.c:4101 -msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" -msgstr "%F%P: не удалось преобразовать перемещение GOTPCREL; перекомпонуйте с --no-relax\n" +#: elf64-x86-64.c:4123 +#, c-format +msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n" +msgstr "не удалось преобразовать перемещение GOTPCREL в «%s»; перекомпонуйте с --no-relax\n" -#: elf64-x86-64.c:4259 +#: elf64-x86-64.c:4284 #, c-format msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n" msgstr "%F%pB: переполнение относительного PC перемещения в элементе PLT для «%s»\n" -#: elf64-x86-64.c:4322 +#: elf64-x86-64.c:4352 #, c-format msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n" msgstr "%F%pB: переполнение ветви перестановки в элементе PLT для «%s»\n" -#: elf64-x86-64.c:4375 +#: elf64-x86-64.c:4405 #, c-format msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n" msgstr "%F%pB: переполнение относительного PC перемещения в элементе GOT PLT для «%s»\n" -#: elfcode.h:326 -msgid "warning: %pB has a corrupt section with a size (%" -msgstr "предупреждение: у %pB повреждён раздел размером (%" +#: elfcode.h:329 +#, c-format +msgid "warning: %pB has a section extending past end of file" +msgstr "предупреждение: раздел %pB расширяется за конец файла" -#: elfcode.h:768 +#: elfcode.h:775 #, c-format msgid "warning: %pB has a corrupt string table index - ignoring" msgstr "предупреждение: у %pB повреждена таблица индексов строк — игнорируется" -#: elfcode.h:1228 +#: elfcode.h:819 +#, c-format +msgid "warning: %pB has a program header with invalid alignment" +msgstr "предупреждение: заголовок программы %pB некорректно выровнен" + +#: elfcode.h:1244 #, c-format msgid "%pB: version count (%) does not match symbol count (%ld)" msgstr "%pB: счётчик версии (%) не совпадает со счётчиком символа (%ld)" @@ -4581,288 +4721,286 @@ msgstr "%pB: счётчик версии (%) не совпадает с msgid "warning: %pB is truncated: expected core file size >= %, found: %" msgstr "предупреждение: %pB усечён: ожидался размер файла core >= %, найдено: %" -#: elflink.c:1362 +#: elflink.c:1384 #, c-format msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA" msgstr "%s: TLS-определение в %pB раздела %pA не совпадает с не-TLS определением в %pB раздела %pA" -#: elflink.c:1368 +#: elflink.c:1390 #, c-format msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB" msgstr "%s: TLS-ссылка в %pB не совпадает с не-TLS ссылкой в %pB" -#: elflink.c:1374 +#: elflink.c:1396 #, c-format msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB" msgstr "%s: TLS-определение в %pB раздела %pA не совпадает с не-TLS ссылкой в %pB" -#: elflink.c:1380 +#: elflink.c:1402 #, c-format msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA" msgstr "%s: TLS-ссылка в %pB не совпадает с не-TLS определением в %pB раздела %pA" -#: elflink.c:2071 +#: elflink.c:2114 #, c-format msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'" msgstr "%pB: неожиданное переопределение косвенного версионного символа «%s»" -#: elflink.c:2448 +#: elflink.c:2496 #, c-format msgid "%pB: version node not found for symbol %s" msgstr "%pB: версия узла не найдена для символа %s" -#: elflink.c:2539 +#: elflink.c:2587 #, c-format msgid "%pB: bad reloc symbol index (%# >= %#lx) for offset %# in section `%pA'" msgstr "%pB: неправильный индекс перемещаемого символа (%# >= %#lx) для смещения %# в разделе «%pA»" -#: elflink.c:2551 +#: elflink.c:2599 #, c-format msgid "%pB: non-zero symbol index (%#) for offset %# in section `%pA' when the object file has no symbol table" msgstr "%pB: ненулевой индекс символа (%#) для смещения %# в разделе «%pA», в то время как в объектном файле нет таблицы символов" -#: elflink.c:2740 +#: elflink.c:2788 #, c-format msgid "%pB: relocation size mismatch in %pB section %pA" msgstr "%pB: размер перемещения не совпадает в %pB раздела %pA" -#: elflink.c:3069 +#: elflink.c:3117 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "предупреждение: тип и размер динамического символа «%s» не определён" -#: elflink.c:3129 +#: elflink.c:3177 msgid "%P: copy reloc against protected `%pT' is dangerous\n" msgstr "%P: копирование перемещения с защищённым «%pT» опасно\n" -#: elflink.c:4064 +#: elflink.c:4117 #, c-format msgid "alternate ELF machine code found (%d) in %pB, expecting %d" msgstr "обнаружен альтернативный машинный код ELF (%d) в %pB, ожидается %d" -#: elflink.c:4534 +#: elflink.c:4600 #, c-format msgid "%pB: invalid version offset %lx (max %lx)" msgstr "%pB: недопустимое смещение версии %lx (макс %lx)" -#: elflink.c:4602 +#: elflink.c:4668 #, c-format msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)" msgstr "%pB: локальный символ %s с индексом %lu (>= sh_info с %lu)" -#: elflink.c:4750 +#: elflink.c:4816 #, c-format msgid "%pB: not enough version information" msgstr "%pB: недостаточно информации о версии" -#: elflink.c:4788 +#: elflink.c:4854 #, c-format msgid "%pB: %s: invalid version %u (max %d)" msgstr "%pB: %s: недопустимая версия %u (макс %d)" -#: elflink.c:4825 +#: elflink.c:4891 #, c-format msgid "%pB: %s: invalid needed version %d" msgstr "%pB: %s: недопустимая необходимая версия %d" -#: elflink.c:5231 +#: elflink.c:5309 #, c-format msgid "%pB: undefined reference to symbol '%s'" msgstr "%pB: неопределённая ссылка на символ «%s»" -#: elflink.c:6315 +#: elflink.c:6375 #, c-format msgid "%pB: stack size specified and %s set" msgstr "%pB: указан и задан размер стека %s" -#: elflink.c:6319 +#: elflink.c:6379 #, c-format msgid "%pB: %s not absolute" msgstr "%pB: %s не является абсолютным" -#: elflink.c:6516 +#: elflink.c:6576 #, c-format msgid "%s: undefined version: %s" msgstr "%s: неопределённая версия: %s" -#: elflink.c:7088 +#: elflink.c:7148 #, c-format msgid "%pB: .preinit_array section is not allowed in DSO" msgstr "%pB: раздел .preinit_array не разрешается в DSO" -#: elflink.c:8602 +#: elflink.c:8740 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "неопределённая ссылка %s в сложном символе: %s" -#: elflink.c:8757 +#: elflink.c:8903 elflink.c:8911 +msgid "division by zero" +msgstr "деление на ноль" + +#: elflink.c:8925 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "неизвестный оператор '%c' в сложном символе" #. PR 21524: Let the user know if a symbol was removed by garbage collection. -#: elflink.c:9095 +#: elflink.c:9263 #, c-format msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection" msgstr "%pB:%pA: ошибка: перемещение ссылается на символ %s, который был удалён сборщиком мусора" -#: elflink.c:9098 +#: elflink.c:9266 #, c-format msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled" msgstr "%pB:%pA: ошибка: попробуйте перекомпоновать с включённым --gc-keep-exported" -#: elflink.c:9343 elflink.c:9361 elflink.c:9400 elflink.c:9418 +#: elflink.c:9511 elflink.c:9529 elflink.c:9568 elflink.c:9586 #, c-format msgid "%pB: unable to sort relocs - they are in more than one size" msgstr "%pB: невозможно отсортировать перемещения — они разных размеров" #. The section size is not divisible by either - #. something is wrong. -#: elflink.c:9377 elflink.c:9434 +#: elflink.c:9545 elflink.c:9602 #, c-format msgid "%pB: unable to sort relocs - they are of an unknown size" msgstr "%pB: невозможно отсортировать перемещения — они неизвестного размера" -#: elflink.c:9486 +#: elflink.c:9654 msgid "not enough memory to sort relocations" msgstr "недостаточно памяти для сортировки перемещений" -#: elflink.c:9767 +#: elflink.c:9998 #, c-format msgid "%pB: too many sections: %d (>= %d)" msgstr "%pB: слишком много разделов: %d (>= %d)" -#: elflink.c:10043 +#: elflink.c:10274 #, c-format msgid "%pB: internal symbol `%s' in %pB is referenced by DSO" msgstr "%pB: на внутренний символ «%s» из %pB ссылаются из DSO" -#: elflink.c:10046 +#: elflink.c:10277 #, c-format msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO" msgstr "%pB: на скрытый символ «%s» из %pB ссылаются из DSO" -#: elflink.c:10049 +#: elflink.c:10280 #, c-format msgid "%pB: local symbol `%s' in %pB is referenced by DSO" msgstr "%pB: на локальный символ «%s» из %pB ссылаются из DSO" -#: elflink.c:10135 +#: elflink.c:10366 #, c-format msgid "%pB: could not find output section %pA for input section %pA" msgstr "%pB: невозможно найти выходной раздел %pA для входного раздела %pA" -#: elflink.c:10289 +#: elflink.c:10520 #, c-format msgid "%pB: protected symbol `%s' isn't defined" msgstr "%pB: защищённый символ «%s» не определён" -#: elflink.c:10292 +#: elflink.c:10523 #, c-format msgid "%pB: internal symbol `%s' isn't defined" msgstr "%pB: внутренний символ «%s» не определён" -#: elflink.c:10295 +#: elflink.c:10526 #, c-format msgid "%pB: hidden symbol `%s' isn't defined" msgstr "%pB: скрытый символ «%s» не определён" -#: elflink.c:10327 +#: elflink.c:10558 #, c-format msgid "%pB: no symbol version section for versioned symbol `%s'" msgstr "%pB: отсутствует раздел версий символов для версионного символа «%s»" -#: elflink.c:10699 +#: elflink.c:10957 #, c-format msgid "warning: --enable-non-contiguous-regions discards section `%s' from '%s'\n" msgstr "предупреждение: --enable-non-contiguous-regions отбрасывает раздел «%s» из «%s»\n" -#: elflink.c:10951 +#: elflink.c:11211 #, c-format msgid "error: %pB: size of section %pA is not multiple of address size" msgstr "ошибка: %pB: размер раздела %pA не кратен размеру адреса" -#: elflink.c:10996 +#: elflink.c:11256 #, c-format msgid "error: %pB contains a reloc (%#) for section %pA that references a non-existent global symbol" msgstr "ошибка: %pB содержит перемещение (%#) для раздела %pA, который ссылается на несуществующий глобальный символ" -#: elflink.c:11739 -#, c-format -msgid "%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections" -msgstr "%pA содержит упорядоченные [«%pA» в %pB] и неупорядоченные [«%pA» в %pB] разделы" - -#: elflink.c:11745 -#, c-format -msgid "%pA has both ordered and unordered sections" -msgstr "%pA содержит упорядоченные и неупорядоченные разделы" - -#: elflink.c:11851 +#: elflink.c:11977 #, c-format msgid "%pB: no symbol found for import library" msgstr "%pB: не найден символ импортируемой библиотеки" -#: elflink.c:12488 +#: elflink.c:12620 #, c-format msgid "%pB: file class %s incompatible with %s" msgstr "%pB: файловый класс %s несовместим с %s" -#: elflink.c:12704 +#: elflink.c:12870 #, c-format msgid "%pB: failed to generate import library" msgstr "%pB: не удалось сгенерировать импортируемую библиотеку" -#: elflink.c:12823 +#: elflink.c:12996 #, c-format msgid "warning: %s section has zero size" msgstr "предупреждение: раздел %s имеет нулевой размер" -#: elflink.c:12871 +#: elflink.c:13044 #, c-format msgid "warning: section '%s' is being made into a note" msgstr "предупреждение: раздел «%s» преобразуется в примечание" -#: elflink.c:12964 +#: elflink.c:13137 msgid "%P%X: read-only segment has dynamic relocations\n" msgstr "%P%X: в сегменте, доступном только для чтения, содержатся динамические перемещения\n" -#: elflink.c:12967 +#: elflink.c:13140 msgid "%P: warning: creating DT_TEXTREL in a shared object\n" msgstr "%P: предупреждение: создаётся DT_TEXTREL в общем объекте\n" -#: elflink.c:12970 +#: elflink.c:13143 +msgid "%P: warning: creating DT_TEXTREL in a PDE\n" +msgstr "%P: предупреждение: создаётся DT_TEXTREL в PDE\n" + +#: elflink.c:13146 msgid "%P: warning: creating DT_TEXTREL in a PIE\n" msgstr "%P: предупреждение: создаётся DT_TEXTREL в PIE\n" -#: elflink.c:13095 +#: elflink.c:13279 msgid "%P%X: can not read symbols: %E\n" msgstr "%P%X: невозможно прочитать символы: %E\n" -#: elflink.c:13500 +#: elflink.c:13699 msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n" msgstr "%F%P: %pB(%pA): ошибка: для --gc-sections необходим раздел linked-to\n" -#: elflink.c:13961 +#: elflink.c:14165 #, c-format msgid "%pB: %pA+%#: no symbol found for INHERIT" msgstr "%pB: %pA+%#: не найден символ для INHERIT" -#: elflink.c:14002 +#: elflink.c:14206 #, c-format msgid "%pB: section '%pA': corrupt VTENTRY entry" msgstr "%pB: раздел «%pA:» повреждённый элемент VTENTRY" -#: elflink.c:14145 +#: elflink.c:14349 #, c-format msgid "unrecognized INPUT_SECTION_FLAG %s\n" msgstr "нераспознанный INPUT_SECTION_FLAG %s\n" -#: elflink.c:14891 +#: elflink.c:15097 #, c-format msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n" msgstr "%P: %pB: предупреждение: перемещение указывает на «%s» из раздела только для чтения «%pA»\n" -#: elflink.c:14980 +#: elflink.c:15186 msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n" msgstr "%P: предупреждение: неявные функции GNU с DT_TEXTREL могут привести к ошибке сегментирования во время выполнения; перекомпилируйте с %s\n" @@ -4871,16 +5009,16 @@ msgstr "%P: предупреждение: неявные функции GNU с D msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected" msgstr "%pB: предупреждение: слабый TLS определяется реализацией и может не работать как ожидается" -#: elfxx-aarch64.c:738 elfnn-aarch64.c:9902 elfnn-aarch64.c:9909 +#: elfxx-aarch64.c:738 elfnn-aarch64.c:9909 elfnn-aarch64.c:9916 #, c-format msgid "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI in NOTE section." msgstr "%pB: предупреждение: BTI включён параметром -z force-bti, но все входные данные не имеют BTI в разделе NOTE." -#: elfxx-aarch64.c:758 elfxx-x86.c:2554 +#: elfxx-aarch64.c:758 elfxx-x86.c:2695 msgid "%F%P: failed to create GNU property section\n" msgstr "%F%P: не удалось создать раздел свойств GNU\n" -#: elfxx-aarch64.c:762 elfxx-x86.c:2559 +#: elfxx-aarch64.c:762 elfxx-x86.c:2700 #, c-format msgid "%F%pA: failed to align section\n" msgstr "%F%pA: не удалось выровнять раздел\n" @@ -4890,491 +5028,529 @@ msgstr "%F%pA: не удалось выровнять раздел\n" msgid "error: %pB: " msgstr "ошибка: %pB: <повреждение используемого размера AArch64: 0x%x>" -#: elfxx-mips.c:1507 +#: elfxx-mips.c:1505 msgid "static procedure (no name)" msgstr "статическая процедура (без имени)" -#: elfxx-mips.c:5782 +#: elfxx-mips.c:5780 msgid "MIPS16 and microMIPS functions cannot call each other" msgstr "Функции MIPS16 и microMIPS не могут вызывать друг друга" -#: elfxx-mips.c:6547 +#: elfxx-mips.c:6545 msgid "%X%H: unsupported JALX to the same ISA mode\n" msgstr "%X%H: неподдерживаемый JALX для того же режима ISA\n" -#: elfxx-mips.c:6580 +#: elfxx-mips.c:6578 msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" msgstr "%X%H: неподдерживаемый прыжок между режимами ISA; попробуйте перекомпилировать с включённой увязкой\n" -#: elfxx-mips.c:6625 +#: elfxx-mips.c:6623 msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n" msgstr "%X%H: невозможно преобразовать ветвление между режимами ISA в JALX: перемещение выходит за диапазон\n" -#: elfxx-mips.c:6637 +#: elfxx-mips.c:6635 msgid "%X%H: unsupported branch between ISA modes\n" msgstr "%X%H: неподдерживаемое ветвление между режимами ISA\n" -#: elfxx-mips.c:7286 +#: elfxx-mips.c:7264 #, c-format msgid "%pB: incorrect `.reginfo' section size; expected %, got %" msgstr "%pB: некорректный размер раздела «.reginfo»; ожидался %, получен %" -#: elfxx-mips.c:7330 elfxx-mips.c:7567 +#: elfxx-mips.c:7308 elfxx-mips.c:7547 #, c-format msgid "%pB: warning: bad `%s' option size %u smaller than its header" msgstr "%pB: предупреждение: размер параметра «%s» (%u) меньше, чем его заголовок" -#: elfxx-mips.c:8374 elfxx-mips.c:8500 +#: elfxx-mips.c:8356 elfxx-mips.c:8482 #, c-format msgid "%pB: warning: cannot determine the target function for stub section `%s'" msgstr "%pB: предупреждение: невозможно определить функцию назначения для раздела заглушки «%s»" -#: elfxx-mips.c:8632 +#: elfxx-mips.c:8614 #, c-format msgid "%pB: malformed reloc detected for section %s" msgstr "%pB: обнаружено искажённое перемещение в разделе %s" -#: elfxx-mips.c:8731 +#: elfxx-mips.c:8713 #, c-format msgid "%pB: GOT reloc at %# not expected in executables" msgstr "%pB: перемещение GOT по адресу %# не ожидается в исполняемых файлах" -#: elfxx-mips.c:8871 +#: elfxx-mips.c:8853 #, c-format msgid "%pB: CALL16 reloc at %# not against global symbol" msgstr "%pB: перемещение CALL16 по адресу %# не для глобального символа" -#: elfxx-mips.c:9174 +#: elfxx-mips.c:9156 #, c-format msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n" msgstr "%X%H: перемещение %s для «%s» нельзя использовать при создании общего объекта; перекомпилируйте с -fPIC\n" -#: elfxx-mips.c:9300 +#: elfxx-mips.c:9282 #, c-format msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported" msgstr "Символ IFUNC %s в таблице динамических символов — IFUNCS не поддерживается" -#: elfxx-mips.c:9303 +#: elfxx-mips.c:9285 #, c-format msgid "non-dynamic symbol %s in dynamic symbol table" msgstr "не динамический символ %s в таблице динамических символов" -#: elfxx-mips.c:9523 +#: elfxx-mips.c:9505 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "не-динамические перемещения указывают на динамический символ %s" -#: elfxx-mips.c:10457 +#: elfxx-mips.c:10439 #, c-format msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %# in section `%pA'" msgstr "%pB: невозможно найти подходящее LO16 перемещение у «%s» для %s по адресу %# в разделе «%pA»" -#: elfxx-mips.c:10597 +#: elfxx-mips.c:10579 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "раздел small-data превышает 64КБ — нижний предел small-data (см. параметр -G)" -#: elfxx-mips.c:10616 +#: elfxx-mips.c:10598 msgid "cannot convert a jump to JALX for a non-word-aligned address" msgstr "невозможно преобразовать прыжок к JALX для не выровненного по границе слова адреса" -#: elfxx-mips.c:10619 +#: elfxx-mips.c:10601 msgid "jump to a non-word-aligned address" msgstr "прыжок по не выровненному по границе слова адресу" -#: elfxx-mips.c:10620 +#: elfxx-mips.c:10602 msgid "jump to a non-instruction-aligned address" msgstr "прыжок по не выровненному по границе инструкции адресу" -#: elfxx-mips.c:10623 +#: elfxx-mips.c:10605 msgid "cannot convert a branch to JALX for a non-word-aligned address" msgstr "невозможно преобразовать ветвление к JALX для не выровненного по границе слова адреса" -#: elfxx-mips.c:10625 +#: elfxx-mips.c:10607 msgid "branch to a non-instruction-aligned address" msgstr "ветвление по не выровненному по границе инструкции адресу" -#: elfxx-mips.c:10627 +#: elfxx-mips.c:10609 msgid "PC-relative load from unaligned address" msgstr "загрузка относительно PC из не выровненного адреса" -#: elfxx-mips.c:10927 +#: elfxx-mips.c:10909 #, c-format msgid "%pB: `%pA' entry VMA of %# outside the 32-bit range supported; consider using `-Ttext-segment=...'" msgstr "%pB: VMA элемент «%pA» по адресу %# выходит за поддерживаемые границы 32-битного диапазона; попробуйте использовать «-Ttext-segment=…»" -#: elfxx-mips.c:11042 elfxx-mips.c:11629 +#: elfxx-mips.c:11024 elfxx-mips.c:11611 #, c-format msgid "%pB: `%pA' offset of % from `%pA' beyond the range of ADDIUPC" msgstr "%pB: смещение «%pA» для % из «%pA» вне диапазона ADDIUPC" -#: elfxx-mips.c:11601 +#: elfxx-mips.c:11583 #, c-format msgid "%pB: `%pA' start VMA of %# outside the 32-bit range supported; consider using `-Ttext-segment=...'" msgstr "%pB: стартовый VMA элемент «%pA» по адресу %# выходит за поддерживаемые границы 32-битного диапазона; попробуйте использовать «-Ttext-segment=…»" -#: elfxx-mips.c:14556 +#: elfxx-mips.c:13316 reloc.c:8430 +#, c-format +msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n" +msgstr "%X%P: %pB(%pA): ошибка: отсутствует значение перемещения для смещения %V\n" + +#: elfxx-mips.c:13417 reloc.c:8518 +#, c-format +msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n" +msgstr "%X%P: %pB(%pA): перемещение «%pR» не поддерживается\n" + +#: elfxx-mips.c:13426 reloc.c:8527 +#, c-format +msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n" +msgstr "%X%P: %pB(%pA): перемещение «%pR» возвратило нераспознанное значение %x\n" + +#: elfxx-mips.c:14611 #, c-format msgid "%pB: unknown architecture %s" msgstr "%pB: неизвестная архитектура %s" -#: elfxx-mips.c:15090 +#: elfxx-mips.c:15145 #, c-format msgid "%pB: illegal section name `%pA'" msgstr "%pB: недопустимое имя раздела «%pA»" -#: elfxx-mips.c:15367 +#: elfxx-mips.c:15422 #, c-format msgid "%pB: warning: linking abicalls files with non-abicalls files" msgstr "%pB: предупреждение: компоновка файлов abicalls с файлами не-abicalls" -#: elfxx-mips.c:15384 +#: elfxx-mips.c:15439 #, c-format msgid "%pB: linking 32-bit code with 64-bit code" msgstr "%pB: компоновка 32-битного кода с 64-битным кодом" -#: elfxx-mips.c:15416 elfxx-mips.c:15482 elfxx-mips.c:15497 +#: elfxx-mips.c:15471 elfxx-mips.c:15537 elfxx-mips.c:15552 #, c-format msgid "%pB: linking %s module with previous %s modules" msgstr "%pB: компоновка модуля %s с предыдущими модулями %s" -#: elfxx-mips.c:15440 +#: elfxx-mips.c:15495 #, c-format msgid "%pB: ABI mismatch: linking %s module with previous %s modules" msgstr "%pB: несовпадение ABI: компоновка модуля %s с предыдущими модулями %s" -#: elfxx-mips.c:15465 +#: elfxx-mips.c:15520 #, c-format msgid "%pB: ASE mismatch: linking %s module with previous %s modules" msgstr "%pB: несовпадение ASE: компоновка модуля %s с предыдущими модулями %s" -#: elfxx-mips.c:15599 +#: elfxx-mips.c:15654 #, c-format msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d" msgstr "предупреждение: %pB использует неизвестный ABI плавающей точки %d (заданный %pB), %pB использует неизвестный ABI плавающей точки %d" -#: elfxx-mips.c:15605 +#: elfxx-mips.c:15660 #, c-format msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s" msgstr "предупреждение: %pB использует неизвестный ABI плавающей точки %d (заданный %pB), %pB использует %s" -#: elfxx-mips.c:15611 +#: elfxx-mips.c:15666 #, c-format msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d" msgstr "предупреждение: %pB использует %s (заданный %pB), %pB использует неизвестный ABI плавающей точки %d" -#: elfxx-mips.c:15625 +#: elfxx-mips.c:15680 #, c-format msgid "warning: %pB uses %s (set by %pB), %pB uses %s" msgstr "предупреждение: %pB использует %s (заданный %pB), %pB использует %s" -#: elfxx-mips.c:15644 +#: elfxx-mips.c:15699 #, c-format msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d" msgstr "предупреждение: %pB использует %s (заданный %pB), %pB использует неизвестный ABI MSA %d" -#: elfxx-mips.c:15656 +#: elfxx-mips.c:15711 #, c-format msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s" msgstr "предупреждение: %pB использует неизвестный ABI MSA %d (заданный %pB), %pB использует %s" -#: elfxx-mips.c:15665 +#: elfxx-mips.c:15720 #, c-format msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d" msgstr "предупреждение: %pB использует неизвестный ABI MSA %d (заданный %pB), %pB использует неизвестный ABI MSA %d" -#: elfxx-mips.c:15727 +#: elfxx-mips.c:15782 #, c-format msgid "%pB: endianness incompatible with that of the selected emulation" msgstr "%pB: порядок байт не совместим с выбранной эмуляцией" -#: elfxx-mips.c:15741 +#: elfxx-mips.c:15796 #, c-format msgid "%pB: ABI is incompatible with that of the selected emulation" msgstr "%pB: ABI не совместим с выбранной эмуляцией" -#: elfxx-mips.c:15794 +#: elfxx-mips.c:15849 #, c-format msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags" msgstr "%pB: предупреждение: несогласованность ISA между e_flags и .MIPS.abiflags" -#: elfxx-mips.c:15799 +#: elfxx-mips.c:15854 #, c-format msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" msgstr "%pB: предупреждение: несогласованность FP ABI между .gnu.attributes и .MIPS.abiflags" -#: elfxx-mips.c:15803 +#: elfxx-mips.c:15858 #, c-format msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags" msgstr "%pB: предупреждение: несогласованность ASE между e_flags и .MIPS.abiflags" -#: elfxx-mips.c:15810 +#: elfxx-mips.c:15865 #, c-format msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags" msgstr "%pB: предупреждение: несогласованность расширений ISA между e_flags и .MIPS.abiflags" -#: elfxx-mips.c:15814 +#: elfxx-mips.c:15869 #, c-format msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" msgstr "%pB: предупреждение: неожидаемый флаг в поле flags2 у .MIPS.abiflags (0x%lx)" -#: elfxx-mips.c:16005 +#: elfxx-mips.c:16060 msgid "-mips32r2 -mfp64 (12 callee-saved)" msgstr "-mips32r2 -mfp64 (12 сохраняются вызываемым)" -#: elfxx-mips.c:16067 elfxx-mips.c:16078 +#: elfxx-mips.c:16122 elfxx-mips.c:16133 msgid "None" msgstr "Отсутствует" -#: elfxx-mips.c:16069 elfxx-mips.c:16138 +#: elfxx-mips.c:16124 elfxx-mips.c:16193 msgid "Unknown" msgstr "Неизвестно" -#: elfxx-mips.c:16149 +#: elfxx-mips.c:16204 #, c-format msgid "Hard or soft float\n" msgstr "Аппаратная или программная плавающая запятая\n" -#: elfxx-mips.c:16152 +#: elfxx-mips.c:16207 #, c-format msgid "Hard float (double precision)\n" msgstr "Аппаратная плавающая запятая (двойная точность)\n" -#: elfxx-mips.c:16155 +#: elfxx-mips.c:16210 #, c-format msgid "Hard float (single precision)\n" msgstr "Аппаратная плавающая запятая (одинарная точность)\n" -#: elfxx-mips.c:16158 +#: elfxx-mips.c:16213 #, c-format msgid "Soft float\n" msgstr "Программная плавающая запятая\n" -#: elfxx-mips.c:16161 +#: elfxx-mips.c:16216 #, c-format msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" msgstr "Аппаратная плавающая запятая (MIPS32r2 64-bit FPU 12 сохраняются вызываемым)\n" -#: elfxx-mips.c:16164 +#: elfxx-mips.c:16219 #, c-format msgid "Hard float (32-bit CPU, Any FPU)\n" msgstr "Аппаратная плавающая запятая (32-битный ЦП, любой FPU)\n" -#: elfxx-mips.c:16167 +#: elfxx-mips.c:16222 #, c-format msgid "Hard float (32-bit CPU, 64-bit FPU)\n" msgstr "Аппаратная плавающая запятая (32-битный ЦП, 64-битный FPU)\n" -#: elfxx-mips.c:16170 +#: elfxx-mips.c:16225 #, c-format msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" msgstr "Совместимая аппаратная плавающая запятая (32-битный ЦП, 64-битный FPU)\n" -#: elfxx-mips.c:16202 +#: elfxx-mips.c:16257 #, c-format msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:16204 +#: elfxx-mips.c:16259 #, c-format msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:16206 +#: elfxx-mips.c:16261 #, c-format msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:16208 +#: elfxx-mips.c:16263 #, c-format msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:16210 +#: elfxx-mips.c:16265 #, c-format msgid " [abi unknown]" msgstr " [abi неизвестен]" -#: elfxx-mips.c:16212 +#: elfxx-mips.c:16267 #, c-format msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:16214 +#: elfxx-mips.c:16269 #, c-format msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:16216 +#: elfxx-mips.c:16271 #, c-format msgid " [no abi set]" msgstr " [abi не задан]" -#: elfxx-mips.c:16241 +#: elfxx-mips.c:16296 #, c-format msgid " [unknown ISA]" msgstr " [неизвестный ISA]" -#: elfxx-mips.c:16261 +#: elfxx-mips.c:16316 #, c-format msgid " [not 32bitmode]" msgstr " [не 32-битный режим]" -#: elfxx-riscv.c:1063 +#: elfxx-riscv.c:1383 #, c-format -msgid "-march=%s: Expect number after `%dp'." -msgstr "-march=%s: ожидается число после «%dp»." +msgid "x ISA extension `%s' must be set with the versions" +msgstr "расширение x ISA «%s» должно указываться с версиями" -#: elfxx-riscv.c:1174 +#: elfxx-riscv.c:1387 #, c-format -msgid "-march=%s: rv%de is not a valid base ISA" -msgstr "-march=%s: rv%de неправильная база ISA" +msgid "cannot find default versions of the ISA extension `%s'" +msgstr "невозможно найти версии по умолчанию для расширения ISA «%s»" -#: elfxx-riscv.c:1214 +#: elfxx-riscv.c:1461 #, c-format -msgid "-march=%s: first ISA subset must be `e', `i' or `g'" -msgstr "-march=%s: первый поднабор ISA должен быть «e», «i» или «g»" +msgid "-march=%s: expect number after `%dp'" +msgstr "-march=%s: ожидается число после «%dp»" -#: elfxx-riscv.c:1242 +#: elfxx-riscv.c:1544 #, c-format -msgid "-march=%s: unsupported ISA subset `%c'" -msgstr "-march=%s: неподдерживаемый поднабор ISA «%c»" +msgid "-march=%s: rv%de is not a valid base ISA" +msgstr "-march=%s: rv%de неправильная база ISA" -#: elfxx-riscv.c:1245 +#: elfxx-riscv.c:1573 #, c-format -msgid "-march=%s: ISA string is not in canonical order. `%c'" -msgstr "-march=%s: строка ISA не в каноничном порядке. «%c»" +msgid "-march=%s: first ISA extension must be `e', `i' or `g'" +msgstr "-march=%s: первое расширение ISA должно быть «e», «i» или «g»" -#: elfxx-riscv.c:1364 +#: elfxx-riscv.c:1600 #, c-format -msgid "-march=%s: Invalid or unknown %s ISA extension: '%s'" -msgstr "-march=%s: некорректное или неизвестно расширение ISA %s: «%s»" +msgid "-march=%s: unknown standard and prefixed ISA extension `%s'" +msgstr "-march=%s: неизвестное стандартное и расширение ISA с префиксом «%s»" -#: elfxx-riscv.c:1375 +#: elfxx-riscv.c:1604 #, c-format -msgid "-march=%s: Duplicate %s ISA extension: '%s'" -msgstr "-march=%s: повтор расширения %s ISA: «%s»" +msgid "-march=%s: standard ISA extension `%c' is not in canonical order" +msgstr "-march=%s: стандартное расширение ISA «%c» не в каноничном порядке" -#: elfxx-riscv.c:1386 +#: elfxx-riscv.c:1654 #, c-format -msgid "-march=%s: %s ISA extension not in alphabetical order: '%s' must come before '%s'." -msgstr "-march=%s: %s расширение ISA не в алфавитном порядке: «%s» должно идти перед «%s»." +msgid "-march=%s: unknown prefix class for the ISA extension `%s'" +msgstr "-march=%s: неизвестный класс префиксов для расширения ISA «%s»" -#: elfxx-riscv.c:1407 +#: elfxx-riscv.c:1688 #, c-format -msgid "-march=%s: %s must separate with _" -msgstr "-march=%s: %s должно отделяться _" +msgid "-march=%s: unknown prefixed ISA extension `%s'" +msgstr "-march=%s: неизвестное расширение ISA с префиксом «%s»" -#: elfxx-riscv.c:1523 +#: elfxx-riscv.c:1699 #, c-format -msgid "-march=%s: ISA string must begin with rv32 or rv64" -msgstr "-march=%s: строка ISA должна начинаться с rv32 или rv64" +msgid "-march=%s: duplicate prefixed ISA extension `%s'" +msgstr "-march=%s: повтор расширения с префиксом ISA «%s»" -#: elfxx-riscv.c:1544 +#: elfxx-riscv.c:1709 #, c-format -msgid "-march=%s: unexpected ISA string at end: %s" -msgstr "-march=%s: неожиданная строка ISA в конце: %s" +msgid "-march=%s: prefixed ISA extension `%s' is not in expected order. It must come before `%s'" +msgstr "-march=%s: расширение с префиксом ISA «%s» не в ожидаемом порядке. Должно идти перед «%s»" -#: elfxx-riscv.c:1553 +#: elfxx-riscv.c:1725 #, c-format -msgid "-march=%s: rv32e does not support the `f' extension" -msgstr "-march=%s: rv32e не поддерживает расширение «f»" +msgid "-march=%s: prefixed ISA extension must separate with _" +msgstr "-march=s: расширение ISA с префиксом «%s» должно отделяться символом _" -#: elfxx-riscv.c:1562 +#: elfxx-riscv.c:1773 #, c-format -msgid "-march=%s: `d' extension requires `f' extension" -msgstr "-march=%s: расширению «d» необходимо расширение «f»" +msgid "-march=%s: ISA string cannot contain uppercase letters" +msgstr "-march=%s: строка ISA не может содержать буквы в верхнем регистры" -#: elfxx-riscv.c:1571 +#: elfxx-riscv.c:1799 #, c-format -msgid "-march=%s: `q' extension requires `d' extension" -msgstr "-march=%s: расширению «q» необходимо расширение «d»" +msgid "-march=%s: ISA string must begin with rv32 or rv64" +msgstr "-march=%s: строка ISA должна начинаться с rv32 или rv64" -#: elfxx-riscv.c:1579 +#: elfxx-riscv.c:1832 +#, c-format +msgid "-march=%s: rv32e does not support the `f' extension" +msgstr "-march=%s: rv32e не поддерживает расширение «f»" + +#: elfxx-riscv.c:1840 #, c-format msgid "-march=%s: rv32 does not support the `q' extension" msgstr "-march=%s: rv32 не поддерживает расширение «q»" -#: elfxx-sparc.c:3002 elfnn-aarch64.c:5530 +#: elfxx-sparc.c:3021 elfnn-aarch64.c:5526 #, c-format msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" msgstr "%pB: перемещение %s вместе с STT_GNU_IFUNC символом «%s» не обрабатывается %s" -#: elfxx-tilegx.c:4128 +#: elfxx-tilegx.c:4126 #, c-format msgid "%pB: cannot link together %s and %s objects" msgstr "%pB: невозможно скомпоновать объекты %s и %s вместе" -#: elfxx-x86.c:976 +#: elfxx-x86.c:980 #, c-format msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n" msgstr "%F%P: %pB: перемещение %s абсолютного символа «%s» в разделе «%pA» запрещено\n" -#: elfxx-x86.c:1058 +#: elfxx-x86.c:1062 msgid "%P: %pB: warning: relocation in read-only section `%pA'\n" msgstr "%P: %pB: предупреждение: перемещение в разделе только для чтения «%pA»\n" -#: elfxx-x86.c:2314 +#: elfxx-x86.c:1782 +#, c-format +msgid "%pB: %s (offset: 0x%s, info: 0x%s, addend: 0x%s) against '%s' for section '%pA' in %pB\n" +msgstr "%pB: %s (смещение: 0x%s, инфо: 0x%s, добавление: 0x%s) в «%s» для раздела «%pA» в %pB\n" + +#: elfxx-x86.c:1789 +#, c-format +msgid "%pB: %s (offset: 0x%s, info: 0x%s) against '%s' for section '%pA' in %pB\n" +msgstr "%pB: %s (смещение: x%s, инфо: 0x%s) в «%s» для раздела «%pA» в %pB\n" + +#: elfxx-x86.c:2367 #, c-format msgid "error: %pB: " msgstr "ошибка: %pB: <повреждение размера свойства x86 (0x%x): 0x%x>" -#: elfxx-x86.c:2580 +#: elfxx-x86.c:2714 msgid "%P: %pB: warning: missing %s\n" msgstr "%P: %pB: предупреждение: отсутствует %s\n" -#: elfxx-x86.c:2582 +#: elfxx-x86.c:2715 msgid "%X%P: %pB: error: missing %s\n" msgstr "%X%P: %pB: ошибка: отсутствует %s\n" -#: elfxx-x86.c:2605 +#: elfxx-x86.c:2778 msgid "IBT and SHSTK properties" msgstr "Свойства IBT и SHSTK" -#: elfxx-x86.c:2607 +#: elfxx-x86.c:2780 msgid "IBT property" msgstr "Свойство IBT" -#: elfxx-x86.c:2609 +#: elfxx-x86.c:2782 msgid "SHSTK property" msgstr "Свойство SHSTK" -#: elfxx-x86.c:2753 +#: elfxx-x86.c:2787 +msgid "LAM_U48 property" +msgstr "Свойство LAM_U48" + +#: elfxx-x86.c:2792 +msgid "LAM_U57 property" +msgstr "Свойство LAM_U57" + +#: elfxx-x86.c:2936 msgid "%F%P: failed to create VxWorks dynamic sections\n" msgstr "%F%P: не удалось создать динамические разделы VxWorks\n" -#: elfxx-x86.c:2762 +#: elfxx-x86.c:2945 msgid "%F%P: failed to create GOT sections\n" msgstr "%F%P: не удалось создать разделы GOT\n" -#: elfxx-x86.c:2780 +#: elfxx-x86.c:2963 msgid "%F%P: failed to create ifunc sections\n" msgstr "%F%P: не удалось создать разделы ifunc\n" -#: elfxx-x86.c:2817 +#: elfxx-x86.c:3000 msgid "%F%P: failed to create GOT PLT section\n" msgstr "%F%P: не удалось создать раздел GOT PLT\n" -#: elfxx-x86.c:2836 +#: elfxx-x86.c:3019 msgid "%F%P: failed to create IBT-enabled PLT section\n" msgstr "%F%P: не удалось создать раздел PLT с включённым IBT\n" -#: elfxx-x86.c:2850 +#: elfxx-x86.c:3033 msgid "%F%P: failed to create BND PLT section\n" msgstr "%F%P: не удалось создать раздел BND PLT\n" -#: elfxx-x86.c:2870 +#: elfxx-x86.c:3053 msgid "%F%P: failed to create PLT .eh_frame section\n" msgstr "%F%P: не удалось создать раздел PLT .eh_frame\n" -#: elfxx-x86.c:2883 +#: elfxx-x86.c:3066 msgid "%F%P: failed to create GOT PLT .eh_frame section\n" msgstr "%F%P: не удалось создать раздел GOT PLT .eh_frame\n" -#: elfxx-x86.c:2897 +#: elfxx-x86.c:3080 msgid "%F%P: failed to create the second PLT .eh_frame section\n" msgstr "%F%P: не удалось создать второй раздел PLT .eh_frame\n" -#: elfxx-x86.c:2939 +#: elfxx-x86.c:3122 msgid "%X%P: attempted static link of dynamic object `%pB'\n" msgstr "%X%P: попытка статической компоновки динамического объекта «%pB»\n" @@ -5433,57 +5609,57 @@ msgstr "%pB: 64-битный адрес %# вне диапазона Int msgid "%pB: address %# out of range for Intel Hex file" msgstr "%pB: адрес %# вне диапазона Intel Hex файла" -#: libbfd.c:884 +#: libbfd.c:969 #, c-format msgid "%pB: unable to get decompressed section %pA" msgstr "%pB: не удалось получить расжатый раздел %pA" -#: libbfd.c:1048 +#: libbfd.c:1133 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Вызван нерекомендуемый %s рядом с %s в строке %d в %s\n" -#: libbfd.c:1051 +#: libbfd.c:1136 #, c-format msgid "Deprecated %s called\n" msgstr "Вызван нерекомендуемый %s\n" -#: linker.c:1696 +#: linker.c:1706 #, c-format msgid "%pB: indirect symbol `%s' to `%s' is a loop" msgstr "%pB: косвенный символ «%s» к «%s» создаёт зацикливание" -#: linker.c:2567 +#: linker.c:2577 #, c-format msgid "attempt to do relocatable link with %s input and %s output" msgstr "попытка сделать перемещаемую ссылку с входом %s и выходом %s" -#: linker.c:2852 +#: linker.c:2861 #, c-format msgid "%pB: ignoring duplicate section `%pA'\n" msgstr "%pB: игнорируется повторяющийся раздел «%pA»\n" -#: linker.c:2862 linker.c:2872 +#: linker.c:2871 linker.c:2881 #, c-format msgid "%pB: duplicate section `%pA' has different size\n" msgstr "%pB: повторяющийся раздел «%pA» имеет другой размер\n" -#: linker.c:2881 linker.c:2887 +#: linker.c:2890 linker.c:2896 #, c-format msgid "%pB: could not read contents of section `%pA'\n" msgstr "%pB: предупреждение: невозможно прочитать содержимое раздела «%pA»\n" -#: linker.c:2892 +#: linker.c:2901 #, c-format msgid "%pB: duplicate section `%pA' has different contents\n" msgstr "%pB: предупреждение: повторяющийся раздел «%pA» имеет другое содержимое\n" -#: linker.c:3404 +#: linker.c:3419 #, c-format msgid "%pB: compiled for a big endian system and target is little endian" msgstr "%pB: скомпилировано для системы с прямым порядком байт, а цель с обратным порядком байт" -#: linker.c:3407 +#: linker.c:3422 #, c-format msgid "%pB: compiled for a little endian system and target is big endian" msgstr "%pB: скомпилировано для системы с обратным порядком байт, а цель с прямым порядком байт" @@ -5522,144 +5698,144 @@ msgstr "искажённое перемещение vanilla mach-o ARM: неко msgid "malformed mach-o ARM reloc: unknown reloc type: %d" msgstr "искажённое перемещение mach-o ARM: неизвестный тип перемещения: %d" -#: mach-o.c:633 +#: mach-o.c:631 #, c-format msgid "" msgstr "<неизвестный флаги маски>" -#: mach-o.c:688 +#: mach-o.c:686 msgid " ()" msgstr " (неизвестно)" -#: mach-o.c:699 +#: mach-o.c:698 #, c-format msgid " MACH-O header:\n" msgstr " заголовок Mach-O:\n" -#: mach-o.c:700 +#: mach-o.c:699 #, c-format msgid " magic: %#lx\n" msgstr " отл.призн: %#lx\n" -#: mach-o.c:701 +#: mach-o.c:700 #, c-format msgid " cputype: %#lx (%s)\n" msgstr " тип ЦП: %#lx (%s)\n" -#: mach-o.c:703 +#: mach-o.c:702 #, c-format msgid " cpusubtype: %#lx%s\n" msgstr " подтип ЦП: %#lx%s\n" -#: mach-o.c:705 +#: mach-o.c:704 #, c-format msgid " filetype: %#lx\n" msgstr " тип файла: %#lx\n" -#: mach-o.c:706 +#: mach-o.c:705 #, c-format msgid " ncmds: %#lx\n" msgstr " ч_кмнд: %#lx\n" -#: mach-o.c:707 +#: mach-o.c:706 #, c-format msgid " sizeocmds: %#lx\n" msgstr " разм_кмнд: %#lx\n" -#: mach-o.c:708 +#: mach-o.c:707 #, c-format msgid " flags: %#lx\n" msgstr " флаги: %#lx\n" -#: mach-o.c:709 +#: mach-o.c:708 #, c-format msgid " version: %x\n" msgstr " маска версии: %x\n" #. Urg - what has happened ? -#: mach-o.c:744 +#: mach-o.c:743 #, c-format msgid "incompatible cputypes in mach-o files: %ld vs %ld" msgstr "несовместимые типы ЦП в файлах mach-o: %ld и %ld" -#: mach-o.c:913 +#: mach-o.c:912 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" msgstr "bfd_mach_o_canonicalize_symtab: невозможно загрузить символы" -#: mach-o.c:1505 +#: mach-o.c:1504 msgid "malformed mach-o reloc: section index is greater than the number of sections" msgstr "искажённое перемещение mach-o: индекс раздела больше количества разделов" -#: mach-o.c:2139 +#: mach-o.c:2138 msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands." msgstr "Извините: modtab, toc и extrefsyms пока не реализованы для команд dysymtab." -#: mach-o.c:2587 +#: mach-o.c:2586 #, c-format msgid "mach-o: there are too many sections (%u) maximum is 255,\n" msgstr "mach-o: слишком много разделов (%u), должно быть не более 255,\n" -#: mach-o.c:2694 +#: mach-o.c:2693 #, c-format msgid "unable to allocate data for load command %#x" msgstr "не удалось выделить данные для команды загрузки %#x" -#: mach-o.c:2799 +#: mach-o.c:2798 #, c-format msgid "unable to write unknown load command %#x" msgstr "невозможно записать неизвестную команду загрузки %#x" -#: mach-o.c:2983 +#: mach-o.c:2982 #, c-format msgid "section address (%#) below start of segment (%#)" msgstr "адрес раздела (%#) меньше начала сегмента (%#)" -#: mach-o.c:3125 +#: mach-o.c:3124 #, c-format msgid "unable to layout unknown load command %#x" msgstr "невозможно запланировать неизвестную команду загрузки %#x" -#: mach-o.c:3660 +#: mach-o.c:3659 #, c-format msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" msgstr "bfd_mach_o_read_section_32: слишком большое значение выравнивания: %#lx, используется 32" -#: mach-o.c:3703 +#: mach-o.c:3702 #, c-format msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" msgstr "bfd_mach_o_read_section_64: слишком большое значение выравнивания: %#lx, используется 32" -#: mach-o.c:3754 +#: mach-o.c:3753 #, c-format msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" msgstr "bfd_mach_o_read_symtab_symbol: невозможно прочитать %d байт по адресу %u" -#: mach-o.c:3773 +#: mach-o.c:3772 #, c-format msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" msgstr "bfd_mach_o_read_symtab_symbol: имя вне диапазона (%lu >= %u)" -#: mach-o.c:3856 +#: mach-o.c:3855 #, c-format msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" msgstr "bfd_mach_o_read_symtab_symbol: символ «%s» указывает на неверный раздел %d (максимальное значение %lu): настройка не определена" -#: mach-o.c:3875 +#: mach-o.c:3874 #, c-format msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" msgstr "bfd_mach_o_read_symtab_symbol: символ «%s» указывает на неверный тип поля 0x%x: настройка не определена" -#: mach-o.c:5064 +#: mach-o.c:5063 #, c-format msgid "%pB: unknown load command %#x" msgstr "%pB: неизвестная команды загрузки %#x" -#: mach-o.c:5263 +#: mach-o.c:5262 #, c-format msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" msgstr "bfd_mach_o_scan: неизвестная архитектура 0x%lx/0x%lx" -#: mach-o.c:5385 +#: mach-o.c:5384 #, c-format msgid "unknown header byte-order value %#x" msgstr "неизвестное значение порядка байт в заголовке %#x" @@ -5669,97 +5845,97 @@ msgstr "неизвестное значение порядка байт в за msgid "%pB: access beyond end of merged section (%)" msgstr "%pB: доступ за конец объединённого раздела (%)" -#: mmo.c:476 +#: mmo.c:475 #, c-format msgid "%pB: no core to allocate section name %s" msgstr "%pB: нет core для выделения имени раздела %s" -#: mmo.c:541 +#: mmo.c:540 #, c-format msgid "%pB: no core to allocate a symbol %d bytes long" msgstr "%pB: нет core для выделения %d байт символа" -#: mmo.c:952 +#: mmo.c:951 #, c-format msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#" msgstr "%pB: попытка выпустить содержимое по адресу не кратному 4 (%#)" -#: mmo.c:1248 +#: mmo.c:1247 #, c-format msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n" msgstr "%pB: некорректный mmo-файл: инициализационное значение для $255 не равно «Main»\n" -#: mmo.c:1395 +#: mmo.c:1394 #, c-format msgid "%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" msgstr "%pB: неподдерживаемая последовательность широких символов 0x%02X 0x%02X после имени символа, начиная с «%s»\n" -#: mmo.c:1628 +#: mmo.c:1627 #, c-format msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n" msgstr "%pB: некорректный mmo-файл: неподдерживаемый lopcode «%d»\n" -#: mmo.c:1639 +#: mmo.c:1638 #, c-format msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" msgstr "%pB: некорректный mmo-файл: для lop_quote ожидалось YZ = 1, получено YZ = %d\n" -#: mmo.c:1679 +#: mmo.c:1678 #, c-format msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "%pB: некорректный mmo-файл: для lop_loc ожидалось z = 1 или z = 2, получено z = %d\n" -#: mmo.c:1730 +#: mmo.c:1729 #, c-format msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" msgstr "%pB: некорректный mmo-файл: для lop_fixo ожидалось z = 1 или z = 2, получено z = %d\n" -#: mmo.c:1771 +#: mmo.c:1770 #, c-format msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" msgstr "%pB: некорректный mmo-файл: для lop_fixrx ожидалось y = 0, получено y = %d\n" -#: mmo.c:1782 +#: mmo.c:1781 #, c-format msgid "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "%pB: некорректный mmo-файл: для lop_fixrx ожидалось z = 16 или z = 24, получено z = %d\n" -#: mmo.c:1807 +#: mmo.c:1806 #, c-format msgid "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" msgstr "%pB: некорректный mmo-файл: для lop_fixrx начальный байт слова операнда должен быть равен 0 или 1, получено %d\n" -#: mmo.c:1832 +#: mmo.c:1831 #, c-format msgid "%pB: cannot allocate file name for file number %d, %d bytes\n" msgstr "%pB: невозможно выделить место для имени файла файлу с номером %d, %d байт\n" -#: mmo.c:1854 +#: mmo.c:1853 #, c-format msgid "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n" msgstr "%pB: некорректный mmo-файл: номер файла %d «%s» был уже введён как «%s»\n" -#: mmo.c:1868 +#: mmo.c:1867 #, c-format msgid "%pB: invalid mmo file: file name for number %d was not specified before use\n" msgstr "%pB: некорректный mmo-файл: имя файла для номера %d не указано перед использованием\n" -#: mmo.c:1975 +#: mmo.c:1974 #, c-format msgid "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "%pB: некорректный mmo-файл: поля y и z в lop_stab не равны нулю, y: %d, z: %d\n" -#: mmo.c:2012 +#: mmo.c:2011 #, c-format msgid "%pB: invalid mmo file: lop_end not last item in file\n" msgstr "%pB: некорректный mmo-файл: lop_end не последний элемент в файле\n" -#: mmo.c:2026 +#: mmo.c:2025 #, c-format msgid "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" msgstr "%pB: некорректный mmo-файл: YZ в lop_end (%ld) не равно числу тетрад в указанной ранее lop_stab (%ld)\n" -#: mmo.c:2735 +#: mmo.c:2734 #, c-format msgid "%pB: invalid symbol table: duplicate symbol `%s'\n" msgstr "%pB: некорректная таблица символов: повторяющийся символ «%s»\n" @@ -5804,7 +5980,7 @@ msgstr "%pB: недопустимый начальный адрес для ин msgid "unhandled OSF/1 core file section type %d" msgstr "необработанный файл ядра OSF/1 раздела с типом %d" -#: pdp11.c:1588 +#: pdp11.c:1590 #, c-format msgid "%pB: symbol indicates overlay (not supported)" msgstr "%pB: символ указывает на оверлей (не поддерживается)" @@ -5916,6 +6092,10 @@ msgstr "%pB: строка не заканчивается нулём в объе msgid "%pB: error: debug data ends beyond end of debug directory" msgstr "%pB: ошибка: конец отладочных данных за окончанием отладочного каталога" +#: plugin.c:236 +msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n" +msgstr "модульная инфраструктура: кончились файловые дескрипторы. Попробуйте использовать меньше объектов/архивов\n" + #: ppcboot.c:392 #, c-format msgid "" @@ -5969,42 +6149,33 @@ msgstr "Сектор раздела[%d] = 0x%.8lx (%ld)\n" msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Длина раздела[%d] = 0x%.8lx (%ld)\n" -#: reloc.c:8291 +#: reloc.c:8329 msgid "INPUT_SECTION_FLAGS are not supported" msgstr "INPUT_SECTION_FLAGS не поддерживается" -#: reloc.c:8392 -#, c-format -msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n" -msgstr "%X%P: %pB(%pA): ошибка: отсутствует значение перемещения для смещения %V\n" - -#: reloc.c:8480 -#, c-format -msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n" -msgstr "%X%P: %pB(%pA): перемещение «%pR» не поддерживается\n" - -#: reloc.c:8489 -#, c-format -msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n" -msgstr "%X%P: %pB(%pA): перемещение «%pR» возвратило нераспознанное значение %x\n" - -#: reloc.c:8551 +#: reloc.c:8589 #, c-format msgid "%pB: unrecognized relocation type %#x in section `%pA'" msgstr "%pB: нераспознанное перемещение %#x в разделе «%pA»" #. PR 21803: Suggest the most likely cause of this error. -#: reloc.c:8555 +#: reloc.c:8593 #, c-format msgid "is this version of the linker - %s - out of date ?" msgstr "данная версия компоновщика — %s — устарела?" -#: rs6000-core.c:471 +#: rs6000-core.c:470 #, c-format msgid "%pB: warning core file truncated" msgstr "%pB: предупреждение: файл core усечён" -#: som.c:5497 +#. User has specified a subspace without its containing space. +#: som.c:5476 +#, c-format +msgid "%pB[%pA]: no output section for space %pA" +msgstr "%pB[%pA]: нет выходного раздела для пространства %pA" + +#: som.c:5522 #, c-format msgid "" "\n" @@ -6013,7 +6184,7 @@ msgstr "" "\n" "Вспомогательный заголовок Exec\n" -#: som.c:5806 +#: som.c:5831 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers не реализован" @@ -6037,82 +6208,82 @@ msgstr "%pB:%d: неверная контрольная сумма в файле msgid "%pB(%pA+%#lx): stabs entry has invalid string index" msgstr "%pB(%pA+%#lx): элемент stabs имеет недопустимый индекс строки" -#: syms.c:1085 +#: syms.c:1092 msgid "unsupported .stab relocation" msgstr "неподдерживаемое перемещение .stab" -#: vms-alpha.c:480 +#: vms-alpha.c:478 msgid "corrupt EIHD record - size is too small" msgstr "запись EIHD повреждена — размер слишком мал" -#: vms-alpha.c:666 +#: vms-alpha.c:664 #, c-format msgid "unable to read EIHS record at offset %#x" msgstr "невозможно прочитать запись EIHS по смещению %#x" -#: vms-alpha.c:1158 +#: vms-alpha.c:1156 msgid "record is too small for symbol name length" msgstr "запись слишком мала для длины имени символа" -#: vms-alpha.c:1191 +#: vms-alpha.c:1189 #, c-format msgid "corrupt EGSD record: its size (%#x) is too small" msgstr "запись EGSD повреждена: её размер (%#x) слишком мал" -#: vms-alpha.c:1215 +#: vms-alpha.c:1213 #, c-format msgid "corrupt EGSD record type %d: size (%#x) is larger than remaining space (%#x)" msgstr "запись EGSD с типом %d повреждена: размер (%#x) больше оставшегося пространства (%#x)" -#: vms-alpha.c:1225 +#: vms-alpha.c:1223 #, c-format msgid "corrupt EGSD record type %d: size (%#x) is too small" msgstr "запись EGSD с типом %d повреждена: размер (%#x) слишком мал" -#: vms-alpha.c:1367 +#: vms-alpha.c:1365 #, c-format msgid "corrupt EGSD record: its psindx field is too big (%#lx)" msgstr "запись EGSD повреждена: её поле psindx слишком велико (%#lx)" -#: vms-alpha.c:1443 +#: vms-alpha.c:1440 #, c-format msgid "unknown EGSD subtype %d" msgstr "неизвестный подтип EGSD %d" -#: vms-alpha.c:1476 +#: vms-alpha.c:1473 #, c-format msgid "stack overflow (%d) in _bfd_vms_push" msgstr "переполнение стека (%d) в _bfd_vms_push" -#: vms-alpha.c:1490 +#: vms-alpha.c:1487 msgid "stack underflow in _bfd_vms_pop" msgstr "выход за нижнюю границу стека в _bfd_vms_pop" -#: vms-alpha.c:1564 +#: vms-alpha.c:1561 #, c-format msgid "dst_define_location %u too large" msgstr "dst_define_location %u слишком большое" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1765 +#: vms-alpha.c:1762 #, c-format msgid "unknown ETIR command %d" msgstr "неизвестная ETIR команда %d" -#: vms-alpha.c:1796 +#: vms-alpha.c:1793 msgid "corrupt vms value" msgstr "значение vms повреждено" -#: vms-alpha.c:1927 +#: vms-alpha.c:1924 msgid "corrupt ETIR record encountered" msgstr "обнаружена повреждённая запись ETIR" -#: vms-alpha.c:1989 +#: vms-alpha.c:1986 #, c-format msgid "bad section index in %s" msgstr "неверный индекс раздела в %s" -#: vms-alpha.c:2003 +#: vms-alpha.c:2000 #, c-format msgid "unsupported STA cmd %s" msgstr "неподдерживаемый STA cmd %s" @@ -6122,1480 +6293,1480 @@ msgstr "неподдерживаемый STA cmd %s" #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:2211 vms-alpha.c:2242 vms-alpha.c:2337 vms-alpha.c:2557 +#: vms-alpha.c:2208 vms-alpha.c:2239 vms-alpha.c:2334 vms-alpha.c:2554 #, c-format msgid "%s: not supported" msgstr "%s: не поддерживается" -#: vms-alpha.c:2217 +#: vms-alpha.c:2214 #, c-format msgid "%s: not implemented" msgstr "%s: не реализовано" -#: vms-alpha.c:2382 vms-alpha.c:2397 +#: vms-alpha.c:2379 vms-alpha.c:2394 #, c-format msgid "invalid %s" msgstr "неверный %s" #. Divide by zero is supposed to give a result of zero, #. and a non-fatal warning message. -#: vms-alpha.c:2457 +#: vms-alpha.c:2454 #, c-format msgid "%s divide by zero" msgstr "%s делится на ноль" -#: vms-alpha.c:2523 +#: vms-alpha.c:2520 #, c-format msgid "invalid use of %s with contexts" msgstr "неправильное использование %s с контекстами" -#: vms-alpha.c:2581 +#: vms-alpha.c:2578 #, c-format msgid "reserved cmd %d" msgstr "зарезервированный cmd %d" -#: vms-alpha.c:2665 +#: vms-alpha.c:2662 msgid "corrupt EEOM record - size is too small" msgstr "запись EEOM повреждена — размер слишком мал" -#: vms-alpha.c:2674 +#: vms-alpha.c:2671 msgid "object module not error-free !" msgstr "объектный модуль НЕ error-free !" -#: vms-alpha.c:4001 +#: vms-alpha.c:3999 #, c-format msgid "SEC_RELOC with no relocs in section %pA" msgstr "SEC_RELOC без перемещений в разделе %pA" -#: vms-alpha.c:4053 vms-alpha.c:4268 +#: vms-alpha.c:4051 vms-alpha.c:4266 #, c-format msgid "size error in section %pA" msgstr "ошибка размера в разделе %pA" -#: vms-alpha.c:4213 +#: vms-alpha.c:4211 msgid "spurious ALPHA_R_BSR reloc" msgstr "нетипичное перемещение ALPHA_R_BSR" -#: vms-alpha.c:4254 +#: vms-alpha.c:4252 #, c-format msgid "unhandled relocation %s" msgstr "необработанное перемещение %s" -#: vms-alpha.c:4551 +#: vms-alpha.c:4549 #, c-format msgid "unknown source command %d" msgstr "неизвестная исходная команда %d" -#: vms-alpha.c:4612 vms-alpha.c:4618 vms-alpha.c:4624 vms-alpha.c:4630 -#: vms-alpha.c:4636 vms-alpha.c:4663 vms-alpha.c:4669 vms-alpha.c:4675 -#: vms-alpha.c:4681 +#: vms-alpha.c:4610 vms-alpha.c:4616 vms-alpha.c:4622 vms-alpha.c:4628 +#: vms-alpha.c:4634 vms-alpha.c:4661 vms-alpha.c:4667 vms-alpha.c:4673 +#: vms-alpha.c:4679 #, c-format msgid "%s not implemented" msgstr "%s не реализовано" -#: vms-alpha.c:4724 +#: vms-alpha.c:4722 #, c-format msgid "unknown line command %d" msgstr "неизвестная строка команды %d" -#: vms-alpha.c:5188 vms-alpha.c:5206 vms-alpha.c:5221 vms-alpha.c:5237 -#: vms-alpha.c:5250 vms-alpha.c:5262 vms-alpha.c:5275 +#: vms-alpha.c:5186 vms-alpha.c:5204 vms-alpha.c:5219 vms-alpha.c:5235 +#: vms-alpha.c:5248 vms-alpha.c:5260 vms-alpha.c:5273 #, c-format msgid "unknown reloc %s + %s" msgstr "неизвестное перемещение %s + %s" -#: vms-alpha.c:5330 +#: vms-alpha.c:5328 #, c-format msgid "unknown reloc %s" msgstr "неизвестное перемещение %s" -#: vms-alpha.c:5344 +#: vms-alpha.c:5342 msgid "invalid section index in ETIR" msgstr "неверный индекс раздела в ETIR" -#: vms-alpha.c:5353 +#: vms-alpha.c:5351 msgid "relocation for non-REL psect" msgstr "перемещение для не-REL psect" -#: vms-alpha.c:5402 +#: vms-alpha.c:5400 #, c-format msgid "unknown symbol in command %s" msgstr "неизвестный символ в команде %s" -#: vms-alpha.c:5816 +#: vms-alpha.c:5814 #, c-format msgid "reloc (%d) is *UNKNOWN*" msgstr "перемещение (%d) *НЕИЗВЕСТНО*" -#: vms-alpha.c:5932 +#: vms-alpha.c:5930 #, c-format msgid " EMH %u (len=%u): " msgstr " EMH %u (len=%u): " -#: vms-alpha.c:5937 +#: vms-alpha.c:5935 #, c-format msgid " Error: The length is less than the length of an EMH record\n" msgstr " Ошибка: длина меньше длины записи EMH\n" -#: vms-alpha.c:5954 +#: vms-alpha.c:5952 #, c-format msgid " Error: The record length is less than the size of an EMH_MHD record\n" msgstr " Ошибка: длина записи меньше размера записи EMH_MHD\n" -#: vms-alpha.c:5957 +#: vms-alpha.c:5955 #, c-format msgid "Module header\n" msgstr "Заголовок модуля\n" -#: vms-alpha.c:5958 +#: vms-alpha.c:5956 #, c-format msgid " structure level: %u\n" msgstr " уровень структуры : %u\n" -#: vms-alpha.c:5959 +#: vms-alpha.c:5957 #, c-format msgid " max record size: %u\n" msgstr " макс. размер записи: %u\n" -#: vms-alpha.c:5965 +#: vms-alpha.c:5963 #, c-format msgid " Error: The module name is missing\n" msgstr " Ошибка: отсутствует имя модуля\n" -#: vms-alpha.c:5971 +#: vms-alpha.c:5969 #, c-format msgid " Error: The module name is too long\n" msgstr " Ошибка: слишком длинное имя модуля\n" -#: vms-alpha.c:5974 +#: vms-alpha.c:5972 #, c-format msgid " module name : %.*s\n" msgstr " имя модуля : %.*s\n" -#: vms-alpha.c:5978 +#: vms-alpha.c:5976 #, c-format msgid " Error: The module version is missing\n" msgstr " Ошибка: отсутствует версия модуля\n" -#: vms-alpha.c:5984 +#: vms-alpha.c:5982 #, c-format msgid " Error: The module version is too long\n" msgstr " Ошибка: слишком длинная версия модуля\n" -#: vms-alpha.c:5987 +#: vms-alpha.c:5985 #, c-format msgid " module version : %.*s\n" msgstr " версия модуля : %.*s\n" -#: vms-alpha.c:5990 +#: vms-alpha.c:5988 #, c-format msgid " Error: The compile date is truncated\n" msgstr " Ошибка: обрезана дата компиляции\n" -#: vms-alpha.c:5992 +#: vms-alpha.c:5990 #, c-format msgid " compile date : %.17s\n" msgstr " дата компиляции : %.17s\n" -#: vms-alpha.c:5997 +#: vms-alpha.c:5995 #, c-format msgid "Language Processor Name\n" msgstr "Название процессорного языка\n" -#: vms-alpha.c:5998 +#: vms-alpha.c:5996 #, c-format msgid " language name: %.*s\n" msgstr " название языка : %.*s\n" -#: vms-alpha.c:6002 +#: vms-alpha.c:6000 #, c-format msgid "Source Files Header\n" msgstr "Заголовок исходных файлов\n" -#: vms-alpha.c:6003 +#: vms-alpha.c:6001 #, c-format msgid " file: %.*s\n" msgstr " файл: %.*s\n" -#: vms-alpha.c:6007 +#: vms-alpha.c:6005 #, c-format msgid "Title Text Header\n" msgstr "Заголовок названия текста\n" -#: vms-alpha.c:6008 +#: vms-alpha.c:6006 #, c-format msgid " title: %.*s\n" msgstr " название : %.*s\n" -#: vms-alpha.c:6012 +#: vms-alpha.c:6010 #, c-format msgid "Copyright Header\n" msgstr "Заголовок авторского права\n" -#: vms-alpha.c:6013 +#: vms-alpha.c:6011 #, c-format msgid " copyright: %.*s\n" msgstr " авторское право: %.*s\n" -#: vms-alpha.c:6017 +#: vms-alpha.c:6015 #, c-format msgid "unhandled emh subtype %u\n" msgstr "необработанный подтип emh %u\n" -#: vms-alpha.c:6027 +#: vms-alpha.c:6025 #, c-format msgid " EEOM (len=%u):\n" msgstr " EEOM (len=%u):\n" -#: vms-alpha.c:6032 +#: vms-alpha.c:6030 #, c-format msgid " Error: The length is less than the length of an EEOM record\n" msgstr " Ошибка: длина меньше длины записи EEOM\n" -#: vms-alpha.c:6036 +#: vms-alpha.c:6034 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr " кол-во условно компонуемых пар: %u\n" -#: vms-alpha.c:6038 +#: vms-alpha.c:6036 #, c-format msgid " completion code: %u\n" msgstr " завершённый код: %u\n" -#: vms-alpha.c:6042 +#: vms-alpha.c:6040 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr " адреса передачи flags: 0x%02x\n" -#: vms-alpha.c:6043 +#: vms-alpha.c:6041 #, c-format msgid " transfer addr psect: %u\n" msgstr " адрес передачи psect: %u\n" -#: vms-alpha.c:6045 +#: vms-alpha.c:6043 #, c-format msgid " transfer address : 0x%08x\n" msgstr " адрес передачи : 0x%08x\n" -#: vms-alpha.c:6054 +#: vms-alpha.c:6052 msgid " WEAK" msgstr " WEAK" -#: vms-alpha.c:6056 +#: vms-alpha.c:6054 msgid " DEF" msgstr " DEF" -#: vms-alpha.c:6058 +#: vms-alpha.c:6056 msgid " UNI" msgstr " UNI" -#: vms-alpha.c:6060 vms-alpha.c:6081 +#: vms-alpha.c:6058 vms-alpha.c:6079 msgid " REL" msgstr " REL" -#: vms-alpha.c:6062 +#: vms-alpha.c:6060 msgid " COMM" msgstr " COMM" -#: vms-alpha.c:6064 +#: vms-alpha.c:6062 msgid " VECEP" msgstr " VECEP" -#: vms-alpha.c:6066 +#: vms-alpha.c:6064 msgid " NORM" msgstr " NORM" -#: vms-alpha.c:6068 +#: vms-alpha.c:6066 msgid " QVAL" msgstr " QVAL" -#: vms-alpha.c:6075 +#: vms-alpha.c:6073 msgid " PIC" msgstr " PIC" -#: vms-alpha.c:6077 +#: vms-alpha.c:6075 msgid " LIB" msgstr " LIB" -#: vms-alpha.c:6079 +#: vms-alpha.c:6077 msgid " OVR" msgstr " OVR" -#: vms-alpha.c:6083 +#: vms-alpha.c:6081 msgid " GBL" msgstr " GBL" -#: vms-alpha.c:6085 +#: vms-alpha.c:6083 msgid " SHR" msgstr " SHR" -#: vms-alpha.c:6087 +#: vms-alpha.c:6085 msgid " EXE" msgstr " EXE" -#: vms-alpha.c:6089 +#: vms-alpha.c:6087 msgid " RD" msgstr " RD" -#: vms-alpha.c:6091 +#: vms-alpha.c:6089 msgid " WRT" msgstr " WRT" -#: vms-alpha.c:6093 +#: vms-alpha.c:6091 msgid " VEC" msgstr " VEC" -#: vms-alpha.c:6095 +#: vms-alpha.c:6093 msgid " NOMOD" msgstr " NOMOD" -#: vms-alpha.c:6097 +#: vms-alpha.c:6095 msgid " COM" msgstr " COM" -#: vms-alpha.c:6099 +#: vms-alpha.c:6097 msgid " 64B" msgstr " 64B" -#: vms-alpha.c:6108 +#: vms-alpha.c:6106 #, c-format msgid " EGSD (len=%u):\n" msgstr " EGSD (len=%u):\n" -#: vms-alpha.c:6121 +#: vms-alpha.c:6119 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr " запись EGSD %2u (тип: %u, длина: %u): " -#: vms-alpha.c:6127 vms-alpha.c:6378 +#: vms-alpha.c:6125 vms-alpha.c:6376 #, c-format msgid " Error: length larger than remaining space in record\n" msgstr " Ошибка: длина больше оставшегося пространства в записи\n" -#: vms-alpha.c:6139 +#: vms-alpha.c:6137 #, c-format msgid "PSC - Program section definition\n" msgstr "PSC - определение программного раздела\n" -#: vms-alpha.c:6140 vms-alpha.c:6157 +#: vms-alpha.c:6138 vms-alpha.c:6155 #, c-format msgid " alignment : 2**%u\n" msgstr " выравнивание : 2**%u\n" -#: vms-alpha.c:6141 vms-alpha.c:6158 +#: vms-alpha.c:6139 vms-alpha.c:6156 #, c-format msgid " flags : 0x%04x" msgstr " флаги : 0x%04x" -#: vms-alpha.c:6145 +#: vms-alpha.c:6143 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr " alloc (len): %u (0x%08x)\n" -#: vms-alpha.c:6146 vms-alpha.c:6203 vms-alpha.c:6252 +#: vms-alpha.c:6144 vms-alpha.c:6201 vms-alpha.c:6250 #, c-format msgid " name : %.*s\n" msgstr " имя : %.*s\n" -#: vms-alpha.c:6156 +#: vms-alpha.c:6154 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "SPSC — определение программного раздела общего образа\n" -#: vms-alpha.c:6162 +#: vms-alpha.c:6160 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr " alloc (len) : %u (0x%08x)\n" -#: vms-alpha.c:6163 +#: vms-alpha.c:6161 #, c-format msgid " image offset : 0x%08x\n" msgstr " смещение образа : 0x%08x\n" -#: vms-alpha.c:6165 +#: vms-alpha.c:6163 #, c-format msgid " symvec offset : 0x%08x\n" msgstr " смещение symvec: 0x%08x\n" -#: vms-alpha.c:6167 +#: vms-alpha.c:6165 #, c-format msgid " name : %.*s\n" msgstr " имя : %.*s\n" -#: vms-alpha.c:6180 +#: vms-alpha.c:6178 #, c-format msgid "SYM - Global symbol definition\n" msgstr "SYM - определение глобальных символов\n" -#: vms-alpha.c:6181 vms-alpha.c:6241 vms-alpha.c:6262 vms-alpha.c:6281 +#: vms-alpha.c:6179 vms-alpha.c:6239 vms-alpha.c:6260 vms-alpha.c:6279 #, c-format msgid " flags: 0x%04x" msgstr " флаги: 0x%04x" -#: vms-alpha.c:6184 +#: vms-alpha.c:6182 #, c-format msgid " psect offset: 0x%08x\n" msgstr " смещение psect: 0x%08x\n" -#: vms-alpha.c:6188 +#: vms-alpha.c:6186 #, c-format msgid " code address: 0x%08x\n" msgstr " адрес кода: 0x%08x\n" -#: vms-alpha.c:6190 +#: vms-alpha.c:6188 #, c-format msgid " psect index for entry point : %u\n" msgstr " индекс psect для точки входа: %u\n" -#: vms-alpha.c:6193 vms-alpha.c:6269 vms-alpha.c:6288 +#: vms-alpha.c:6191 vms-alpha.c:6267 vms-alpha.c:6286 #, c-format msgid " psect index : %u\n" msgstr " индекс psect: %u\n" -#: vms-alpha.c:6195 vms-alpha.c:6271 vms-alpha.c:6290 +#: vms-alpha.c:6193 vms-alpha.c:6269 vms-alpha.c:6288 #, c-format msgid " name : %.*s\n" msgstr " имя : %.*s\n" -#: vms-alpha.c:6202 +#: vms-alpha.c:6200 #, c-format msgid "SYM - Global symbol reference\n" msgstr "SYM - ссылки глобальных символов\n" -#: vms-alpha.c:6214 +#: vms-alpha.c:6212 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "IDC - проверка идентификатора целостности\n" -#: vms-alpha.c:6215 +#: vms-alpha.c:6213 #, c-format msgid " flags : 0x%08x" msgstr " флаги : 0x%08x" -#: vms-alpha.c:6219 +#: vms-alpha.c:6217 #, c-format msgid " id match : %x\n" msgstr " id соответствия : %x\n" -#: vms-alpha.c:6221 +#: vms-alpha.c:6219 #, c-format msgid " error severity: %x\n" msgstr " серьёзность ошибки: %x\n" -#: vms-alpha.c:6224 +#: vms-alpha.c:6222 #, c-format msgid " entity name : %.*s\n" msgstr " название категории: %.*s\n" -#: vms-alpha.c:6226 +#: vms-alpha.c:6224 #, c-format msgid " object name : %.*s\n" msgstr " имя объекта: %.*s\n" -#: vms-alpha.c:6229 +#: vms-alpha.c:6227 #, c-format msgid " binary ident : 0x%08x\n" msgstr " двоичный идентификатор: 0x%08x\n" -#: vms-alpha.c:6232 +#: vms-alpha.c:6230 #, c-format msgid " ascii ident : %.*s\n" msgstr " ascii-идентификатор: %.*s\n" -#: vms-alpha.c:6240 +#: vms-alpha.c:6238 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "SYMG - определение универсальных символов\n" -#: vms-alpha.c:6244 +#: vms-alpha.c:6242 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr " смещение символьного вектора: 0x%08x\n" -#: vms-alpha.c:6246 +#: vms-alpha.c:6244 #, c-format msgid " entry point: 0x%08x\n" msgstr " точка входа: 0x%08x\n" -#: vms-alpha.c:6248 +#: vms-alpha.c:6246 #, c-format msgid " proc descr : 0x%08x\n" msgstr " proc descr : 0x%08x\n" -#: vms-alpha.c:6250 +#: vms-alpha.c:6248 #, c-format msgid " psect index: %u\n" msgstr " индекс psect: %u\n" -#: vms-alpha.c:6261 +#: vms-alpha.c:6259 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "SYMV - определение векторных символов\n" -#: vms-alpha.c:6265 +#: vms-alpha.c:6263 #, c-format msgid " vector : 0x%08x\n" msgstr " вектор : 0x%08x\n" -#: vms-alpha.c:6267 vms-alpha.c:6286 +#: vms-alpha.c:6265 vms-alpha.c:6284 #, c-format msgid " psect offset: %u\n" msgstr " смещение psect: %u\n" -#: vms-alpha.c:6280 +#: vms-alpha.c:6278 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "SYMM - определение глобальных символов с версией\n" -#: vms-alpha.c:6284 +#: vms-alpha.c:6282 #, c-format msgid " version mask: 0x%08x\n" msgstr " маска версии: 0x%08x\n" -#: vms-alpha.c:6295 +#: vms-alpha.c:6293 #, c-format msgid "unhandled egsd entry type %u\n" msgstr "необработанный egsd-элемент типа %u\n" -#: vms-alpha.c:6330 +#: vms-alpha.c:6328 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr " индекс компоновки: %u, заменитель insn: 0x%08x\n" -#: vms-alpha.c:6334 +#: vms-alpha.c:6332 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr " 1-й индекс psect: %u, 1-е смещение: 0x%08x %08x\n" -#: vms-alpha.c:6339 +#: vms-alpha.c:6337 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr " 2-й индекс psect: %u, 2-е смещение: 0x%08x %08x\n" -#: vms-alpha.c:6345 +#: vms-alpha.c:6343 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr " 3-й индекс psect: %u, 3-е смещение: 0x%08x %08x\n" -#: vms-alpha.c:6350 +#: vms-alpha.c:6348 #, c-format msgid " global name: %.*s\n" msgstr " глобальное имя: %.*s\n" -#: vms-alpha.c:6361 +#: vms-alpha.c:6359 #, c-format msgid " %s (len=%u+%u):\n" msgstr " %s (len=%u+%u):\n" -#: vms-alpha.c:6383 +#: vms-alpha.c:6381 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr " (тип: %3u, размер: 4+%3u): " -#: vms-alpha.c:6387 +#: vms-alpha.c:6385 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "STA_GBL (глобальный стек) %.*s\n" -#: vms-alpha.c:6391 +#: vms-alpha.c:6389 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "STA_LW (стек длинных слов) 0x%08x\n" -#: vms-alpha.c:6395 +#: vms-alpha.c:6393 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "STA_QW (стек четверных слов) 0x%08x %08x\n" -#: vms-alpha.c:6400 +#: vms-alpha.c:6398 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "STA_PQ (стек psect база + смещение)\n" -#: vms-alpha.c:6402 +#: vms-alpha.c:6400 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr " psect: %u, смещение: 0x%08x %08x\n" -#: vms-alpha.c:6408 +#: vms-alpha.c:6406 #, c-format msgid "STA_LI (stack literal)\n" msgstr "STA_LI (стек литерала)\n" -#: vms-alpha.c:6411 +#: vms-alpha.c:6409 #, c-format msgid "STA_MOD (stack module)\n" msgstr "STA_MOD (стек модулей)\n" -#: vms-alpha.c:6414 +#: vms-alpha.c:6412 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "STA_CKARG (аргумент процедуры сравнения)\n" -#: vms-alpha.c:6418 +#: vms-alpha.c:6416 #, c-format msgid "STO_B (store byte)\n" msgstr "STO_B (хранимый байт)\n" -#: vms-alpha.c:6421 +#: vms-alpha.c:6419 #, c-format msgid "STO_W (store word)\n" msgstr "STO_W (хранимое слово)\n" -#: vms-alpha.c:6424 +#: vms-alpha.c:6422 #, c-format msgid "STO_LW (store longword)\n" msgstr "STO_LW (хранимое длинное слово)\n" -#: vms-alpha.c:6427 +#: vms-alpha.c:6425 #, c-format msgid "STO_QW (store quadword)\n" msgstr "STO_QW (хранимое учетверённое слово)\n" -#: vms-alpha.c:6433 +#: vms-alpha.c:6431 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "STO_IMMR (хранимый непосредственный повтор) %u байт\n" -#: vms-alpha.c:6440 +#: vms-alpha.c:6438 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "STO_GBL (хранимая глобальная) %.*s\n" -#: vms-alpha.c:6444 +#: vms-alpha.c:6442 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "STO_CA (хранимый адрес кода) %.*s\n" -#: vms-alpha.c:6448 +#: vms-alpha.c:6446 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "STO_RB (хранимое относительное ветвление)\n" -#: vms-alpha.c:6451 +#: vms-alpha.c:6449 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "STO_AB (хранимое абсолютное ветвление)\n" -#: vms-alpha.c:6454 +#: vms-alpha.c:6452 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "STO_OFF (хранимое смещение на psect)\n" -#: vms-alpha.c:6460 +#: vms-alpha.c:6458 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "STO_IMM (хранимая непосредственно) %u байт\n" -#: vms-alpha.c:6467 +#: vms-alpha.c:6465 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "STO_GBL_LW (хранимое глобальное длинное слово) %.*s\n" -#: vms-alpha.c:6471 +#: vms-alpha.c:6469 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "STO_OFF (хранимый LP с сигнатурой процедуры)\n" -#: vms-alpha.c:6474 +#: vms-alpha.c:6472 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "STO_BR_GBL (хранимое глобальное ветвление) *todo*\n" -#: vms-alpha.c:6477 +#: vms-alpha.c:6475 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "STO_BR_PS (хранимое ветвление psect + смещение) *todo*\n" -#: vms-alpha.c:6481 +#: vms-alpha.c:6479 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "OPR_NOP (нет операции)\n" -#: vms-alpha.c:6484 +#: vms-alpha.c:6482 #, c-format msgid "OPR_ADD (add)\n" msgstr "OPR_ADD (сложение)\n" -#: vms-alpha.c:6487 +#: vms-alpha.c:6485 #, c-format msgid "OPR_SUB (subtract)\n" msgstr "OPR_SUB (вычитание)\n" -#: vms-alpha.c:6490 +#: vms-alpha.c:6488 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "OPR_MUL (умножение)\n" -#: vms-alpha.c:6493 +#: vms-alpha.c:6491 #, c-format msgid "OPR_DIV (divide)\n" msgstr "OPR_DIV (деление)\n" -#: vms-alpha.c:6496 +#: vms-alpha.c:6494 #, c-format msgid "OPR_AND (logical and)\n" msgstr "OPR_AND (логическое и)\n" -#: vms-alpha.c:6499 +#: vms-alpha.c:6497 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "OPR_IOR (логическое включающее или)\n" -#: vms-alpha.c:6502 +#: vms-alpha.c:6500 #, c-format msgid "OPR_EOR (logical exclusive or)\n" msgstr "OPR_EOR (логическое не включающее или)\n" -#: vms-alpha.c:6505 +#: vms-alpha.c:6503 #, c-format msgid "OPR_NEG (negate)\n" msgstr "OPR_NEG (инверсия)\n" -#: vms-alpha.c:6508 +#: vms-alpha.c:6506 #, c-format msgid "OPR_COM (complement)\n" msgstr "OPR_COM (дополнение)\n" -#: vms-alpha.c:6511 +#: vms-alpha.c:6509 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "OPR_INSV (поле вставки)\n" -#: vms-alpha.c:6514 +#: vms-alpha.c:6512 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "OPR_ASH (арифметический сдвиг)\n" -#: vms-alpha.c:6517 +#: vms-alpha.c:6515 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "OPR_USH (беззнаковый сдвиг)\n" -#: vms-alpha.c:6520 +#: vms-alpha.c:6518 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "OPR_ROT (циклический сдвиг)\n" -#: vms-alpha.c:6523 +#: vms-alpha.c:6521 #, c-format msgid "OPR_SEL (select)\n" msgstr "OPR_SEL (выбор)\n" -#: vms-alpha.c:6526 +#: vms-alpha.c:6524 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "OPR_REDEF (переопределение символа в текущей позиции)\n" -#: vms-alpha.c:6529 +#: vms-alpha.c:6527 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "OPR_REDEF (определение литерала)\n" -#: vms-alpha.c:6533 +#: vms-alpha.c:6531 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "STC_LP (хранимая условно компонуемая пара)\n" -#: vms-alpha.c:6537 +#: vms-alpha.c:6535 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "STC_LP_PSB (хранимая условно компонуемая пара + сигнатура)\n" -#: vms-alpha.c:6539 +#: vms-alpha.c:6537 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr " индекс компоновки: %u, процедура: %.*s\n" -#: vms-alpha.c:6542 +#: vms-alpha.c:6540 #, c-format msgid " signature: %.*s\n" msgstr " сигнатура: %.*s\n" -#: vms-alpha.c:6545 +#: vms-alpha.c:6543 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "STC_GBL (хранимая глобальное условие)\n" -#: vms-alpha.c:6547 +#: vms-alpha.c:6545 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr " индекс компоновки: %u, глобальный: %.*s\n" -#: vms-alpha.c:6551 +#: vms-alpha.c:6549 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "STC_GCA (хранимый адрес условного кода)\n" -#: vms-alpha.c:6553 +#: vms-alpha.c:6551 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr " индекс компоновки: %u, имя процедуры: %.*s\n" -#: vms-alpha.c:6557 +#: vms-alpha.c:6555 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "STC_PS (хранимое условие psect + смещение)\n" -#: vms-alpha.c:6560 +#: vms-alpha.c:6558 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr " индекс компоновки: %u, psect: %u, смещение: 0x%08x %08x\n" -#: vms-alpha.c:6567 +#: vms-alpha.c:6565 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "STC_NOP_GBL (хранимое условие NOP по глобальному адресу)\n" -#: vms-alpha.c:6571 +#: vms-alpha.c:6569 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "STC_NOP_PS (хранимое условие NOP по psect + смещение)\n" -#: vms-alpha.c:6575 +#: vms-alpha.c:6573 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "STC_BSR_GBL (хранимое условие BSR по глобальному адресу)\n" -#: vms-alpha.c:6579 +#: vms-alpha.c:6577 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "STC_BSR_PS (хранимое условие BSR по psect + смещение)\n" -#: vms-alpha.c:6583 +#: vms-alpha.c:6581 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "STC_LDA_GBL (хранимое условие LDA по глобальному адресу)\n" -#: vms-alpha.c:6587 +#: vms-alpha.c:6585 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "STC_LDA_PS (хранимое условие LDA по psect + смещение)\n" -#: vms-alpha.c:6591 +#: vms-alpha.c:6589 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "STC_BOH_GBL (хранимое условие BOH по глобальному адресу)\n" -#: vms-alpha.c:6595 +#: vms-alpha.c:6593 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "STC_BOH_PS (хранимое условие BOH по psect + смещение)\n" -#: vms-alpha.c:6600 +#: vms-alpha.c:6598 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "STC_NBH_GBL (хранимое условие или указание по глобальному адресу)\n" -#: vms-alpha.c:6604 +#: vms-alpha.c:6602 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "STC_NBH_PS (хранимое условие или указание по psect + смещение)\n" -#: vms-alpha.c:6608 +#: vms-alpha.c:6606 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "CTL_SETRB (установка базы перемещения)\n" -#: vms-alpha.c:6614 +#: vms-alpha.c:6612 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "CTL_AUGRB (дополнение базы перемещения) %u\n" -#: vms-alpha.c:6618 +#: vms-alpha.c:6616 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "CTL_DFLOC (определение положения)\n" -#: vms-alpha.c:6621 +#: vms-alpha.c:6619 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "CTL_STLOC (задание положения)\n" -#: vms-alpha.c:6624 +#: vms-alpha.c:6622 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "CTL_STKDL (положение определяемое стеком)\n" -#: vms-alpha.c:6627 vms-alpha.c:7051 vms-alpha.c:7177 +#: vms-alpha.c:6625 vms-alpha.c:7049 vms-alpha.c:7175 #, c-format msgid "*unhandled*\n" msgstr "*не обработано*\n" -#: vms-alpha.c:6657 vms-alpha.c:6696 +#: vms-alpha.c:6655 vms-alpha.c:6694 #, c-format msgid "cannot read GST record length\n" msgstr "не удалось прочитать длину записи GST\n" #. Ill-formed. -#: vms-alpha.c:6678 +#: vms-alpha.c:6676 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "не удалось найти EMH в первой записи GST\n" -#: vms-alpha.c:6704 +#: vms-alpha.c:6702 #, c-format msgid "cannot read GST record header\n" msgstr "не удалось прочитать заголовок записи GST\n" -#: vms-alpha.c:6717 +#: vms-alpha.c:6715 #, c-format msgid " corrupted GST\n" msgstr " повреждённый GST\n" -#: vms-alpha.c:6725 +#: vms-alpha.c:6723 #, c-format msgid "cannot read GST record\n" msgstr "не удалось прочитать запись GST\n" -#: vms-alpha.c:6754 +#: vms-alpha.c:6752 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr " необработанный тип записи EOBJ %u\n" -#: vms-alpha.c:6778 +#: vms-alpha.c:6776 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr " счётчик бит: %u, базовый адрес: 0x%08x\n" -#: vms-alpha.c:6792 +#: vms-alpha.c:6790 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" msgstr " bitmap: 0x%08x (счётчик: %u):\n" -#: vms-alpha.c:6799 +#: vms-alpha.c:6797 #, c-format msgid " %08x" msgstr " %08x" -#: vms-alpha.c:6825 +#: vms-alpha.c:6823 #, c-format msgid " image %u (%u entries)\n" msgstr " образ %u (%u элементов)\n" -#: vms-alpha.c:6831 +#: vms-alpha.c:6829 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr " смещение: 0x%08x, значение: 0x%08x\n" -#: vms-alpha.c:6853 +#: vms-alpha.c:6851 #, c-format msgid " image %u (%u entries), offsets:\n" msgstr " образ %u (%u элементов), смещения:\n" -#: vms-alpha.c:6860 +#: vms-alpha.c:6858 #, c-format msgid " 0x%08x" msgstr " 0x%08x" #. 64 bits. -#: vms-alpha.c:6982 +#: vms-alpha.c:6980 #, c-format msgid "64 bits *unhandled*\n" msgstr "64 бита *не обработано*\n" -#: vms-alpha.c:6987 +#: vms-alpha.c:6985 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "класс: %u, dtype: %u, длина: %u, указатель: 0x%08x\n" -#: vms-alpha.c:6998 +#: vms-alpha.c:6996 #, c-format msgid "non-contiguous array of %s\n" msgstr "несвязный массив %s\n" -#: vms-alpha.c:7003 +#: vms-alpha.c:7001 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "dimct: %u, aflags: 0x%02x, цифр: %u, шкала: %u\n" -#: vms-alpha.c:7008 +#: vms-alpha.c:7006 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "arsize: %u, a0: 0x%08x\n" -#: vms-alpha.c:7012 +#: vms-alpha.c:7010 #, c-format msgid "Strides:\n" msgstr "Шаги:\n" -#: vms-alpha.c:7022 +#: vms-alpha.c:7020 #, c-format msgid "Bounds:\n" msgstr "Границы:\n" -#: vms-alpha.c:7028 +#: vms-alpha.c:7026 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "[%u]: нижняя: %u, верхняя: %u\n" -#: vms-alpha.c:7040 +#: vms-alpha.c:7038 #, c-format msgid "unaligned bit-string of %s\n" msgstr "невыровненная строка бит %s\n" -#: vms-alpha.c:7045 +#: vms-alpha.c:7043 #, c-format msgid "base: %u, pos: %u\n" msgstr "база: %u, позиция: %u\n" -#: vms-alpha.c:7066 +#: vms-alpha.c:7064 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "vflags: 0x%02x, значение: 0x%08x " -#: vms-alpha.c:7072 +#: vms-alpha.c:7070 #, c-format msgid "(no value)\n" msgstr "(нет значения)\n" -#: vms-alpha.c:7075 +#: vms-alpha.c:7073 #, c-format msgid "(not active)\n" msgstr "(не активно)\n" -#: vms-alpha.c:7078 +#: vms-alpha.c:7076 #, c-format msgid "(not allocated)\n" msgstr "(не выделено)\n" -#: vms-alpha.c:7081 +#: vms-alpha.c:7079 #, c-format msgid "(descriptor)\n" msgstr "(дескриптор)\n" -#: vms-alpha.c:7085 +#: vms-alpha.c:7083 #, c-format msgid "(trailing value)\n" msgstr "(конечное значение)\n" -#: vms-alpha.c:7088 +#: vms-alpha.c:7086 #, c-format msgid "(value spec follows)\n" msgstr "(далее значение спецификации)\n" -#: vms-alpha.c:7091 +#: vms-alpha.c:7089 #, c-format msgid "(at bit offset %u)\n" msgstr "(по битовому смещению %u)\n" -#: vms-alpha.c:7095 +#: vms-alpha.c:7093 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "(reg: %u, disp: %u, indir: %u, kind: " -#: vms-alpha.c:7102 +#: vms-alpha.c:7100 msgid "literal" msgstr "литерал" -#: vms-alpha.c:7105 +#: vms-alpha.c:7103 msgid "address" msgstr "адрес" -#: vms-alpha.c:7108 +#: vms-alpha.c:7106 msgid "desc" msgstr "опис" -#: vms-alpha.c:7111 +#: vms-alpha.c:7109 msgid "reg" msgstr "рег" -#: vms-alpha.c:7128 +#: vms-alpha.c:7126 #, c-format msgid "len: %2u, kind: %2u " msgstr "len: %2u, kind: %2u " -#: vms-alpha.c:7134 +#: vms-alpha.c:7132 #, c-format msgid "atomic, type=0x%02x %s\n" msgstr "атомарно, тип=0x%02x %s\n" -#: vms-alpha.c:7138 +#: vms-alpha.c:7136 #, c-format msgid "indirect, defined at 0x%08x\n" msgstr "косвенно, определено по адресу 0x%08x\n" -#: vms-alpha.c:7142 +#: vms-alpha.c:7140 #, c-format msgid "typed pointer\n" msgstr "типизированный указатель\n" -#: vms-alpha.c:7146 +#: vms-alpha.c:7144 #, c-format msgid "pointer\n" msgstr "указатель\n" -#: vms-alpha.c:7154 +#: vms-alpha.c:7152 #, c-format msgid "array, dim: %u, bitmap: " msgstr "массив, размер: %u, bitmap: " -#: vms-alpha.c:7161 +#: vms-alpha.c:7159 #, c-format msgid "array descriptor:\n" msgstr "описатель массива:\n" -#: vms-alpha.c:7168 +#: vms-alpha.c:7166 #, c-format msgid "type spec for element:\n" msgstr "спецификация типа для элемента:\n" -#: vms-alpha.c:7170 +#: vms-alpha.c:7168 #, c-format msgid "type spec for subscript %u:\n" msgstr "спецификация типа для subscript %u:\n" -#: vms-alpha.c:7188 +#: vms-alpha.c:7186 #, c-format msgid "Debug symbol table:\n" msgstr "Таблица символов отладки:\n" -#: vms-alpha.c:7199 +#: vms-alpha.c:7197 #, c-format msgid "cannot read DST header\n" msgstr "не удалось прочитать заголовок DST\n" -#: vms-alpha.c:7205 +#: vms-alpha.c:7203 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr " тип: %3u, длина: %3u (по 0x%08x): " -#: vms-alpha.c:7219 +#: vms-alpha.c:7217 #, c-format msgid "cannot read DST symbol\n" msgstr "не удалось прочитать символ DST\n" -#: vms-alpha.c:7262 +#: vms-alpha.c:7260 #, c-format msgid "standard data: %s\n" msgstr "стандартные данные: %s\n" -#: vms-alpha.c:7265 vms-alpha.c:7353 +#: vms-alpha.c:7263 vms-alpha.c:7351 #, c-format msgid " name: %.*s\n" msgstr " имя: %.*s\n" -#: vms-alpha.c:7272 +#: vms-alpha.c:7270 #, c-format msgid "modbeg\n" msgstr "modbeg\n" -#: vms-alpha.c:7274 +#: vms-alpha.c:7272 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr " флаги: %d, язык: %u, старший: %u, младший: %u\n" -#: vms-alpha.c:7280 vms-alpha.c:7554 +#: vms-alpha.c:7278 vms-alpha.c:7552 #, c-format msgid " module name: %.*s\n" msgstr " имя модуля: %.*s\n" -#: vms-alpha.c:7283 +#: vms-alpha.c:7281 #, c-format msgid " compiler : %.*s\n" msgstr " компилятор : %.*s\n" -#: vms-alpha.c:7288 +#: vms-alpha.c:7286 #, c-format msgid "modend\n" msgstr "modend\n" -#: vms-alpha.c:7295 +#: vms-alpha.c:7293 msgid "rtnbeg\n" msgstr "rtnbeg\n" -#: vms-alpha.c:7297 +#: vms-alpha.c:7295 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr " флаги: %u, адрес: 0x%08x, pd-адрес: 0x%08x\n" -#: vms-alpha.c:7302 +#: vms-alpha.c:7300 #, c-format msgid " routine name: %.*s\n" msgstr " имя процедуры: %.*s\n" -#: vms-alpha.c:7310 +#: vms-alpha.c:7308 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "rtnend: размер 0x%08x\n" -#: vms-alpha.c:7318 +#: vms-alpha.c:7316 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "пролог: адрес bkpt 0x%08x\n" -#: vms-alpha.c:7327 +#: vms-alpha.c:7325 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "эпилог: флаги: %u, счётчик: %u\n" -#: vms-alpha.c:7337 +#: vms-alpha.c:7335 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "blkbeg: адрес: 0x%08x, имя: %.*s\n" -#: vms-alpha.c:7346 +#: vms-alpha.c:7344 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "blkend: размер: 0x%08x\n" -#: vms-alpha.c:7352 +#: vms-alpha.c:7350 #, c-format msgid "typspec (len: %u)\n" msgstr "typspec (длина: %u)\n" -#: vms-alpha.c:7359 +#: vms-alpha.c:7357 #, c-format msgid "septyp, name: %.*s\n" msgstr "septyp, имя: %.*s\n" -#: vms-alpha.c:7368 +#: vms-alpha.c:7366 #, c-format msgid "recbeg: name: %.*s\n" msgstr "recbeg: имя: %.*s\n" -#: vms-alpha.c:7370 +#: vms-alpha.c:7368 #, c-format msgid " len: %u bits\n" msgstr " длина: %u бит\n" -#: vms-alpha.c:7375 +#: vms-alpha.c:7373 #, c-format msgid "recend\n" msgstr "recend\n" -#: vms-alpha.c:7379 +#: vms-alpha.c:7377 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "enumbeg, длина: %u, имя: %.*s\n" -#: vms-alpha.c:7383 +#: vms-alpha.c:7381 #, c-format msgid "enumelt, name: %.*s\n" msgstr "enumelt, имя: %.*s\n" -#: vms-alpha.c:7387 +#: vms-alpha.c:7385 #, c-format msgid "enumend\n" msgstr "enumend\n" -#: vms-alpha.c:7392 +#: vms-alpha.c:7390 #, c-format msgid "label, name: %.*s\n" msgstr "метка, имя: %.*s\n" -#: vms-alpha.c:7394 +#: vms-alpha.c:7392 #, c-format msgid " address: 0x%08x\n" msgstr " адрес: 0x%08x\n" -#: vms-alpha.c:7404 +#: vms-alpha.c:7402 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "несмежный диапазон (nbr: %u)\n" -#: vms-alpha.c:7407 +#: vms-alpha.c:7405 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr " адрес: 0x%08x, размер: %u\n" -#: vms-alpha.c:7417 +#: vms-alpha.c:7415 #, c-format msgid "line num (len: %u)\n" msgstr "номер строки (длина: %u)\n" -#: vms-alpha.c:7434 +#: vms-alpha.c:7432 #, c-format msgid "delta_pc_w %u\n" msgstr "delta_pc_w %u\n" -#: vms-alpha.c:7441 +#: vms-alpha.c:7439 #, c-format msgid "incr_linum(b): +%u\n" msgstr "incr_linum(b): +%u\n" -#: vms-alpha.c:7447 +#: vms-alpha.c:7445 #, c-format msgid "incr_linum_w: +%u\n" msgstr "incr_linum_w: +%u\n" -#: vms-alpha.c:7453 +#: vms-alpha.c:7451 #, c-format msgid "incr_linum_l: +%u\n" msgstr "incr_linum_l: +%u\n" -#: vms-alpha.c:7459 +#: vms-alpha.c:7457 #, c-format msgid "set_line_num(w) %u\n" msgstr "set_line_num(w) %u\n" -#: vms-alpha.c:7464 +#: vms-alpha.c:7462 #, c-format msgid "set_line_num_b %u\n" msgstr "set_line_num_b %u\n" -#: vms-alpha.c:7469 +#: vms-alpha.c:7467 #, c-format msgid "set_line_num_l %u\n" msgstr "set_line_num_l %u\n" -#: vms-alpha.c:7474 +#: vms-alpha.c:7472 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "set_abs_pc: 0x%08x\n" -#: vms-alpha.c:7478 +#: vms-alpha.c:7476 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "delta_pc_l: +0x%08x\n" -#: vms-alpha.c:7483 +#: vms-alpha.c:7481 #, c-format msgid "term(b): 0x%02x" msgstr "term(b): 0x%02x" -#: vms-alpha.c:7485 +#: vms-alpha.c:7483 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7490 +#: vms-alpha.c:7488 #, c-format msgid "term_w: 0x%04x" msgstr "term_w: 0x%04x" -#: vms-alpha.c:7492 +#: vms-alpha.c:7490 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7498 +#: vms-alpha.c:7496 #, c-format msgid "delta pc +%-4d" msgstr "delta pc +%-4d" -#: vms-alpha.c:7502 +#: vms-alpha.c:7500 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr " pc: 0x%08x строка: %5u\n" -#: vms-alpha.c:7507 +#: vms-alpha.c:7505 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *необработанная* команда %u\n" -#: vms-alpha.c:7522 +#: vms-alpha.c:7520 #, c-format msgid "source (len: %u)\n" msgstr "источник (длина: %u)\n" -#: vms-alpha.c:7537 +#: vms-alpha.c:7535 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr " declfile: длина: %u, флаги: %u, fileid: %u\n" -#: vms-alpha.c:7542 +#: vms-alpha.c:7540 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" -#: vms-alpha.c:7551 +#: vms-alpha.c:7549 #, c-format msgid " filename : %.*s\n" msgstr " имя файла : %.*s\n" -#: vms-alpha.c:7560 +#: vms-alpha.c:7558 #, c-format msgid " setfile %u\n" msgstr " setfile %u\n" -#: vms-alpha.c:7565 vms-alpha.c:7570 +#: vms-alpha.c:7563 vms-alpha.c:7568 #, c-format msgid " setrec %u\n" msgstr " setrec %u\n" -#: vms-alpha.c:7575 vms-alpha.c:7580 +#: vms-alpha.c:7573 vms-alpha.c:7578 #, c-format msgid " setlnum %u\n" msgstr " setlnum %u\n" -#: vms-alpha.c:7585 vms-alpha.c:7590 +#: vms-alpha.c:7583 vms-alpha.c:7588 #, c-format msgid " deflines %u\n" msgstr " deflines %u\n" -#: vms-alpha.c:7594 +#: vms-alpha.c:7592 #, c-format msgid " formfeed\n" msgstr " formfeed\n" -#: vms-alpha.c:7598 +#: vms-alpha.c:7596 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *необработанная* команда %u\n" -#: vms-alpha.c:7610 +#: vms-alpha.c:7608 #, c-format msgid "*unhandled* dst type %u\n" msgstr "*необработанный* тип назначения %u\n" -#: vms-alpha.c:7642 +#: vms-alpha.c:7640 #, c-format msgid "cannot read EIHD\n" msgstr "не удалось прочитать EIHD\n" -#: vms-alpha.c:7646 +#: vms-alpha.c:7644 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "EIHD: (размер: %u, nbr блоков: %u)\n" -#: vms-alpha.c:7650 +#: vms-alpha.c:7648 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr " majorid: %u, minorid: %u\n" -#: vms-alpha.c:7658 +#: vms-alpha.c:7656 msgid "executable" msgstr "исполняемый" -#: vms-alpha.c:7661 +#: vms-alpha.c:7659 msgid "linkable image" msgstr "компонуемый образ" -#: vms-alpha.c:7668 +#: vms-alpha.c:7666 #, c-format msgid " image type: %u (%s)" msgstr " тип образа: %u (%s)" -#: vms-alpha.c:7674 +#: vms-alpha.c:7672 msgid "native" msgstr "родной" -#: vms-alpha.c:7677 +#: vms-alpha.c:7675 msgid "CLI" msgstr "CLI" -#: vms-alpha.c:7684 +#: vms-alpha.c:7682 #, c-format msgid ", subtype: %u (%s)\n" msgstr ", подтип: %u (%s)\n" -#: vms-alpha.c:7691 +#: vms-alpha.c:7689 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr " смещения: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" -#: vms-alpha.c:7695 +#: vms-alpha.c:7693 #, c-format msgid " fixup info rva: " msgstr " fixup info rva: " -#: vms-alpha.c:7697 +#: vms-alpha.c:7695 #, c-format msgid ", symbol vector rva: " msgstr ", символьный вектор rva: " -#: vms-alpha.c:7700 +#: vms-alpha.c:7698 #, c-format msgid "" "\n" @@ -7604,690 +7775,719 @@ msgstr "" "\n" " смещение массива версий: %u\n" -#: vms-alpha.c:7705 +#: vms-alpha.c:7703 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" -#: vms-alpha.c:7711 +#: vms-alpha.c:7709 #, c-format msgid " linker flags: %08x:" msgstr " флаги компоновщика: %08x:" -#: vms-alpha.c:7742 +#: vms-alpha.c:7740 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" -#: vms-alpha.c:7748 +#: vms-alpha.c:7746 #, c-format msgid " BPAGE: %u" msgstr " BPAGE: %u" -#: vms-alpha.c:7755 +#: vms-alpha.c:7753 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr ", ext fixup offset: %u, no_opt psect off: %u" -#: vms-alpha.c:7758 +#: vms-alpha.c:7756 #, c-format msgid ", alias: %u\n" msgstr ", псевдоним: %u\n" -#: vms-alpha.c:7766 +#: vms-alpha.c:7764 #, c-format msgid "system version array information:\n" msgstr "массив информации версии системы:\n" -#: vms-alpha.c:7770 +#: vms-alpha.c:7768 #, c-format msgid "cannot read EIHVN header\n" msgstr "не удалось прочитать заголовок EIHVN\n" -#: vms-alpha.c:7780 +#: vms-alpha.c:7778 #, c-format msgid "cannot read EIHVN version\n" msgstr "не удалось прочитать версию EIHVN\n" -#: vms-alpha.c:7783 +#: vms-alpha.c:7781 #, c-format msgid " %02u " msgstr " %02u " -#: vms-alpha.c:7787 +#: vms-alpha.c:7785 msgid "BASE_IMAGE " msgstr "BASE_IMAGE " -#: vms-alpha.c:7790 +#: vms-alpha.c:7788 msgid "MEMORY_MANAGEMENT" msgstr "MEMORY_MANAGEMENT" -#: vms-alpha.c:7793 +#: vms-alpha.c:7791 msgid "IO " msgstr "IO " -#: vms-alpha.c:7796 +#: vms-alpha.c:7794 msgid "FILES_VOLUMES " msgstr "FILES_VOLUMES " -#: vms-alpha.c:7799 +#: vms-alpha.c:7797 msgid "PROCESS_SCHED " msgstr "PROCESS_SCHED " -#: vms-alpha.c:7802 +#: vms-alpha.c:7800 msgid "SYSGEN " msgstr "SYSGEN " -#: vms-alpha.c:7805 +#: vms-alpha.c:7803 msgid "CLUSTERS_LOCKMGR " msgstr "CLUSTERS_LOCKMGR " -#: vms-alpha.c:7808 +#: vms-alpha.c:7806 msgid "LOGICAL_NAMES " msgstr "LOGICAL_NAMES " -#: vms-alpha.c:7811 +#: vms-alpha.c:7809 msgid "SECURITY " msgstr "SECURITY " -#: vms-alpha.c:7814 +#: vms-alpha.c:7812 msgid "IMAGE_ACTIVATOR " msgstr "IMAGE_ACTIVATOR " -#: vms-alpha.c:7817 +#: vms-alpha.c:7815 msgid "NETWORKS " msgstr "NETWORKS " -#: vms-alpha.c:7820 +#: vms-alpha.c:7818 msgid "COUNTERS " msgstr "COUNTERS " -#: vms-alpha.c:7823 +#: vms-alpha.c:7821 msgid "STABLE " msgstr "STABLE " -#: vms-alpha.c:7826 +#: vms-alpha.c:7824 msgid "MISC " msgstr "MISC " -#: vms-alpha.c:7829 +#: vms-alpha.c:7827 msgid "CPU " msgstr "CPU " -#: vms-alpha.c:7832 +#: vms-alpha.c:7830 msgid "VOLATILE " msgstr "VOLATILE " -#: vms-alpha.c:7835 +#: vms-alpha.c:7833 msgid "SHELL " msgstr "SHELL " -#: vms-alpha.c:7838 +#: vms-alpha.c:7836 msgid "POSIX " msgstr "POSIX " -#: vms-alpha.c:7841 +#: vms-alpha.c:7839 msgid "MULTI_PROCESSING " msgstr "MULTI_PROCESSING " -#: vms-alpha.c:7844 +#: vms-alpha.c:7842 msgid "GALAXY " msgstr "GALAXY " -#: vms-alpha.c:7847 +#: vms-alpha.c:7845 msgid "*unknown* " msgstr "*неизвестно* " -#: vms-alpha.c:7863 vms-alpha.c:8137 +#: vms-alpha.c:7861 vms-alpha.c:8135 #, c-format msgid "cannot read EIHA\n" msgstr "не удалось прочитать EIHA\n" -#: vms-alpha.c:7866 +#: vms-alpha.c:7864 #, c-format msgid "Image activation: (size=%u)\n" msgstr "Активация образа: (размер=%u)\n" -#: vms-alpha.c:7869 +#: vms-alpha.c:7867 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr " Первый адрес: 0x%08x 0x%08x\n" -#: vms-alpha.c:7873 +#: vms-alpha.c:7871 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr " Второй адрес: 0x%08x 0x%08x\n" -#: vms-alpha.c:7877 +#: vms-alpha.c:7875 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr " Третий адрес: 0x%08x 0x%08x\n" -#: vms-alpha.c:7881 +#: vms-alpha.c:7879 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr " Четвёртый адрес: 0x%08x 0x%08x\n" -#: vms-alpha.c:7885 +#: vms-alpha.c:7883 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr " Общий образ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7896 +#: vms-alpha.c:7894 #, c-format msgid "cannot read EIHI\n" msgstr "не удалось прочитать EIHI\n" -#: vms-alpha.c:7900 +#: vms-alpha.c:7898 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "Идентификация образа: (старший: %u, младший: %u)\n" -#: vms-alpha.c:7903 +#: vms-alpha.c:7901 #, c-format msgid " image name : %.*s\n" msgstr " имя образа : %.*s\n" -#: vms-alpha.c:7905 +#: vms-alpha.c:7903 #, c-format msgid " link time : %s\n" msgstr " время компоновки : %s\n" -#: vms-alpha.c:7907 +#: vms-alpha.c:7905 #, c-format msgid " image ident : %.*s\n" msgstr " идент-р образа : %.*s\n" -#: vms-alpha.c:7909 +#: vms-alpha.c:7907 #, c-format msgid " linker ident : %.*s\n" msgstr " идент-р компоновщика: %.*s\n" -#: vms-alpha.c:7911 +#: vms-alpha.c:7909 #, c-format msgid " image build ident: %.*s\n" msgstr " идент-р сборки образа: %.*s\n" -#: vms-alpha.c:7921 +#: vms-alpha.c:7919 #, c-format msgid "cannot read EIHS\n" msgstr "не удалось прочитать EIHS\n" -#: vms-alpha.c:7925 +#: vms-alpha.c:7923 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "Таблица символов & отладки образа: (старший: %u, младший: %u)\n" -#: vms-alpha.c:7931 +#: vms-alpha.c:7929 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr " таблица отладочных символов: vbn: %u, размер: %u (0x%x)\n" -#: vms-alpha.c:7936 +#: vms-alpha.c:7934 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr " глобальная таблица символов: vbn: %u, записей: %u\n" -#: vms-alpha.c:7941 +#: vms-alpha.c:7939 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr " таблица отладочных модулей: vbn: %u, размер: %u\n" -#: vms-alpha.c:7954 +#: vms-alpha.c:7952 #, c-format msgid "cannot read EISD\n" msgstr "не удалось прочитать EISD\n" -#: vms-alpha.c:7965 +#: vms-alpha.c:7963 #, c-format msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "Дескриптор раздела образа: (старший: %u, младший: %u, размер: %u, смещение: %u)\n" -#: vms-alpha.c:7973 +#: vms-alpha.c:7971 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr " раздел: база: 0x%08x%08x размер: 0x%08x\n" -#: vms-alpha.c:7978 +#: vms-alpha.c:7976 #, c-format msgid " flags: 0x%04x" msgstr " флаги: 0x%04x" -#: vms-alpha.c:8016 +#: vms-alpha.c:8014 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr " vbn: %u, pfc: %u, matchctl: %u тип: %u (" -#: vms-alpha.c:8022 +#: vms-alpha.c:8020 msgid "NORMAL" msgstr "NORMAL" -#: vms-alpha.c:8025 +#: vms-alpha.c:8023 msgid "SHRFXD" msgstr "SHRFXD" -#: vms-alpha.c:8028 +#: vms-alpha.c:8026 msgid "PRVFXD" msgstr "PRVFXD" -#: vms-alpha.c:8031 +#: vms-alpha.c:8029 msgid "SHRPIC" msgstr "SHRPIC" -#: vms-alpha.c:8034 +#: vms-alpha.c:8032 msgid "PRVPIC" msgstr "PRVPIC" -#: vms-alpha.c:8037 +#: vms-alpha.c:8035 msgid "USRSTACK" msgstr "USRSTACK" -#: vms-alpha.c:8043 +#: vms-alpha.c:8041 msgid ")\n" msgstr ")\n" -#: vms-alpha.c:8046 +#: vms-alpha.c:8044 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr " иден-р: 0x%08x, имя: %.*s\n" -#: vms-alpha.c:8056 +#: vms-alpha.c:8054 #, c-format msgid "cannot read DMT\n" msgstr "не удалось прочитать DMT\n" -#: vms-alpha.c:8060 +#: vms-alpha.c:8058 #, c-format msgid "Debug module table:\n" msgstr "Таблица отладочных модулей:\n" -#: vms-alpha.c:8069 +#: vms-alpha.c:8067 #, c-format msgid "cannot read DMT header\n" msgstr "не удалось прочитать заголовок DMT\n" -#: vms-alpha.c:8075 +#: vms-alpha.c:8073 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr " смещение модуля: 0x%08x, размер: 0x%08x, (%u psects)\n" -#: vms-alpha.c:8085 +#: vms-alpha.c:8083 #, c-format msgid "cannot read DMT psect\n" msgstr "не удалось прочитать DMT psect\n" -#: vms-alpha.c:8089 +#: vms-alpha.c:8087 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr " начало psect: 0x%08x, длина: %u\n" -#: vms-alpha.c:8102 +#: vms-alpha.c:8100 #, c-format msgid "cannot read DST\n" msgstr "не удалось прочитать DST\n" -#: vms-alpha.c:8112 +#: vms-alpha.c:8110 #, c-format msgid "cannot read GST\n" msgstr "не удалось прочитать GST\n" -#: vms-alpha.c:8116 +#: vms-alpha.c:8114 #, c-format msgid "Global symbol table:\n" msgstr "Таблица глобальных символов:\n" -#: vms-alpha.c:8143 +#: vms-alpha.c:8141 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "Активатор местоположения образа: (старший: %u, младший: %u)\n" -#: vms-alpha.c:8147 +#: vms-alpha.c:8145 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr " iaflink : 0x%08x %08x\n" -#: vms-alpha.c:8151 +#: vms-alpha.c:8149 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr " fixuplnk: 0x%08x %08x\n" -#: vms-alpha.c:8154 +#: vms-alpha.c:8152 #, c-format msgid " size : %u\n" msgstr " размер: %u\n" -#: vms-alpha.c:8156 +#: vms-alpha.c:8154 #, c-format msgid " flags: 0x%08x\n" msgstr " флаги: 0x%08x\n" -#: vms-alpha.c:8161 +#: vms-alpha.c:8159 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" -#: vms-alpha.c:8166 +#: vms-alpha.c:8164 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr " qdotadroff: %5u, ldotadroff: %5u\n" -#: vms-alpha.c:8171 +#: vms-alpha.c:8169 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr " codeadroff: %5u, lpfixoff : %5u\n" -#: vms-alpha.c:8174 +#: vms-alpha.c:8172 #, c-format msgid " chgprtoff : %5u\n" msgstr " chgprtoff : %5u\n" -#: vms-alpha.c:8178 +#: vms-alpha.c:8176 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr " shlstoff : %5u, shrimgcnt : %5u\n" -#: vms-alpha.c:8181 +#: vms-alpha.c:8179 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr " shlextra : %5u, permctx : %5u\n" -#: vms-alpha.c:8184 +#: vms-alpha.c:8182 #, c-format msgid " base_va : 0x%08x\n" msgstr " base_va : 0x%08x\n" -#: vms-alpha.c:8186 +#: vms-alpha.c:8184 #, c-format msgid " lppsbfixoff: %5u\n" msgstr " lppsbfixoff: %5u\n" -#: vms-alpha.c:8194 +#: vms-alpha.c:8192 #, c-format msgid " Shareable images:\n" msgstr " Общие образы:\n" -#: vms-alpha.c:8199 +#: vms-alpha.c:8197 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr " %u: размер: %u, флаги: 0x%02x, имя: %.*s\n" -#: vms-alpha.c:8206 +#: vms-alpha.c:8204 #, c-format msgid " quad-word relocation fixups:\n" msgstr " четверное слово перемещаемых местоположений:\n" -#: vms-alpha.c:8211 +#: vms-alpha.c:8209 #, c-format msgid " long-word relocation fixups:\n" msgstr " длинное слово перемещаемых местоположений:\n" -#: vms-alpha.c:8216 +#: vms-alpha.c:8214 #, c-format msgid " quad-word .address reference fixups:\n" msgstr " четверное слово ссылочных местоположений .address:\n" -#: vms-alpha.c:8221 +#: vms-alpha.c:8219 #, c-format msgid " long-word .address reference fixups:\n" msgstr " длинное слово ссылочных местоположений .address:\n" -#: vms-alpha.c:8226 +#: vms-alpha.c:8224 #, c-format msgid " Code Address Reference Fixups:\n" msgstr " Ссылочные местоположения адреса кода:\n" -#: vms-alpha.c:8231 +#: vms-alpha.c:8229 #, c-format msgid " Linkage Pairs Reference Fixups:\n" msgstr " Ссылочные местоположения компонуемых пар:\n" -#: vms-alpha.c:8240 +#: vms-alpha.c:8238 #, c-format msgid " Change Protection (%u entries):\n" msgstr " Изменение защиты (%u элементов):\n" -#: vms-alpha.c:8246 +#: vms-alpha.c:8244 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr " база: 0x%08x %08x, размер: 0x%08x, prot: 0x%08x " #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:9123 +#: vms-alpha.c:9121 msgid "%P: relocatable link is not supported\n" msgstr "%P: перемещаемая ссылка не поддерживается\n" -#: vms-alpha.c:9194 +#: vms-alpha.c:9192 #, c-format msgid "%P: multiple entry points: in modules %pB and %pB\n" msgstr "%P: несколько точек входа: в модулях %pB и %pB\n" -#: vms-lib.c:1525 +#: vms-lib.c:1527 #, c-format msgid "could not open shared image '%s' from '%s'" msgstr "не удалось открыть общий образ «%s» из «%s»" -#: vms-misc.c:367 +#: vms-misc.c:370 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "Вызов _bfd_vms_output_counted с нулевым количеством байт" -#: vms-misc.c:372 +#: vms-misc.c:375 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "Вызов _bfd_vms_output_counted со слишком большим количеством байт" -#: xcofflink.c:832 +#: xcofflink.c:835 #, c-format msgid "%pB: XCOFF shared object when not producing XCOFF output" msgstr "%pB: общий объект XCOFF без создания вывода XCOFF" -#: xcofflink.c:853 +#: xcofflink.c:856 #, c-format msgid "%pB: dynamic object with no .loader section" msgstr "%pB: динамический объект без раздела .loader" -#: xcofflink.c:1417 +#: xcofflink.c:1420 #, c-format msgid "%pB: `%s' has line numbers but no enclosing section" msgstr "%pB: «%s» содержит номера строк, но в обрамляющем разделе" -#: xcofflink.c:1470 +#: xcofflink.c:1473 #, c-format msgid "%pB: class %d symbol `%s' has no aux entries" msgstr "%pB: класс %d символа «%s» не имеет элементов aux" -#: xcofflink.c:1493 +#: xcofflink.c:1496 #, c-format msgid "%pB: symbol `%s' has unrecognized csect type %d" msgstr "%pB: символ «%s» имеет нераспознанный тип csect: %d" -#: xcofflink.c:1506 +#: xcofflink.c:1509 #, c-format msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %" msgstr "%pB: неверный символ XTY_ER «%s»: класс %d scnum %d scnlen %" -#: xcofflink.c:1537 +#: xcofflink.c:1540 #, c-format msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %" msgstr "%pB: символ XMC_TC0 «%s» является классом %d scnlen %" -#: xcofflink.c:1684 +#: xcofflink.c:1687 #, c-format msgid "%pB: csect `%s' not in enclosing section" msgstr "%pB: csect «%s» не в обрамляющем разделе" -#: xcofflink.c:1792 +#: xcofflink.c:1795 #, c-format msgid "%pB: misplaced XTY_LD `%s'" msgstr "%pB: неправильно расположенный XTY_LD «%s»" -#: xcofflink.c:2113 +#: xcofflink.c:2122 #, c-format msgid "%pB: reloc %s:% not in csect" msgstr "%pB: перемещение %s:% не в csect" -#: xcofflink.c:3193 +#: xcofflink.c:3223 #, c-format msgid "%s: no such symbol" msgstr "%s: нет такого символа" -#: xcofflink.c:3298 +#: xcofflink.c:3334 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "предупреждение: попытка экспортировать неопределённый символ «%s»" -#: xcofflink.c:3677 +#: xcofflink.c:3713 msgid "error: undefined symbol __rtinit" msgstr "ошибка: неопределённый символ __rtinit" -#: xcofflink.c:4055 +#: xcofflink.c:4095 #, c-format msgid "%pB: loader reloc in unrecognized section `%s'" msgstr "%pB: перемещение загрузчика в нераспознанном разделе «%s»" -#: xcofflink.c:4067 +#: xcofflink.c:4107 #, c-format msgid "%pB: `%s' in loader reloc but not loader sym" msgstr "%pB: «%s» в перемещении загрузчика, но не символе загрузчика" -#: xcofflink.c:4084 +#: xcofflink.c:4124 #, c-format msgid "%pB: loader reloc in read-only section %pA" msgstr "%pB: перемещение загрузчика в разделе %pA, доступном только для чтения" -#: xcofflink.c:5112 +#: xcofflink.c:5152 #, c-format msgid "TOC overflow: %# > 0x10000; try -mminimal-toc when compiling" msgstr "переполнение TOC: % > 0x10000; попробуйте скомпилировать с -mminimal-toc" #. Not fatal, this callback cannot fail. -#: elfnn-aarch64.c:2872 +#: elfnn-aarch64.c:2869 #, c-format msgid "unknown attribute for symbol `%s': 0x%02x" msgstr "неизвестный атрибут символа «%s»: 0x%02x" -#: elfnn-aarch64.c:5246 +#: elfnn-aarch64.c:5245 #, c-format msgid "%pB: error: erratum 835769 stub out of range (input file too large)" msgstr "%pB: ошибка: заглушка для ошибки 835769 находится вне диапазона (слишком большой входной файл)" -#: elfnn-aarch64.c:5338 +#: elfnn-aarch64.c:5337 #, c-format msgid "%pB: error: erratum 843419 stub out of range (input file too large)" msgstr "%pB: ошибка: заглушка для ошибки 843419 находится вне диапазона (слишком большой входной файл)" -#: elfnn-aarch64.c:5351 +#: elfnn-aarch64.c:5350 msgid "%pB: error: erratum 843419 immediate 0x%" msgstr "%pB: ошибка: заглушка для ошибки 843419 в 0x%" -#: elfnn-aarch64.c:5899 +#: elfnn-aarch64.c:5884 #, c-format msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" msgstr "%pB: перемещение %s для «%s», который может быть привязан извне, не может использоваться при создании общего объекта; перекомпилируйте с -fPIC" -#: elfnn-aarch64.c:5990 +#: elfnn-aarch64.c:5904 +#, c-format +msgid "%pB: conditional branch to undefined symbol `%s' not allowed" +msgstr "%pB: запрещено условное ветвление на неопределённый символ «%s»" + +#: elfnn-aarch64.c:5992 #, c-format msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol" msgstr "%pB: таблица описателей локальных символов будет равна NULL, если применить перемещение %s с локальным символом" -#: elfnn-aarch64.c:6103 elfnn-aarch64.c:6140 +#: elfnn-aarch64.c:6105 elfnn-aarch64.c:6142 #, c-format msgid "%pB: TLS relocation %s against undefined symbol `%s'" msgstr "%pB: перемещение TLS %s для неопределённого символа «%s»" -#: elfnn-aarch64.c:7125 +#: elfnn-aarch64.c:7127 msgid "too many GOT entries for -fpic, please recompile with -fPIC" msgstr "слишком много элементов GOT для -fpic: перекомпилируйте с параметром -fPIC" -#: elfnn-aarch64.c:7153 +#: elfnn-aarch64.c:7155 msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined" msgstr "одной из возможных причин этой ошибки является то, что в указанном коде на символ ссылаются с большим выравниванием, чем было объявлено в его месте определения" -#: elfnn-aarch64.c:7720 +#: elfnn-aarch64.c:7722 #, c-format msgid "%pB: relocation %s against `%s' can not be used when making a shared object" msgstr "%pB: перемещение %s для «%s» не может использоваться при создании общего объекта" -#: elfnn-riscv.c:187 elfnn-riscv.c:222 +#: elfnn-riscv.c:223 elfnn-riscv.c:258 #, c-format msgid "%pB: warning: RVE PLT generation not supported" msgstr "%pB: предупреждение: генерация RVE PLT не поддерживается" -#: elfnn-riscv.c:1977 +#: elfnn-riscv.c:1911 +#, c-format +msgid "%pcrel_lo missing matching %pcrel_hi" +msgstr "для %pcrel_lo отсутствует соответствующий %pcrel_hi" + +#: elfnn-riscv.c:1914 +#, c-format +msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20" +msgstr "%pcrel_lo с добавлением запрещён для R_RISCV_GOT_HI20" + +#: elfnn-riscv.c:1920 +#, c-format +msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x% without any addend, but may be 0x% after adding the %%pcrel_lo addend" +msgstr "переполнение %%pcrel_lo с добавлением, значение %%pcrel_hi равноs 0x% без добавлений, но может стать 0x% после подключения добавления %%pcrel_lo" + +#: elfnn-riscv.c:1927 +#, c-format +msgid "%pcrel_lo overflow with an addend" +msgstr "переполнение %pcrel_lo с добавлением" + +#: elfnn-riscv.c:2409 +msgid "The addend isn't allowed for R_RISCV_GOT_HI20" +msgstr "Добавление запрещено для R_RISCV_GOT_HI20" + +#: elfnn-riscv.c:2553 #, c-format msgid "%pcrel_lo section symbol with an addend" msgstr "символ раздела %pcrel_lo с добавлением" -#: elfnn-riscv.c:2198 +#: elfnn-riscv.c:2776 #, c-format msgid "%%X%%P: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC\n" msgstr "%%X%%P: перемещение %s для «%s» нельзя использовать при создании общего объекта; перекомпилируйте с -fPIC\n" -#: elfnn-riscv.c:2208 +#: elfnn-riscv.c:2786 #, c-format msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n" msgstr "%%X%%P: неразрешимое перемещение %s для символа «%s»\n" -#: elfnn-riscv.c:2247 +#: elfnn-riscv.c:2826 msgid "%X%P: internal error: out of range error\n" msgstr "%X%P: внутренняя ошибка: ошибка выхода из диапазона\n" -#: elfnn-riscv.c:2252 +#: elfnn-riscv.c:2831 msgid "%X%P: internal error: unsupported relocation error\n" msgstr "%X%P: внутренняя ошибка: ошибка неподдерживаемого перемещения\n" -#: elfnn-riscv.c:2258 +#: elfnn-riscv.c:2837 msgid "dangerous relocation error" msgstr "ошибка опасного перемещения" -#: elfnn-riscv.c:2264 +#: elfnn-riscv.c:2843 msgid "%X%P: internal error: unknown error\n" msgstr "%X%P: внутренняя ошибка: неизвестная ошибка\n" -#: elfnn-riscv.c:2630 +#: elfnn-riscv.c:3384 #, c-format -msgid "error: %pB: Mis-matched ISA version for '%s' extension. %d.%d vs %d.%d" -msgstr "ошибка: %pB: несовпадение версии ISA расширения «%s». %d.%d и %d.%d" +msgid "warning: %pB: mis-matched ISA version %d.%d for '%s' extension, the output version is %d.%d" +msgstr "предупреждение: %pB: несовпадение версии ISA %d.%d для расширения «%s», выходная версия %d.%d" -#: elfnn-riscv.c:2648 +#: elfnn-riscv.c:3417 #, c-format -msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'." -msgstr "ошибка: %pB: повреждена строка ISA «%s». Первым символом должен быть «i» или «e», но имеем «%s»." +msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'" +msgstr "ошибка: %pB: повреждена строка ISA «%s». Первым символом должен быть «i» или «e», но имеем «%s»" -#: elfnn-riscv.c:2692 +#: elfnn-riscv.c:3460 #, c-format -msgid "error: %pB: Mis-matched ISA string to merge '%s' and '%s'." -msgstr "ошибка: %pB: несовпадение строки ISA для объединения «%s» и «%s»." +msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'" +msgstr "ошибка: %pB: несовпадение строки ISA для объединения «%s» и «%s»" -#: elfnn-riscv.c:2893 +#: elfnn-riscv.c:3617 #, c-format -msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)." -msgstr "ошибка: %pB: входная строка ISA (%s) не совпадает с выходной (%s)." +msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)" +msgstr "ошибка: %pB: строка ISA входных данных (%s) не совпадает с выходной (%s)" -#: elfnn-riscv.c:2913 +#: elfnn-riscv.c:3637 #, c-format -msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)." -msgstr "ошибка: %pB: XLEN входных данных (%u) не совпадает с выходными (%u)." +msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)" +msgstr "ошибка: %pB: XLEN входных данных (%u) не совпадает с выходными (%u)" -#: elfnn-riscv.c:2921 +#: elfnn-riscv.c:3645 #, c-format -msgid "error: %pB: Unsupported XLEN (%u), you might be using wrong emulation." -msgstr "ошибка: %pB: неподдерживаемый XLEN (%u), вероятно, используется неправильная эмуляция." +msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation" +msgstr "ошибка: %pB: неподдерживаемый XLEN (%u), вероятно, используется неправильная эмуляция" -#: elfnn-riscv.c:3035 +#: elfnn-riscv.c:3759 #, c-format -msgid "warning: %pB use privilege spec version %u.%u.%u but the output use version %u.%u.%u." -msgstr "предупреждение: %pB использует привилегированную версию спецификации %u.%u.%u, но для вывода используется версия %u.%u.%u." +msgid "warning: %pB use privileged spec version %u.%u.%u but the output use version %u.%u.%u" +msgstr "предупреждение: %pB использует привилегированную версию спецификации %u.%u.%u, но для вывода используется версия %u.%u.%u" -#: elfnn-riscv.c:3053 -msgid "warning: privilege spec version 1.9.1 can not be linked with other spec versions." -msgstr "предупреждение: привилегированная версия спецификации 1.9.1 не может быть скомпонована с другими версиями спецификаций." +#: elfnn-riscv.c:3776 +msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions" +msgstr "предупреждение: привилегированная версия спецификации 1.9.1 не может быть скомпонована с другими версиями спецификации" -#: elfnn-riscv.c:3081 +#: elfnn-riscv.c:3804 #, c-format -msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned." -msgstr "ошибка: для %pB требуется %u-байтовое выравнивание стека, но для результата используется %u-байтовое выравнивание стека." +msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned" +msgstr "ошибка: для %pB используется %u-байтовое выравнивание стека, но для вывода используется %u-байтовое выравнивание стека" -#: elfnn-riscv.c:3122 +#: elfnn-riscv.c:3845 #, c-format msgid "" "%pB: ABI is incompatible with that of the selected emulation:\n" @@ -8296,111 +8496,121 @@ msgstr "" "%pB: ABI не совместим с выбранным в эмуляции:\n" " цель эмуляции «%s» не совпадает с «%s»" -#: elfnn-riscv.c:3176 +#: elfnn-riscv.c:3901 #, c-format msgid "%pB: can't link %s modules with %s modules" msgstr "%pB: компоновка модуля %s с предыдущими модулями %s невозможна" -#: elfnn-riscv.c:3186 +#: elfnn-riscv.c:3911 #, c-format msgid "%pB: can't link RVE with other target" msgstr "%pB: невозможно скомпоновать RVE с другой целью" -#: elfnn-riscv.c:3724 +#: elfnn-riscv.c:4448 #, c-format msgid "%pB(%pA+%#): % bytes required for alignment to %-byte boundary, but only % present" msgstr "%pB(%pA+%#): требуется % байт для выравнивания по %-байтной границе, но есть только %" -#: peXXigen.c:164 +#: peXXigen.c:154 #, c-format msgid "%pB: unable to find name for empty section" msgstr "%pB: не удалось найти имя пустого раздела" -#: peXXigen.c:191 +#: peXXigen.c:181 #, c-format msgid "%pB: out of memory creating name for empty section" msgstr "%pB: не хватает памяти для создания имени пустого раздела" -#: peXXigen.c:201 +#: peXXigen.c:191 #, c-format msgid "%pB: unable to create fake empty section" msgstr "%pB: невозможно создать фиктивный пустой раздел" -#: peXXigen.c:539 +#: peXXigen.c:523 #, c-format msgid "%pB: aout header specifies an invalid number of data-directory entries: %u" msgstr "%pB: в заголовке aout указан некорректный номер элементов каталога данных: %u" -#: peXXigen.c:1088 +#: peXXigen.c:934 +#, c-format +msgid "%pB:%.8s: section below image base" +msgstr "%pB:%.8s: раздел ниже базового значения образа" + +#: peXXigen.c:937 +#, c-format +msgid "%pB:%.8s: RVA truncated" +msgstr "%pB:%.8s: RVA усечён" + +#: peXXigen.c:1065 #, c-format msgid "%pB: line number overflow: 0x%lx > 0xffff" msgstr "%pB: переполнение нумерации строк: 0x%lx > 0xffff" -#: peXXigen.c:1241 +#: peXXigen.c:1218 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Каталог экспорта [.edata (или где он нашёлся)]" -#: peXXigen.c:1242 +#: peXXigen.c:1219 msgid "Import Directory [parts of .idata]" msgstr "Каталог импорта [часть .idata]" -#: peXXigen.c:1243 +#: peXXigen.c:1220 msgid "Resource Directory [.rsrc]" msgstr "Каталог ресурсов [.rsrc]" -#: peXXigen.c:1244 +#: peXXigen.c:1221 msgid "Exception Directory [.pdata]" msgstr "Каталог исключений [.pdata]" -#: peXXigen.c:1245 +#: peXXigen.c:1222 msgid "Security Directory" msgstr "Каталог безопасности" -#: peXXigen.c:1246 +#: peXXigen.c:1223 msgid "Base Relocation Directory [.reloc]" msgstr "Каталог базового перемещения [.reloc]" -#: peXXigen.c:1247 +#: peXXigen.c:1224 msgid "Debug Directory" msgstr "Каталог отладки" -#: peXXigen.c:1248 +#: peXXigen.c:1225 msgid "Description Directory" msgstr "Каталог описаний" -#: peXXigen.c:1249 +#: peXXigen.c:1226 msgid "Special Directory" msgstr "Специальный каталог" -#: peXXigen.c:1250 +#: peXXigen.c:1227 msgid "Thread Storage Directory [.tls]" msgstr "Каталог хранилища нитей [.tls]" -#: peXXigen.c:1251 +#: peXXigen.c:1228 msgid "Load Configuration Directory" msgstr "Каталог загрузки конфигурации" -#: peXXigen.c:1252 +#: peXXigen.c:1229 msgid "Bound Import Directory" msgstr "Каталог обязательного импорта" -#: peXXigen.c:1253 +#: peXXigen.c:1230 msgid "Import Address Table Directory" msgstr "Каталог таблицы импорта адресов" -#: peXXigen.c:1254 +#: peXXigen.c:1231 msgid "Delay Import Directory" msgstr "Каталог отложенного импорта" -#: peXXigen.c:1255 +#: peXXigen.c:1232 msgid "CLR Runtime Header" msgstr "Заголовок времени выполнения CLR" -#: peXXigen.c:1256 +#: peXXigen.c:1233 msgid "Reserved" msgstr "Зарезервировано" -#: peXXigen.c:1316 +#: peXXigen.c:1280 #, c-format msgid "" "\n" @@ -8409,7 +8619,7 @@ msgstr "" "\n" "Существует таблица импорта, но не найден раздел, в котором она содержится\n" -#: peXXigen.c:1322 +#: peXXigen.c:1286 #, c-format msgid "" "\n" @@ -8418,7 +8628,7 @@ msgstr "" "\n" "Существует таблица импорта в %s, но этот раздел без содержимого\n" -#: peXXigen.c:1329 +#: peXXigen.c:1293 #, c-format msgid "" "\n" @@ -8427,30 +8637,7 @@ msgstr "" "\n" "В %s имеется таблица импорта по адресу 0x%lx\n" -#: peXXigen.c:1369 -#, c-format -msgid "" -"\n" -"Function descriptor located at the start address: %04lx\n" -msgstr "" -"\n" -"Начальный адрес описателя функции: %04lx\n" - -#: peXXigen.c:1373 -#, c-format -msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" -msgstr "\tcode-base %08lx toc (загружаемый/реальный) %08lx/%08lx\n" - -#: peXXigen.c:1380 -#, c-format -msgid "" -"\n" -"No reldata section! Function descriptor not decoded.\n" -msgstr "" -"\n" -"Нет раздела reldata! Описатель функции не расшифрован.\n" - -#: peXXigen.c:1385 +#: peXXigen.c:1299 #, c-format msgid "" "\n" @@ -8459,7 +8646,7 @@ msgstr "" "\n" "Таблицы импорта (обработан раздел %s)\n" -#: peXXigen.c:1388 +#: peXXigen.c:1302 #, c-format msgid "" " vma: Hint Time Forward DLL First\n" @@ -8468,7 +8655,7 @@ msgstr "" " vma: Таблица Отметка Цепочка Имя Первый\n" " Указаний Времени Пересылки DLL Шлюз\n" -#: peXXigen.c:1437 +#: peXXigen.c:1351 #, c-format msgid "" "\n" @@ -8477,12 +8664,12 @@ msgstr "" "\n" "\tИмя DLL: %.*s\n" -#: peXXigen.c:1453 +#: peXXigen.c:1367 #, c-format msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Hint/Ord Имя-элемента Привязан-к\n" -#: peXXigen.c:1478 +#: peXXigen.c:1392 #, c-format msgid "" "\n" @@ -8491,12 +8678,12 @@ msgstr "" "\n" "Существует первый шлюз, но не найден раздел, в котором он содержится\n" -#: peXXigen.c:1522 peXXigen.c:1561 +#: peXXigen.c:1436 peXXigen.c:1475 #, c-format msgid "\t" msgstr "\t<повреждено: 0x%04lx>" -#: peXXigen.c:1654 +#: peXXigen.c:1568 #, c-format msgid "" "\n" @@ -8505,7 +8692,7 @@ msgstr "" "\n" "Существует таблица экспорта, но не найден раздел, в котором она содержится\n" -#: peXXigen.c:1660 +#: peXXigen.c:1574 #, c-format msgid "" "\n" @@ -8514,7 +8701,7 @@ msgstr "" "\n" "Существует таблица экспорта в %s, но этот раздел без содержимого\n" -#: peXXigen.c:1671 +#: peXXigen.c:1585 #, c-format msgid "" "\n" @@ -8523,7 +8710,7 @@ msgstr "" "\n" "Существует таблица экспорта в %s, но она не помещается в этот раздел\n" -#: peXXigen.c:1682 +#: peXXigen.c:1596 #, c-format msgid "" "\n" @@ -8532,7 +8719,7 @@ msgstr "" "\n" "Существует таблица экспорта в %s, но она слишком маленькая (%d)\n" -#: peXXigen.c:1688 +#: peXXigen.c:1602 #, c-format msgid "" "\n" @@ -8541,7 +8728,7 @@ msgstr "" "\n" "Существует таблица экспорта в %s по адресу 0x%lx\n" -#: peXXigen.c:1716 +#: peXXigen.c:1630 #, c-format msgid "" "\n" @@ -8552,67 +8739,67 @@ msgstr "" "Таблицы экспорта (обработан раздел %s)\n" "\n" -#: peXXigen.c:1720 +#: peXXigen.c:1634 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Флаги экспорта \t\t\t%lx\n" -#: peXXigen.c:1723 +#: peXXigen.c:1637 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Метка времени/даты \t\t%lx\n" -#: peXXigen.c:1727 +#: peXXigen.c:1641 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Старший/Младший \t\t\t%d/%d\n" -#: peXXigen.c:1730 +#: peXXigen.c:1644 #, c-format msgid "Name \t\t\t\t" msgstr "Имя \t\t\t\t" -#: peXXigen.c:1741 +#: peXXigen.c:1655 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Начальный порядковый номер \t\t\t%ld\n" -#: peXXigen.c:1744 +#: peXXigen.c:1658 #, c-format msgid "Number in:\n" msgstr "Номер в:\n" -#: peXXigen.c:1747 +#: peXXigen.c:1661 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tТаблица экспортируемых адресов \t\t%08lx\n" -#: peXXigen.c:1751 +#: peXXigen.c:1665 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tТаблица [указателей имён/порядковых номеров]\t%08lx\n" -#: peXXigen.c:1754 +#: peXXigen.c:1668 #, c-format msgid "Table Addresses\n" msgstr "Таблица адресов\n" -#: peXXigen.c:1757 +#: peXXigen.c:1671 #, c-format msgid "\tExport Address Table \t\t" msgstr "\tТаблица экспортируемых адресов \t\t" -#: peXXigen.c:1762 +#: peXXigen.c:1676 #, c-format msgid "\tName Pointer Table \t\t" msgstr "\tТаблица указателей имён \t\t" -#: peXXigen.c:1767 +#: peXXigen.c:1681 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "\tТаблица порядковых номеров \t\t\t" -#: peXXigen.c:1781 +#: peXXigen.c:1695 #, c-format msgid "" "\n" @@ -8621,20 +8808,20 @@ msgstr "" "\n" "Таблица экспортируемых адресов -- Начальный порядковый номер %ld\n" -#: peXXigen.c:1790 +#: peXXigen.c:1704 #, c-format msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tНекорректная таблица экспортируемых адресов rva (0x%lx) или счётчик элементов (0x%lx)\n" -#: peXXigen.c:1809 +#: peXXigen.c:1723 msgid "Forwarder RVA" msgstr "Переадресуемый RVA" -#: peXXigen.c:1821 +#: peXXigen.c:1735 msgid "Export RVA" msgstr "Экспортируемый RVA" -#: peXXigen.c:1828 +#: peXXigen.c:1742 #, c-format msgid "" "\n" @@ -8643,27 +8830,27 @@ msgstr "" "\n" "Таблица [порядковых номеров/указателей имён]\n" -#: peXXigen.c:1836 +#: peXXigen.c:1750 #, c-format msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tНекорректная таблица указателей имён (0x%lx) или счётчик элементов (0x%lx)\n" -#: peXXigen.c:1843 +#: peXXigen.c:1757 #, c-format msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tНекорректная обычная таблица rva (0x%lx) или счётчик элементов (0x%lx)\n" -#: peXXigen.c:1857 +#: peXXigen.c:1771 #, c-format msgid "\t[%4ld] \n" msgstr "\t[%4ld] <повреждёно смещение: %lx>\n" -#: peXXigen.c:1911 peXXigen.c:2107 +#: peXXigen.c:1825 peXXigen.c:1994 #, c-format msgid "warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "предупреждение, размер раздела .pdata (%ld) не кратен %d\n" -#: peXXigen.c:1915 peXXigen.c:2111 +#: peXXigen.c:1829 peXXigen.c:1998 #, c-format msgid "" "\n" @@ -8672,12 +8859,12 @@ msgstr "" "\n" "Таблица функций (обработан раздел .pdata)\n" -#: peXXigen.c:1918 +#: peXXigen.c:1832 #, c-format msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tНачальный адрес Конечный адрес Раскрывающая Информация\n" -#: peXXigen.c:1920 +#: peXXigen.c:1834 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" @@ -8686,27 +8873,12 @@ msgstr "" " vma:\t\tНачальный Конечный EH EH Адрес Маска\n" " \t\tАдрес Адрес Обработчик Данные КонцаПролога Исключения\n" -#: peXXigen.c:1933 +#: peXXigen.c:1847 #, c-format msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" msgstr "Виртуальный размер раздела .pdata (%ld) больше чем реальный размер (%ld)\n" -#: peXXigen.c:2002 -#, c-format -msgid " Register save millicode" -msgstr " Милликод сохранения регистра" - -#: peXXigen.c:2005 -#, c-format -msgid " Register restore millicode" -msgstr " Милликод восстановления регистра" - -#: peXXigen.c:2008 -#, c-format -msgid " Glue code sequence" -msgstr " Последовательность связующего кода" - -#: peXXigen.c:2113 +#: peXXigen.c:2000 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" @@ -8715,7 +8887,7 @@ msgstr "" " vma:\t\tНачальный Длина Длина Флаги Обработчик EH\n" " \t\tАдрес Пролога Функции 32b exc Исключений Данные\n" -#: peXXigen.c:2234 +#: peXXigen.c:2121 #, c-format msgid "" "\n" @@ -8726,7 +8898,7 @@ msgstr "" "\n" "Начало перемещений в PE-файле (обработан раздел .reloc)\n" -#: peXXigen.c:2263 +#: peXXigen.c:2150 #, c-format msgid "" "\n" @@ -8735,62 +8907,62 @@ msgstr "" "\n" "Виртуальный адрес: %08lx Размер блока %ld (0x%lx) Число местоположений %ld\n" -#: peXXigen.c:2281 +#: peXXigen.c:2168 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tперемещение %4d смещение %4x [%4lx] %s" -#: peXXigen.c:2342 +#: peXXigen.c:2229 #, c-format msgid "%03x %*.s Entry: " msgstr "%03x %*.s Элемент: " -#: peXXigen.c:2366 +#: peXXigen.c:2253 #, c-format msgid "name: [val: %08lx len %d]: " msgstr "имя: [значение: %08lx длина %d]: " -#: peXXigen.c:2386 +#: peXXigen.c:2273 #, c-format msgid "\n" msgstr "<повреждена длина строки: %#x>\n" -#: peXXigen.c:2396 +#: peXXigen.c:2283 #, c-format msgid "\n" msgstr "<повреждено смещение строки: %#lx>\n" -#: peXXigen.c:2401 +#: peXXigen.c:2288 #, c-format msgid "ID: %#08lx" msgstr "ID: %#08lx" -#: peXXigen.c:2404 +#: peXXigen.c:2291 #, c-format msgid ", Value: %#08lx\n" msgstr ", значение: %#08lx\n" -#: peXXigen.c:2426 +#: peXXigen.c:2313 #, c-format msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" msgstr "%03x %*.s лист: адрес: %#08lx, размер: %#08lx, кодовая страница: %d\n" -#: peXXigen.c:2468 +#: peXXigen.c:2355 #, c-format msgid "\n" msgstr "<неизвестный тип каталога: %d>\n" -#: peXXigen.c:2476 +#: peXXigen.c:2363 #, c-format msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" msgstr " Таблица: Символ: %d, Время: %08lx, Версия: %d/%d, Кол-во имён: %d, ID: %d\n" -#: peXXigen.c:2564 +#: peXXigen.c:2451 #, c-format msgid "Corrupt .rsrc section detected!\n" msgstr "Обнаружен повреждённый раздел .rsrc!\n" -#: peXXigen.c:2588 +#: peXXigen.c:2475 #, c-format msgid "" "\n" @@ -8799,17 +8971,17 @@ msgstr "" "\n" "ПРЕДУПРЕЖДЕНИЕ: дополнительные данные в разделе .rsrc — будут проигнорированы Windows:\n" -#: peXXigen.c:2594 +#: peXXigen.c:2481 #, c-format msgid " String table starts at offset: %#03x\n" msgstr " Таблица строк начинается со смещения: %#03x\n" -#: peXXigen.c:2597 +#: peXXigen.c:2484 #, c-format msgid " Resources start at offset: %#03x\n" msgstr " Ресурсы начинаются со смещения: %#03x\n" -#: peXXigen.c:2654 +#: peXXigen.c:2541 #, c-format msgid "" "\n" @@ -8818,7 +8990,7 @@ msgstr "" "\n" "Существует отладочный каталог, но не найден раздел, в котором он содержится\n" -#: peXXigen.c:2660 +#: peXXigen.c:2547 #, c-format msgid "" "\n" @@ -8827,7 +8999,7 @@ msgstr "" "\n" "Существует отладочный каталог в %s, но этот раздел без содержимого\n" -#: peXXigen.c:2667 +#: peXXigen.c:2554 #, c-format msgid "" "\n" @@ -8836,7 +9008,7 @@ msgstr "" "\n" "Ошибка: раздел %s содержит отладочные данные, начиная с адреса, который слишком мал\n" -#: peXXigen.c:2672 +#: peXXigen.c:2559 #, c-format msgid "" "\n" @@ -8847,22 +9019,22 @@ msgstr "" "В %s имеется отладочный каталог по адресу 0x%lx\n" "\n" -#: peXXigen.c:2679 +#: peXXigen.c:2566 #, c-format msgid "The debug data size field in the data directory is too big for the section" msgstr "Поле размера отладочных данных в каталоге данных слишком большое для раздела" -#: peXXigen.c:2684 +#: peXXigen.c:2571 #, c-format msgid "Type Size Rva Offset\n" msgstr "Тип Размер Rva Смещение\n" -#: peXXigen.c:2731 +#: peXXigen.c:2618 #, c-format msgid "(format %c%c%c%c signature %s age %ld)\n" msgstr "(формат %c%c%c%c подпись %s возраст %ld)\n" -#: peXXigen.c:2741 +#: peXXigen.c:2628 #, c-format msgid "The debug directory size is not a multiple of the debug directory entry size\n" msgstr "Размер отладочного каталога не кратен размеру элемента отладочного каталога\n" @@ -8870,7 +9042,7 @@ msgstr "Размер отладочного каталога не кратен #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peXXigen.c:2825 +#: peXXigen.c:2712 #, c-format msgid "" "\n" @@ -8879,91 +9051,138 @@ msgstr "" "\n" "Характеристики 0x%x\n" -#: peXXigen.c:3072 +#: peXXigen.c:2989 #, c-format -msgid "%pB: Data Directory size (%lx) exceeds space left in section (%)" -msgstr "%pB: размер каталога данных (%lx) превышает оставшееся место в разделе (%)" +msgid "%pB: Data Directory (%lx bytes at %) extends across section boundary at %" +msgstr "%pB: каталог данных (%lx байт по адресу %) расширяется за границу раздела по адресу %" -#: peXXigen.c:3104 +#: peXXigen.c:3026 msgid "failed to update file offsets in debug directory" msgstr "не удалось обновить файловые смещения в отладочном каталоге" -#: peXXigen.c:3112 +#: peXXigen.c:3034 #, c-format msgid "%pB: failed to read debug data section" msgstr "%pB: не удалось прочитать раздел отладочных данных" -#: peXXigen.c:3928 +#: peXXigen.c:3833 #, c-format msgid ".rsrc merge failure: duplicate string resource: %d" msgstr "ошибка при слиянии .rsrc: повторная строка ресурса: %d" -#: peXXigen.c:4063 +#: peXXigen.c:3968 msgid ".rsrc merge failure: multiple non-default manifests" msgstr "ошибка при слиянии .rsrc: несколько манифестов не по умолчанию" -#: peXXigen.c:4081 +#: peXXigen.c:3986 msgid ".rsrc merge failure: a directory matches a leaf" msgstr "ошибка при слиянии .rsrc: каталог совпадает с листом" -#: peXXigen.c:4123 +#: peXXigen.c:4028 msgid ".rsrc merge failure: duplicate leaf" msgstr "ошибка при слиянии .rsrc: повторяющийся лист" -#: peXXigen.c:4125 +#: peXXigen.c:4033 #, c-format msgid ".rsrc merge failure: duplicate leaf: %s" msgstr "ошибка при слиянии .rsrc: повторяющийся лист: %s" -#: peXXigen.c:4191 +#: peXXigen.c:4100 msgid ".rsrc merge failure: dirs with differing characteristics" msgstr "ошибка при слиянии .rsrc: каталоги с разным характеристиками" -#: peXXigen.c:4198 +#: peXXigen.c:4107 msgid ".rsrc merge failure: differing directory versions" msgstr "ошибка при слиянии .rsrc: версии каталогов отличаются" #. Corrupted .rsrc section - cannot merge. -#: peXXigen.c:4315 +#: peXXigen.c:4224 #, c-format msgid "%pB: .rsrc merge failure: corrupt .rsrc section" msgstr "%pB: ошибка при слиянии .rsrc: раздел .rsrc повреждён" -#: peXXigen.c:4323 +#: peXXigen.c:4232 #, c-format msgid "%pB: .rsrc merge failure: unexpected .rsrc size" msgstr "%pB: ошибка при слиянии rsrc: неожиданный размер раздела .rsrc" -#: peXXigen.c:4462 +#: peXXigen.c:4371 #, c-format msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "%pB: невозможно заполнить DataDictionary[1], так как отсутствует .idata$2" -#: peXXigen.c:4482 +#: peXXigen.c:4391 #, c-format msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "%pB: невозможно заполнить DataDictionary[1], так как отсутствует .idata$4" -#: peXXigen.c:4503 +#: peXXigen.c:4412 #, c-format msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "%pB: невозможно заполнить DataDictionary[12], так как отсутствует .idata$5" -#: peXXigen.c:4523 +#: peXXigen.c:4432 #, c-format msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" msgstr "%pB: невозможно заполнить DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], так как отсутствует .idata$6" -#: peXXigen.c:4565 +#: peXXigen.c:4474 #, c-format msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" msgstr "%pB: невозможно заполнить DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], так как отсутствует .idata$6" -#: peXXigen.c:4590 +#: peXXigen.c:4499 #, c-format msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "%pB: невозможно заполнить DataDictionary[9], так как отсутствует __tls_used" +#~ msgid "%pB: warning: sh_link not set for section `%pA'" +#~ msgstr "%pB: предупреждение: не задан sh_link для раздела «%pA»" + +#~ msgid "%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections" +#~ msgstr "%pA содержит упорядоченные [«%pA» в %pB] и неупорядоченные [«%pA» в %pB] разделы" + +#~ msgid "%pA has both ordered and unordered sections" +#~ msgstr "%pA содержит упорядоченные и неупорядоченные разделы" + +#~ msgid "-march=%s: unsupported ISA subset `%c'" +#~ msgstr "-march=%s: неподдерживаемый поднабор ISA «%c»" + +#~ msgid "-march=%s: unexpected ISA string at end: %s" +#~ msgstr "-march=%s: неожиданная строка ISA в конце: %s" + +#~ msgid "-march=%s: `d' extension requires `f' extension" +#~ msgstr "-march=%s: расширению «d» необходимо расширение «f»" + +#~ msgid "-march=%s: `q' extension requires `d' extension" +#~ msgstr "-march=%s: расширению «q» необходимо расширение «d»" + +#~ msgid "" +#~ "\n" +#~ "Function descriptor located at the start address: %04lx\n" +#~ msgstr "" +#~ "\n" +#~ "Начальный адрес описателя функции: %04lx\n" + +#~ msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" +#~ msgstr "\tcode-base %08lx toc (загружаемый/реальный) %08lx/%08lx\n" + +#~ msgid "" +#~ "\n" +#~ "No reldata section! Function descriptor not decoded.\n" +#~ msgstr "" +#~ "\n" +#~ "Нет раздела reldata! Описатель функции не расшифрован.\n" + +#~ msgid " Register save millicode" +#~ msgstr " Милликод сохранения регистра" + +#~ msgid " Register restore millicode" +#~ msgstr " Милликод восстановления регистра" + +#~ msgid " Glue code sequence" +#~ msgstr " Последовательность связующего кода" + #~ msgid "%pB: corrupt symbol count: %#" #~ msgstr "%pB: повреждён счётчик символов: %#" @@ -9188,9 +9407,6 @@ msgstr "%pB: невозможно заполнить DataDictionary[9], так #~ msgid "%B: Relocation %s is not yet supported for symbol %s." #~ msgstr "%B: перемещение %s пока не поддерживается для символа %s." -#~ msgid "%B: invalid relocation type %d" -#~ msgstr "%B: неверный тип перемещения %d" - #~ msgid "%B: invalid i960 reloc number: %d" #~ msgstr "%B: некорректный номер перемещения i960: %d" diff --git a/bfd/version.h b/bfd/version.h index d374ca551..ea74b02f1 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -16,7 +16,7 @@ In releases, the date is not included in either version strings or sonames. */ -#define BFD_VERSION_DATE 20210718 +#define BFD_VERSION_DATE 20211115 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/bfd/version.m4 b/bfd/version.m4 index a1a9968a2..c5bb62347 100644 --- a/bfd/version.m4 +++ b/bfd/version.m4 @@ -1 +1 @@ -m4_define([BFD_VERSION], [2.37]) +m4_define([BFD_VERSION], [2.37.0]) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 7869e1b9d..eaa17e80f 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +2021-09-07 Luis Machado + + Revert: [AArch64] MTE corefile support + + 2021-05-21 Luis Machado + + * readelf.c (get_note_type): Handle NT_MEMTAG note types. + 2021-07-16 Nick Clifton * po/sv.po: Updated Swedish translation. diff --git a/binutils/ar.c b/binutils/ar.c index 5d6976c70..8885585ef 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -1180,6 +1180,9 @@ extract_file (bfd *abfd) bfd_size_type size; struct stat buf; + if (preserve_dates) + memset (&buf, 0, sizeof (buf)); + if (bfd_stat_arch_elt (abfd, &buf) != 0) /* xgettext:c-format */ fatal (_("internal stat error on %s"), bfd_get_filename (abfd)); diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 1e7f4db7b..e73078f49 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -7727,7 +7727,6 @@ display_debug_ranges (struct dwarf_section *section, return 0; } } - finish = start + initial_length; /* Get and check the version number. */ SAFE_BYTE_GET_AND_INC (version, start, 2, finish); diff --git a/binutils/objcopy.c b/binutils/objcopy.c index a6c2e0dcc..fd7557fe4 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3600,6 +3600,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target, if (preserve_dates) { + memset (&buf, 0, sizeof (buf)); stat_status = bfd_stat_arch_elt (this_element, &buf); if (stat_status != 0) diff --git a/binutils/objdump.c b/binutils/objdump.c index a7b8303b9..50317b3d4 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -4869,7 +4869,7 @@ dump_bfd (bfd *abfd, bool is_mainfile) The test on is_mainfile is there because the chain of separate debug info files is a global variable shared by all invocations of dump_bfd. */ - if (is_mainfile) + if (byte_get != NULL && is_mainfile) { load_separate_debug_files (abfd, bfd_get_filename (abfd)); diff --git a/binutils/readelf.c b/binutils/readelf.c index a6073f7ec..af10bcd0e 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -18843,8 +18843,6 @@ get_note_type (Filedata * filedata, unsigned e_type) return _("NT_SIGINFO (siginfo_t data)"); case NT_FILE: return _("NT_FILE (mapped files)"); - case NT_MEMTAG: - return _("NT_MEMTAG (memory tags)"); default: break; } diff --git a/binutils/rename.c b/binutils/rename.c index 8826917c1..48ae30148 100644 --- a/binutils/rename.c +++ b/binutils/rename.c @@ -131,6 +131,7 @@ get_stat_mtime_ns (struct stat const *st ATTRIBUTE_UNUSED) # endif } +#if defined HAVE_UTIMENSAT /* Return *ST's access time. */ static inline struct timespec get_stat_atime (struct stat const *st) @@ -158,6 +159,7 @@ get_stat_mtime (struct stat const *st) return t; #endif } +#endif /* End FIXME. */ /* Set the times of the file DESTINATION to be the same as those in diff --git a/cpu/mep.opc b/cpu/mep.opc index 5a4c93dc3..6ad0c5879 100644 --- a/cpu/mep.opc +++ b/cpu/mep.opc @@ -626,7 +626,7 @@ typedef struct int len; } arg; -macro macros[] = +static macro const macros[] = { { "sizeof", "(`1.end + (- `1))"}, { "startof", "(`1 | 0)" }, @@ -659,10 +659,10 @@ str_append (char *dest, const char *input, int len) return strncat (new_dest, input, len); } -static macro * +static const macro * lookup_macro (const char *name) { - macro *m; + const macro *m; for (m = macros; m->name; ++m) if (strncmp (m->name, name, strlen(m->name)) == 0) @@ -672,7 +672,7 @@ lookup_macro (const char *name) } static char * -expand_macro (arg *args, int narg, macro *mac) +expand_macro (arg *args, int narg, const macro *mac) { char *result = 0, *rescanned_result = 0; char *e = mac->expansion; @@ -722,7 +722,7 @@ expand_string (const char *in, int first_only) arg args[MAXARGS]; int state = IN_TEXT; const char *mark = in; - macro *pmacro = NULL; + const macro *pmacro = NULL; char *expansion = 0; char *result = 0; diff --git a/etc/texi2pod.pl b/etc/texi2pod.pl index 11f70d156..dcf2b4376 100644 --- a/etc/texi2pod.pl +++ b/etc/texi2pod.pl @@ -59,6 +59,8 @@ while ($_ = shift) { $flag = shift; } push (@ipath, $flag); + } elsif (/^--no-split$/) { + # ignore option for makeinfo compatibility } elsif (/^-/) { usage(); } else { diff --git a/gas/testsuite/gas/ppc/power4.d b/gas/testsuite/gas/ppc/power4.d index fd277a2a2..e4d9ea979 100644 --- a/gas/testsuite/gas/ppc/power4.d +++ b/gas/testsuite/gas/ppc/power4.d @@ -21,6 +21,7 @@ Idx Name +Size +VMA +LMA +File off +Algn SYMBOL TABLE: 0+ l +d +\.text 0+ (|\.text) 0+ l +d +\.data 0+ (|\.data) +0+ l +d +\.bss 0+ (|\.bss) 0+ l +\.data 0+ dsym0 0+10 l +\.data 0+ dsym1 0+ l +d +\.toc 0+ (|\.toc) diff --git a/gas/testsuite/gas/ppc/test1elf32.d b/gas/testsuite/gas/ppc/test1elf32.d index fee834e0f..d8d6835c2 100644 --- a/gas/testsuite/gas/ppc/test1elf32.d +++ b/gas/testsuite/gas/ppc/test1elf32.d @@ -18,6 +18,7 @@ Idx Name +Size +VMA +LMA +File off +Algn SYMBOL TABLE: 0+0000 l d \.text 0+0000 (|\.text) 0+0000 l d \.data 0+0000 (|\.data) +0+0000 l d \.bss 0+0000 (|\.bss) 0+0000 l \.data 0+0000 dsym0 0+0004 l \.data 0+0000 dsym1 0+0004 l \.data 0+0000 usym0 diff --git a/gas/testsuite/gas/ppc/test1elf64.d b/gas/testsuite/gas/ppc/test1elf64.d index 24b75bc3f..4df9e00a1 100644 --- a/gas/testsuite/gas/ppc/test1elf64.d +++ b/gas/testsuite/gas/ppc/test1elf64.d @@ -21,6 +21,7 @@ Idx Name Size VMA LMA File off Algn SYMBOL TABLE: 0000000000000000 l d \.text 0000000000000000 (|\.text) 0000000000000000 l d \.data 0000000000000000 (|\.data) +0000000000000000 l d \.bss 0000000000000000 (|\.bss) 0000000000000000 l \.data 0000000000000000 dsym0 0000000000000008 l \.data 0000000000000000 dsym1 0000000000000000 l d \.toc 0000000000000000 (|\.toc) diff --git a/gas/testsuite/gas/s390/zarch-arch14.d b/gas/testsuite/gas/s390/zarch-arch14.d index 97c4fd547..62db69ccb 100644 --- a/gas/testsuite/gas/s390/zarch-arch14.d +++ b/gas/testsuite/gas/s390/zarch-arch14.d @@ -25,7 +25,8 @@ Disassembly of section .text: .*: e6 f1 00 0c d4 55 [ ]*vcnf %v15,%v17,13,12 .*: b9 8b 90 6b [ ]*rdp %r6,%r9,%r11 .*: b9 8b 9d 6b [ ]*rdp %r6,%r9,%r11,13 -.*: eb fd 68 f0 fd 71 [ ]*lpswey -10000\(%r6\),253 +.*: eb 00 68 f0 fd 71 [ ]*lpswey -10000\(%r6\) .*: b2 00 6f a0 [ ]*lbear 4000\(%r6\) .*: b2 01 6f a0 [ ]*stbear 4000\(%r6\) +.*: b2 8f 5f ff [ ]*qpaci 4095\(%r5\) .*: 07 07 [ ]*nopr %r7 diff --git a/gas/testsuite/gas/s390/zarch-arch14.s b/gas/testsuite/gas/s390/zarch-arch14.s index 830382f0a..c887a8895 100644 --- a/gas/testsuite/gas/s390/zarch-arch14.s +++ b/gas/testsuite/gas/s390/zarch-arch14.s @@ -19,6 +19,7 @@ foo: vcnf %v15,%v17,13,12 rdp %r6,%r9,%r11 rdp %r6,%r9,%r11,13 - lpswey -10000(%r6),253 + lpswey -10000(%r6) lbear 4000(%r6) stbear 4000(%r6) + qpaci 4095(%r5) diff --git a/gold/ChangeLog b/gold/ChangeLog index 79207900d..deb0aa504 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2021-07-20 Alan Modra + + PR gold/28106 + PR gold/27815 + * gc.h (gc_process_relocs): Use static_cast in Section_id constructor. + 2021-07-18 Nick Clifton * 2.37 release. diff --git a/gold/gc.h b/gold/gc.h index 6ebd81f3f..4a1368f5a 100644 --- a/gold/gc.h +++ b/gold/gc.h @@ -247,7 +247,7 @@ gc_process_relocs( if (is_ordinary) (*secvec).push_back(Section_id(src_obj, dst_indx)); else - (*secvec).push_back(Section_id(reinterpret_cast(NULL), 0)); + (*secvec).push_back(Section_id(static_cast(NULL), 0)); // If the target of the relocation is an STT_SECTION symbol, // make a note of that by storing -1 in the symbol vector. if (lsym.get_st_type() == elfcpp::STT_SECTION) @@ -329,7 +329,7 @@ gc_process_relocs( if (is_ordinary && dst_obj != NULL) (*secvec).push_back(Section_id(dst_obj, dst_indx)); else - (*secvec).push_back(Section_id(reinterpret_cast(NULL), 0)); + (*secvec).push_back(Section_id(static_cast(NULL), 0)); (*symvec).push_back(gsym); (*addendvec).push_back(std::make_pair( static_cast(symvalue), diff --git a/gold/incremental.cc b/gold/incremental.cc index ab258dd18..327a1527a 100644 --- a/gold/incremental.cc +++ b/gold/incremental.cc @@ -1848,7 +1848,7 @@ class Local_got_offset_visitor : public Got_offset_list::Visitor { } void - visit(unsigned int got_type, unsigned int got_offset) + visit(unsigned int got_type, unsigned int got_offset, uint64_t) { unsigned int got_index = got_offset / this->info_.got_entry_size; gold_assert(got_index < this->info_.got_count); @@ -1860,6 +1860,12 @@ class Local_got_offset_visitor : public Got_offset_list::Visitor unsigned char* pov = this->info_.got_desc_p + got_index * 8; elfcpp::Swap<32, big_endian>::writeval(pov, this->info_.sym_index); elfcpp::Swap<32, big_endian>::writeval(pov + 4, this->info_.input_index); + // FIXME: the uint64_t addend should be written here if powerpc64 + // sym+addend got entries are to be supported, with similar changes + // to Global_got_offset_visitor and support to read them back in + // do_process_got_plt. + // FIXME: don't we need this for section symbol plus addend anyway? + // (See 2015-12-03 commit 7ef8ae7c5f35) } private: @@ -1879,7 +1885,7 @@ class Global_got_offset_visitor : public Got_offset_list::Visitor { } void - visit(unsigned int got_type, unsigned int got_offset) + visit(unsigned int got_type, unsigned int got_offset, uint64_t) { unsigned int got_index = got_offset / this->info_.got_entry_size; gold_assert(got_index < this->info_.got_count); @@ -2280,7 +2286,7 @@ Sized_relobj_incr::do_section_name(unsigned int shndx) const const Output_sections& out_sections(this->output_sections()); const Output_section* os = out_sections[shndx]; if (os == NULL) - return NULL; + return std::string(); return os->name(); } diff --git a/gold/layout.cc b/gold/layout.cc index a27cb071c..38e9bceec 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -3245,7 +3245,8 @@ Layout::create_note(const char* name, int note_type, if (allocate) { flags = elfcpp::SHF_ALLOC; - order = ORDER_RO_NOTE; + order = (note_type == elfcpp::NT_GNU_PROPERTY_TYPE_0 + ? ORDER_PROPERTY_NOTE : ORDER_RO_NOTE); } Output_section* os = this->choose_output_section(NULL, section_name, elfcpp::SHT_NOTE, diff --git a/gold/layout.h b/gold/layout.h index 0b3780036..05c31714e 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -399,8 +399,13 @@ enum Output_section_order // linker can pick it up quickly. ORDER_INTERP, - // Loadable read-only note sections come next so that the PT_NOTE - // segment is on the first page of the executable. + // The .note.gnu.property section comes next so that the PT_NOTE + // segment is on the first page of the executable and it won't be + // placed between other note sections with different alignments. + ORDER_PROPERTY_NOTE, + + // Loadable read-only note sections come after the .note.gnu.property + // section. ORDER_RO_NOTE, // Put read-only sections used by the dynamic linker early in the diff --git a/gold/object.cc b/gold/object.cc index 45cf30d4a..b7a2a6cfd 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -427,7 +427,7 @@ Sized_relobj::do_for_all_local_got_entries( unsigned int nsyms = this->local_symbol_count(); for (unsigned int i = 0; i < nsyms; i++) { - Local_got_entry_key key(i, 0); + Local_got_entry_key key(i); Local_got_offsets::const_iterator p = this->local_got_offsets_.find(key); if (p != this->local_got_offsets_.end()) { diff --git a/gold/object.h b/gold/object.h index 38f4a2fd3..dc089f5a4 100644 --- a/gold/object.h +++ b/gold/object.h @@ -214,11 +214,13 @@ class Got_offset_list { public: Got_offset_list() - : got_type_(-1U), got_offset_(0), got_next_(NULL) + : got_type_(-1U), got_offset_(0), addend_(0), got_next_(NULL) { } - Got_offset_list(unsigned int got_type, unsigned int got_offset) - : got_type_(got_type), got_offset_(got_offset), got_next_(NULL) + Got_offset_list(unsigned int got_type, unsigned int got_offset, + uint64_t addend) + : got_type_(got_type), got_offset_(got_offset), addend_(addend), + got_next_(NULL) { } ~Got_offset_list() @@ -236,29 +238,31 @@ class Got_offset_list { this->got_type_ = -1U; this->got_offset_ = 0; + this->addend_ = 0; this->got_next_ = NULL; } // Set the offset for the GOT entry of type GOT_TYPE. void - set_offset(unsigned int got_type, unsigned int got_offset) + set_offset(unsigned int got_type, unsigned int got_offset, uint64_t addend) { if (this->got_type_ == -1U) { this->got_type_ = got_type; this->got_offset_ = got_offset; + this->addend_ = addend; } else { for (Got_offset_list* g = this; g != NULL; g = g->got_next_) { - if (g->got_type_ == got_type) + if (g->got_type_ == got_type && g->addend_ == addend) { g->got_offset_ = got_offset; return; } } - Got_offset_list* g = new Got_offset_list(got_type, got_offset); + Got_offset_list* g = new Got_offset_list(got_type, got_offset, addend); g->got_next_ = this->got_next_; this->got_next_ = g; } @@ -266,11 +270,11 @@ class Got_offset_list // Return the offset for a GOT entry of type GOT_TYPE. unsigned int - get_offset(unsigned int got_type) const + get_offset(unsigned int got_type, uint64_t addend) const { for (const Got_offset_list* g = this; g != NULL; g = g->got_next_) { - if (g->got_type_ == got_type) + if (g->got_type_ == got_type && g->addend_ == addend) return g->got_offset_; } return -1U; @@ -297,7 +301,7 @@ class Got_offset_list { } virtual void - visit(unsigned int, unsigned int) = 0; + visit(unsigned int, unsigned int, uint64_t) = 0; }; // Loop over all GOT offset entries, calling a visitor class V for each. @@ -307,12 +311,13 @@ class Got_offset_list if (this->got_type_ == -1U) return; for (const Got_offset_list* g = this; g != NULL; g = g->got_next_) - v->visit(g->got_type_, g->got_offset_); + v->visit(g->got_type_, g->got_offset_, g->addend_); } private: unsigned int got_type_; unsigned int got_offset_; + uint64_t addend_; Got_offset_list* got_next_; }; @@ -322,15 +327,15 @@ class Got_offset_list class Local_got_entry_key { public: - Local_got_entry_key(unsigned int symndx, uint64_t addend) - : symndx_(symndx), addend_(addend) + Local_got_entry_key(unsigned int symndx) + : symndx_(symndx) {} // Whether this equals to another Local_got_entry_key. bool eq(const Local_got_entry_key& key) const { - return (this->symndx_ == key.symndx_ && this->addend_ == key.addend_); + return this->symndx_ == key.symndx_; } // Compute a hash value for this using 64-bit FNV-1a hash. @@ -340,7 +345,6 @@ class Local_got_entry_key uint64_t h = 14695981039346656037ULL; // FNV offset basis. uint64_t prime = 1099511628211ULL; h = (h ^ static_cast(this->symndx_)) * prime; - h = (h ^ static_cast(this->addend_)) * prime; return h; } @@ -363,8 +367,6 @@ class Local_got_entry_key private: // The local symbol index. unsigned int symndx_; - // The addend. - uint64_t addend_; }; // Type for mapping section index to uncompressed size and contents. @@ -1214,46 +1216,27 @@ class Relobj : public Object local_plt_offset(unsigned int symndx) const { return this->do_local_plt_offset(symndx); } - // Return whether the local symbol SYMNDX has a GOT offset of type - // GOT_TYPE. - bool - local_has_got_offset(unsigned int symndx, unsigned int got_type) const - { return this->do_local_has_got_offset(symndx, got_type, 0); } - - // Return whether the local symbol SYMNDX plus ADDEND has a GOT offset - // of type GOT_TYPE. + // Return whether there is a GOT entry of type GOT_TYPE for the + // local symbol SYMNDX with given ADDEND. bool local_has_got_offset(unsigned int symndx, unsigned int got_type, - uint64_t addend) const + uint64_t addend = 0) const { return this->do_local_has_got_offset(symndx, got_type, addend); } - // Return the GOT offset of type GOT_TYPE of the local symbol - // SYMNDX. It is an error to call this if the symbol does not have - // a GOT offset of the specified type. - unsigned int - local_got_offset(unsigned int symndx, unsigned int got_type) const - { return this->do_local_got_offset(symndx, got_type, 0); } - - // Return the GOT offset of type GOT_TYPE of the local symbol - // SYMNDX plus ADDEND. It is an error to call this if the symbol - // does not have a GOT offset of the specified type. + // Return the GOT offset of the GOT entry with type GOT_TYPE for the + // local symbol SYMNDX with given ADDEND. It is an error to call + // this function if the symbol does not have such a GOT entry. unsigned int local_got_offset(unsigned int symndx, unsigned int got_type, - uint64_t addend) const + uint64_t addend = 0) const { return this->do_local_got_offset(symndx, got_type, addend); } - // Set the GOT offset with type GOT_TYPE of the local symbol SYMNDX - // to GOT_OFFSET. - void - set_local_got_offset(unsigned int symndx, unsigned int got_type, - unsigned int got_offset) - { this->do_set_local_got_offset(symndx, got_type, got_offset, 0); } - - // Set the GOT offset with type GOT_TYPE of the local symbol SYMNDX - // plus ADDEND to GOT_OFFSET. + // Set the GOT offset for a GOT entry with type GOT_TYPE for the + // local symbol SYMNDX with ADDEND to GOT_OFFSET. Create such an + // entry if none exists. void set_local_got_offset(unsigned int symndx, unsigned int got_type, - unsigned int got_offset, uint64_t addend) + unsigned int got_offset, uint64_t addend = 0) { this->do_set_local_got_offset(symndx, got_type, got_offset, addend); } // Return whether the local symbol SYMNDX is a TLS symbol. @@ -2130,11 +2113,11 @@ class Sized_relobj : public Relobj do_local_has_got_offset(unsigned int symndx, unsigned int got_type, uint64_t addend) const { - Local_got_entry_key key(symndx, addend); + Local_got_entry_key key(symndx); Local_got_offsets::const_iterator p = this->local_got_offsets_.find(key); return (p != this->local_got_offsets_.end() - && p->second->get_offset(got_type) != -1U); + && p->second->get_offset(got_type, addend) != -1U); } // Return the GOT offset of type GOT_TYPE of the local symbol @@ -2143,11 +2126,11 @@ class Sized_relobj : public Relobj do_local_got_offset(unsigned int symndx, unsigned int got_type, uint64_t addend) const { - Local_got_entry_key key(symndx, addend); + Local_got_entry_key key(symndx); Local_got_offsets::const_iterator p = this->local_got_offsets_.find(key); gold_assert(p != this->local_got_offsets_.end()); - unsigned int off = p->second->get_offset(got_type); + unsigned int off = p->second->get_offset(got_type, addend); gold_assert(off != -1U); return off; } @@ -2158,14 +2141,14 @@ class Sized_relobj : public Relobj do_set_local_got_offset(unsigned int symndx, unsigned int got_type, unsigned int got_offset, uint64_t addend) { - Local_got_entry_key key(symndx, addend); + Local_got_entry_key key(symndx); Local_got_offsets::const_iterator p = this->local_got_offsets_.find(key); if (p != this->local_got_offsets_.end()) - p->second->set_offset(got_type, got_offset); + p->second->set_offset(got_type, got_offset, addend); else { - Got_offset_list* g = new Got_offset_list(got_type, got_offset); + Got_offset_list* g = new Got_offset_list(got_type, got_offset, addend); std::pair ins = this->local_got_offsets_.insert(std::make_pair(key, g)); gold_assert(ins.second); diff --git a/gold/options.h b/gold/options.h index 757ebf18f..47299a378 100644 --- a/gold/options.h +++ b/gold/options.h @@ -611,7 +611,7 @@ class Search_directory // We need a default constructor because we put this in a // std::vector. Search_directory() - : name_(NULL), put_in_sysroot_(false), is_in_sysroot_(false) + : name_(), put_in_sysroot_(false), is_in_sysroot_(false) { } // This is the usual constructor. diff --git a/gold/output.cc b/gold/output.cc index afdba0675..f2890c87f 100644 --- a/gold/output.cc +++ b/gold/output.cc @@ -1367,6 +1367,7 @@ Output_data_group::do_write(Output_file* of) template void Output_data_got::Got_entry::write( + Output_data_got_base* got, unsigned int got_indx, unsigned char* pov) const { @@ -1412,10 +1413,17 @@ Output_data_got::Got_entry::write( default: gold_unreachable(); } + // If this is a GOT entry for a known value global symbol, + // then the value should include the addend. If the value + // is not known leave the value as zero; The GOT entry + // will be set by a dynamic relocation. + if (this->addend_ && gsym->final_value_is_known()) + val += this->addend_; if (this->use_plt_or_tls_offset_ && gsym->type() == elfcpp::STT_TLS) val += parameters->target().tls_offset_for_global(gsym, - got_indx); + got, got_indx, + this->addend_); } } break; @@ -1444,7 +1452,8 @@ Output_data_got::Got_entry::write( val = convert_types(lval); if (this->use_plt_or_tls_offset_ && is_tls) val += parameters->target().tls_offset_for_local(object, lsi, - got_indx); + got, got_indx, + this->addend_); } } break; @@ -1461,15 +1470,15 @@ Output_data_got::Got_entry::write( template bool -Output_data_got::add_global( - Symbol* gsym, - unsigned int got_type) +Output_data_got::add_global(Symbol* gsym, + unsigned int got_type, + uint64_t addend) { - if (gsym->has_got_offset(got_type)) + if (gsym->has_got_offset(got_type, addend)) return false; - unsigned int got_offset = this->add_got_entry(Got_entry(gsym, false)); - gsym->set_got_offset(got_type, got_offset); + unsigned int got_offset = this->add_got_entry(Got_entry(gsym, false, addend)); + gsym->set_got_offset(got_type, got_offset, addend); return true; } @@ -1478,13 +1487,14 @@ Output_data_got::add_global( template bool Output_data_got::add_global_plt(Symbol* gsym, - unsigned int got_type) + unsigned int got_type, + uint64_t addend) { - if (gsym->has_got_offset(got_type)) + if (gsym->has_got_offset(got_type, addend)) return false; - unsigned int got_offset = this->add_got_entry(Got_entry(gsym, true)); - gsym->set_got_offset(got_type, got_offset); + unsigned int got_offset = this->add_got_entry(Got_entry(gsym, true, addend)); + gsym->set_got_offset(got_type, got_offset, addend); return true; } @@ -1497,14 +1507,15 @@ Output_data_got::add_global_with_rel( Symbol* gsym, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type) + unsigned int r_type, + uint64_t addend) { - if (gsym->has_got_offset(got_type)) + if (gsym->has_got_offset(got_type, addend)) return; unsigned int got_offset = this->add_got_entry(Got_entry()); - gsym->set_got_offset(got_type, got_offset); - rel_dyn->add_global_generic(gsym, r_type, this, got_offset, 0); + gsym->set_got_offset(got_type, got_offset, addend); + rel_dyn->add_global_generic(gsym, r_type, this, got_offset, addend); } // Add a pair of entries for a global symbol to the GOT, and add @@ -1517,38 +1528,19 @@ Output_data_got::add_global_pair_with_rel( unsigned int got_type, Output_data_reloc_generic* rel_dyn, unsigned int r_type_1, - unsigned int r_type_2) + unsigned int r_type_2, + uint64_t addend) { - if (gsym->has_got_offset(got_type)) + if (gsym->has_got_offset(got_type, addend)) return; unsigned int got_offset = this->add_got_entry_pair(Got_entry(), Got_entry()); - gsym->set_got_offset(got_type, got_offset); - rel_dyn->add_global_generic(gsym, r_type_1, this, got_offset, 0); + gsym->set_got_offset(got_type, got_offset, addend); + rel_dyn->add_global_generic(gsym, r_type_1, this, got_offset, addend); if (r_type_2 != 0) rel_dyn->add_global_generic(gsym, r_type_2, this, - got_offset + got_size / 8, 0); -} - -// Add an entry for a local symbol to the GOT. This returns true if -// this is a new GOT entry, false if the symbol already has a GOT -// entry. - -template -bool -Output_data_got::add_local( - Relobj* object, - unsigned int symndx, - unsigned int got_type) -{ - if (object->local_has_got_offset(symndx, got_type)) - return false; - - unsigned int got_offset = this->add_got_entry(Got_entry(object, symndx, - false)); - object->set_local_got_offset(symndx, got_type, got_offset); - return true; + got_offset + got_size / 8, addend); } // Add an entry for a local symbol plus ADDEND to the GOT. This returns @@ -1579,37 +1571,18 @@ bool Output_data_got::add_local_plt( Relobj* object, unsigned int symndx, - unsigned int got_type) + unsigned int got_type, + uint64_t addend) { - if (object->local_has_got_offset(symndx, got_type)) + if (object->local_has_got_offset(symndx, got_type, addend)) return false; unsigned int got_offset = this->add_got_entry(Got_entry(object, symndx, - true)); - object->set_local_got_offset(symndx, got_type, got_offset); + true, addend)); + object->set_local_got_offset(symndx, got_type, got_offset, addend); return true; } -// Add an entry for a local symbol to the GOT, and add a dynamic -// relocation of type R_TYPE for the GOT entry. - -template -void -Output_data_got::add_local_with_rel( - Relobj* object, - unsigned int symndx, - unsigned int got_type, - Output_data_reloc_generic* rel_dyn, - unsigned int r_type) -{ - if (object->local_has_got_offset(symndx, got_type)) - return; - - unsigned int got_offset = this->add_got_entry(Got_entry()); - object->set_local_got_offset(symndx, got_type, got_offset); - rel_dyn->add_local_generic(object, symndx, r_type, this, got_offset, 0); -} - // Add an entry for a local symbol plus ADDEND to the GOT, and add a dynamic // relocation of type R_TYPE for the GOT entry. @@ -1620,7 +1593,8 @@ Output_data_got::add_local_with_rel( unsigned int symndx, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type, uint64_t addend) + unsigned int r_type, + uint64_t addend) { if (object->local_has_got_offset(symndx, got_type, addend)) return; @@ -1631,32 +1605,6 @@ Output_data_got::add_local_with_rel( addend); } -// Add a pair of entries for a local symbol to the GOT, and add -// a dynamic relocation of type R_TYPE using the section symbol of -// the output section to which input section SHNDX maps, on the first. -// The first got entry will have a value of zero, the second the -// value of the local symbol. -template -void -Output_data_got::add_local_pair_with_rel( - Relobj* object, - unsigned int symndx, - unsigned int shndx, - unsigned int got_type, - Output_data_reloc_generic* rel_dyn, - unsigned int r_type) -{ - if (object->local_has_got_offset(symndx, got_type)) - return; - - unsigned int got_offset = - this->add_got_entry_pair(Got_entry(), - Got_entry(object, symndx, false)); - object->set_local_got_offset(symndx, got_type, got_offset); - Output_section* os = object->output_section(shndx); - rel_dyn->add_output_section_generic(os, r_type, this, got_offset, 0); -} - // Add a pair of entries for a local symbol plus ADDEND to the GOT, and add // a dynamic relocation of type R_TYPE using the section symbol of // the output section to which input section SHNDX maps, on the first. @@ -1670,7 +1618,8 @@ Output_data_got::add_local_pair_with_rel( unsigned int shndx, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type, uint64_t addend) + unsigned int r_type, + uint64_t addend) { if (object->local_has_got_offset(symndx, got_type, addend)) return; @@ -1694,16 +1643,17 @@ Output_data_got::add_local_tls_pair( unsigned int symndx, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type) + unsigned int r_type, + uint64_t addend) { - if (object->local_has_got_offset(symndx, got_type)) + if (object->local_has_got_offset(symndx, got_type, addend)) return; unsigned int got_offset = this->add_got_entry_pair(Got_entry(), - Got_entry(object, symndx, true)); - object->set_local_got_offset(symndx, got_type, got_offset); - rel_dyn->add_local_generic(object, 0, r_type, this, got_offset, 0); + Got_entry(object, symndx, true, addend)); + object->set_local_got_offset(symndx, got_type, got_offset, addend); + rel_dyn->add_local_generic(object, 0, r_type, this, got_offset, addend); } // Reserve a slot in the GOT for a local symbol or the second slot of a pair. @@ -1714,10 +1664,11 @@ Output_data_got::reserve_local( unsigned int i, Relobj* object, unsigned int sym_index, - unsigned int got_type) + unsigned int got_type, + uint64_t addend) { this->do_reserve_slot(i); - object->set_local_got_offset(sym_index, got_type, this->got_offset(i)); + object->set_local_got_offset(sym_index, got_type, this->got_offset(i), addend); } // Reserve a slot in the GOT for a global symbol. @@ -1727,10 +1678,11 @@ void Output_data_got::reserve_global( unsigned int i, Symbol* gsym, - unsigned int got_type) + unsigned int got_type, + uint64_t addend) { this->do_reserve_slot(i); - gsym->set_got_offset(got_type, this->got_offset(i)); + gsym->set_got_offset(got_type, this->got_offset(i), addend); } // Write out the GOT. @@ -1748,7 +1700,7 @@ Output_data_got::do_write(Output_file* of) unsigned char* pov = oview; for (unsigned int i = 0; i < this->entries_.size(); ++i) { - this->entries_[i].write(i, pov); + this->entries_[i].write(this, i, pov); pov += add; } diff --git a/gold/output.h b/gold/output.h index 9c44f6259..9f1ed6cc5 100644 --- a/gold/output.h +++ b/gold/output.h @@ -2459,83 +2459,65 @@ class Output_data_got : public Output_data_got_base this->free_list_.init(data_size, false); } - // Add an entry for a global symbol to the GOT. Return true if this - // is a new GOT entry, false if the symbol was already in the GOT. + // Add an entry for a global symbol GSYM plus ADDEND to the GOT. + // Return true if this is a new GOT entry, false if the symbol plus + // addend was already in the GOT. bool - add_global(Symbol* gsym, unsigned int got_type); + add_global(Symbol* gsym, unsigned int got_type, uint64_t addend = 0); // Like add_global, but use the PLT offset of the global symbol if // it has one. bool - add_global_plt(Symbol* gsym, unsigned int got_type); + add_global_plt(Symbol* gsym, unsigned int got_type, uint64_t addend = 0); // Like add_global, but for a TLS symbol where the value will be // offset using Target::tls_offset_for_global. bool - add_global_tls(Symbol* gsym, unsigned int got_type) - { return add_global_plt(gsym, got_type); } + add_global_tls(Symbol* gsym, unsigned int got_type, uint64_t addend = 0) + { return this->add_global_plt(gsym, got_type, addend); } - // Add an entry for a global symbol to the GOT, and add a dynamic - // relocation of type R_TYPE for the GOT entry. + // Add an entry for a global symbol GSYM plus ADDEND to the GOT, and + // add a dynamic relocation of type R_TYPE for the GOT entry. void add_global_with_rel(Symbol* gsym, unsigned int got_type, - Output_data_reloc_generic* rel_dyn, unsigned int r_type); + Output_data_reloc_generic* rel_dyn, unsigned int r_type, + uint64_t addend = 0); - // Add a pair of entries for a global symbol to the GOT, and add - // dynamic relocations of type R_TYPE_1 and R_TYPE_2, respectively. + // Add a pair of entries for a global symbol GSYM plus ADDEND to the + // GOT, and add dynamic relocations of type R_TYPE_1 and R_TYPE_2, + // respectively. void add_global_pair_with_rel(Symbol* gsym, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type_1, unsigned int r_type_2); - - // Add an entry for a local symbol to the GOT. This returns true if - // this is a new GOT entry, false if the symbol already has a GOT - // entry. - bool - add_local(Relobj* object, unsigned int sym_index, unsigned int got_type); + unsigned int r_type_1, unsigned int r_type_2, + uint64_t addend = 0); // Add an entry for a local symbol plus ADDEND to the GOT. This returns // true if this is a new GOT entry, false if the symbol already has a GOT // entry. bool add_local(Relobj* object, unsigned int sym_index, unsigned int got_type, - uint64_t addend); + uint64_t addend = 0); // Like add_local, but use the PLT offset of the local symbol if it // has one. bool - add_local_plt(Relobj* object, unsigned int sym_index, unsigned int got_type); + add_local_plt(Relobj* object, unsigned int sym_index, unsigned int got_type, + uint64_t addend = 0); // Like add_local, but for a TLS symbol where the value will be // offset using Target::tls_offset_for_local. bool - add_local_tls(Relobj* object, unsigned int sym_index, unsigned int got_type) - { return add_local_plt(object, sym_index, got_type); } - - // Add an entry for a local symbol to the GOT, and add a dynamic - // relocation of type R_TYPE for the GOT entry. - void - add_local_with_rel(Relobj* object, unsigned int sym_index, - unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type); + add_local_tls(Relobj* object, unsigned int sym_index, unsigned int got_type, + uint64_t addend = 0) + { return this->add_local_plt(object, sym_index, got_type, addend); } // Add an entry for a local symbol plus ADDEND to the GOT, and add a dynamic // relocation of type R_TYPE for the GOT entry. void add_local_with_rel(Relobj* object, unsigned int sym_index, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type, uint64_t addend); - - // Add a pair of entries for a local symbol to the GOT, and add - // a dynamic relocation of type R_TYPE using the section symbol of - // the output section to which input section SHNDX maps, on the first. - // The first got entry will have a value of zero, the second the - // value of the local symbol. - void - add_local_pair_with_rel(Relobj* object, unsigned int sym_index, - unsigned int shndx, unsigned int got_type, - Output_data_reloc_generic* rel_dyn, - unsigned int r_type); + unsigned int r_type, uint64_t addend = 0); // Add a pair of entries for a local symbol plus ADDEND to the GOT, and add // a dynamic relocation of type R_TYPE using the section symbol of @@ -2546,17 +2528,18 @@ class Output_data_got : public Output_data_got_base add_local_pair_with_rel(Relobj* object, unsigned int sym_index, unsigned int shndx, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type, uint64_t addend); + unsigned int r_type, uint64_t addend = 0); - // Add a pair of entries for a local symbol to the GOT, and add - // a dynamic relocation of type R_TYPE using STN_UNDEF on the first. - // The first got entry will have a value of zero, the second the - // value of the local symbol offset by Target::tls_offset_for_local. + // Add a pair of entries for a local symbol plus ADDEND to the GOT, + // and add a dynamic relocation of type R_TYPE using STN_UNDEF on + // the first. The first got entry will have a value of zero, the + // second the value of the local symbol plus ADDEND offset by + // Target::tls_offset_for_local. void add_local_tls_pair(Relobj* object, unsigned int sym_index, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type); + unsigned int r_type, uint64_t addend = 0); // Add a constant to the GOT. This returns the offset of the new // entry from the start of the GOT. @@ -2577,14 +2560,15 @@ class Output_data_got : public Output_data_got_base this->replace_got_entry(i, Got_entry(constant)); } - // Reserve a slot in the GOT for a local symbol. + // Reserve a slot in the GOT for a local symbol plus ADDEND. void reserve_local(unsigned int i, Relobj* object, unsigned int sym_index, - unsigned int got_type); + unsigned int got_type, uint64_t addend = 0); - // Reserve a slot in the GOT for a global symbol. + // Reserve a slot in the GOT for a global symbol plus ADDEND. void - reserve_global(unsigned int i, Symbol* gsym, unsigned int got_type); + reserve_global(unsigned int i, Symbol* gsym, unsigned int got_type, + uint64_t addend = 0); protected: // Write out the GOT table. @@ -2623,16 +2607,16 @@ class Output_data_got : public Output_data_got_base { this->u_.constant = 0; } // Create a global symbol entry. - Got_entry(Symbol* gsym, bool use_plt_or_tls_offset) + Got_entry(Symbol* gsym, bool use_plt_or_tls_offset, uint64_t addend) : local_sym_index_(GSYM_CODE), - use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(0) + use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(addend) { this->u_.gsym = gsym; } // Create a local symbol entry. Got_entry(Relobj* object, unsigned int local_sym_index, - bool use_plt_or_tls_offset) + bool use_plt_or_tls_offset, uint64_t addend) : local_sym_index_(local_sym_index), - use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(0) + use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(addend) { gold_assert(local_sym_index != GSYM_CODE && local_sym_index != CONSTANT_CODE @@ -2641,19 +2625,6 @@ class Output_data_got : public Output_data_got_base this->u_.object = object; } - // Create a local symbol entry plus addend. - Got_entry(Relobj* object, unsigned int local_sym_index, - bool use_plt_or_tls_offset, uint64_t addend) - : local_sym_index_(local_sym_index), - use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(addend) - { - gold_assert(local_sym_index != GSYM_CODE - && local_sym_index != CONSTANT_CODE - && local_sym_index != RESERVED_CODE - && local_sym_index == this->local_sym_index_); - this->u_.object = object; - } - // Create a constant entry. The constant is a host value--it will // be swapped, if necessary, when it is written out. explicit Got_entry(Valtype constant) @@ -2662,7 +2633,8 @@ class Output_data_got : public Output_data_got_base // Write the GOT entry to an output view. void - write(unsigned int got_indx, unsigned char* pov) const; + write(Output_data_got_base* got, unsigned int got_indx, + unsigned char* pov) const; private: enum diff --git a/gold/powerpc.cc b/gold/powerpc.cc index 6b12ed886..3a6d3c6f6 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -101,7 +101,6 @@ public: : Sized_relobj_file(name, input_file, offset, ehdr), uniq_(object_id++), special_(0), relatoc_(0), toc_(0), has_small_toc_reloc_(false), opd_valid_(false), - no_tls_marker_(false), tls_marker_(false), tls_opt_error_(false), e_flags_(ehdr.get_e_flags()), no_toc_opt_(), opd_ent_(), access_from_map_(), has14_(), stub_table_index_(), st_other_(), attributes_section_data_(NULL) @@ -162,30 +161,6 @@ public: return this->no_toc_opt_[off]; } - void - set_no_tls_marker() - { - if (!this->no_tls_marker_ && this->tls_marker_) - this->tls_opt_error_ = true; - this->no_tls_marker_ = true; - } - - bool - no_tls_marker() const - { return this->no_tls_marker_; } - - void - set_tls_marker() - { this->tls_marker_ = true; } - - bool - tls_marker() const - { return this->tls_marker_; } - - bool - tls_opt_error() const - { return this->tls_opt_error_; } - // The .got2 section shndx. unsigned int got2_shndx() const @@ -341,12 +316,6 @@ public: } } - // Return offset in output GOT section that this object will use - // as a TOC pointer. Won't be just a constant with multi-toc support. - Address - toc_base_offset() const - { return 0x8000; } - void set_has_small_toc_reloc() { has_small_toc_reloc_ = true; } @@ -479,19 +448,6 @@ private: // access_from_map_. bool opd_valid_; - // Set when finding a __tls_get_addr call without marker relocs. - // Such a call disables GD and LD tls optimisations for the object file. - bool no_tls_marker_; - - // Set when finding a __tls_get_addr call with marker relocs, or - // when finding a relocation that needs __tls_get_addr calls with - // marker relocs. - bool tls_marker_; - - // Set when seeing a __tls_get_addr call without marker relocs after - // seeing some __tls_get_addr calls with marker relocs. - bool tls_opt_error_; - // Header e_flags elfcpp::Elf_Word e_flags_; @@ -665,6 +621,21 @@ class Powerpc_copy_relocs : public Copy_relocs emit(Output_data_reloc*); }; +// The types of GOT entries needed for this platform. +// These values are exposed to the ABI in an incremental link, but +// powerpc does not support incremental linking as yet. +enum Got_type + { + GOT_TYPE_STANDARD = 0, + GOT_TYPE_TLSGD = 1, // double entry for @got@tlsgd + GOT_TYPE_DTPREL = 2, // entry for @got@dtprel + GOT_TYPE_TPREL = 3, // entry for @got@tprel + GOT_TYPE_SMALL = 4, + GOT_TYPE_SMALL_TLSGD = 5, + GOT_TYPE_SMALL_DTPREL = 6, + GOT_TYPE_SMALL_TPREL = 7 + }; + template class Target_powerpc : public Sized_target { @@ -681,8 +652,8 @@ class Target_powerpc : public Sized_target Target_powerpc() : Sized_target(&powerpc_info), - got_(NULL), plt_(NULL), iplt_(NULL), lplt_(NULL), brlt_section_(NULL), - glink_(NULL), rela_dyn_(NULL), copy_relocs_(), + got_(NULL), biggot_(NULL), plt_(NULL), iplt_(NULL), lplt_(NULL), + brlt_section_(NULL), glink_(NULL), rela_dyn_(NULL), copy_relocs_(), tlsld_got_offset_(-1U), stub_tables_(), branch_lookup_table_(), branch_info_(), tocsave_loc_(), power10_relocs_(false), plt_thread_safe_(false), plt_localentry0_(false), @@ -825,12 +796,16 @@ class Target_powerpc : public Sized_target int64_t do_tls_offset_for_local(const Relobj* object, unsigned int symndx, - unsigned int got_indx) const; + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const; // Return the offset to use for the GOT_INDX'th got entry which is // for global tls symbol GSYM. int64_t - do_tls_offset_for_global(Symbol* gsym, unsigned int got_indx) const; + do_tls_offset_for_global(Symbol* gsym, + Output_data_got_base* got, unsigned int got_indx, + uint64_t addend) const; void do_function_location(Symbol_location*) const; @@ -912,12 +887,13 @@ class Target_powerpc : public Sized_target return strcmp(sym->name(), "__tls_get_addr") == 0; } - // Return the size of the GOT section. + // Return the size of the GOT section, for incremental linking section_size_type got_size() const { gold_assert(this->got_ != NULL); - return this->got_->data_size(); + return this->got_->data_size() + (this->biggot_ + ? this->biggot_->data_size() : 0); } // Get the PLT section. @@ -990,15 +966,34 @@ class Target_powerpc : public Sized_target // Get the GOT section. const Output_data_got_powerpc* - got_section() const + got_section(Got_type got_type) const { gold_assert(this->got_ != NULL); - return this->got_; + if (size == 32 || (got_type & GOT_TYPE_SMALL)) + return this->got_; + gold_assert(this->biggot_ != NULL); + return this->biggot_; } // Get the GOT section, creating it if necessary. Output_data_got_powerpc* - got_section(Symbol_table*, Layout*); + got_section(Symbol_table*, Layout*, Got_type); + + // The toc/got pointer reg will be set to this value. + Address + toc_pointer() const + { + return this->got_->address() + this->got_->g_o_t(); + } + + // Offset of base used to access the GOT/TOC relative to the GOT section. + Address + got_base_offset(Got_type got_type) const + { + if (size == 32 || (got_type & GOT_TYPE_SMALL)) + return this->got_->g_o_t(); + return this->toc_pointer() - this->biggot_->address(); + } Object* do_make_elf_object(const std::string&, Input_file*, off_t, @@ -1688,20 +1683,13 @@ class Target_powerpc : public Sized_target // general Target structure. static Target::Target_info powerpc_info; - // The types of GOT entries needed for this platform. - // These values are exposed to the ABI in an incremental link. - // Do not renumber existing values without changing the version - // number of the .gnu_incremental_inputs section. - enum Got_type - { - GOT_TYPE_STANDARD, - GOT_TYPE_TLSGD, // double entry for @got@tlsgd - GOT_TYPE_DTPREL, // entry for @got@dtprel - GOT_TYPE_TPREL // entry for @got@tprel - }; - - // The GOT section. + // The small GOT section used by ppc32, and by ppc64 for entries that + // must be addresseed +/-32k from the got pointer. Output_data_got_powerpc* got_; + // Another GOT section used for entries that can be addressed +/- 2G + // from the got pointer. + Output_data_got_powerpc* biggot_; + // The PLT section. This is a container for a table of addresses, // and their relocations. Each address in the PLT has a dynamic // relocation (R_*_JMP_SLOT) and each address will have a @@ -1921,7 +1909,7 @@ is_plt16_reloc(unsigned int r_type) || (size == 64 && r_type == elfcpp::R_PPC64_PLT16_LO_DS)); } -// GOT_TYPE_STANDARD (ie. not TLS) GOT relocs +// GOT_TYPE_STANDARD or GOT_TYPE_SMALL (ie. not TLS) GOT relocs inline bool is_got_reloc(unsigned int r_type) { @@ -2442,15 +2430,15 @@ Powerpc_relobj::make_toc_relative( // With -mcmodel=medium code it is quite possible to have // toc-relative relocs referring to objects outside the TOC. // Don't try to look at a non-existent TOC. - if (this->toc_shndx() == 0) + if (this->toc_shndx() == 0 + || this->output_section(this->toc_shndx()) == 0) return false; // Convert VALUE back to an address by adding got_base (see below), // then to an offset in the TOC by subtracting the TOC output - // section address and the TOC output offset. Since this TOC output - // section and the got output section are one and the same, we can - // omit adding and subtracting the output section address. - Address off = (*value + this->toc_base_offset() + // section address and the TOC output offset. + Address off = (*value + target->toc_pointer() + - this->output_section(this->toc_shndx())->address() - this->output_section_offset(this->toc_shndx())); // Is this offset in the TOC? -mcmodel=medium code may be using // TOC relative access to variables outside the TOC. Those of @@ -2466,8 +2454,7 @@ Powerpc_relobj::make_toc_relative( unsigned char* view = this->get_output_view(this->toc_shndx(), &vlen); Address addr = elfcpp::Swap::readval(view + off); // The TOC pointer - Address got_base = (target->got_section()->output_section()->address() - + this->toc_base_offset()); + Address got_base = target->toc_pointer(); addr -= got_base; if (addr + (uint64_t) 0x80008000 >= (uint64_t) 1 << 32) return false; @@ -2485,8 +2472,7 @@ Powerpc_relobj::make_got_relative( Address* value) { Address addr = psymval->value(this, addend); - Address got_base = (target->got_section()->output_section()->address() - + this->toc_base_offset()); + Address got_base = target->toc_pointer(); addr -= got_base; if (addr + 0x80008000 > 0xffffffff) return false; @@ -2835,7 +2821,7 @@ Target_powerpc::do_define_standard_symbols( static_cast*>( parameters->sized_target()); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, GOT_TYPE_SMALL); symtab->define_in_output_data("_GLOBAL_OFFSET_TABLE_", NULL, Symbol_table::PREDEFINED, got, 0, 0, @@ -2872,7 +2858,7 @@ Target_powerpc::do_define_standard_symbols( static_cast*>( parameters->sized_target()); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, GOT_TYPE_SMALL); symtab->define_in_output_data(".TOC.", NULL, Symbol_table::PREDEFINED, got, 0x8000, 0, @@ -2955,90 +2941,101 @@ public: typedef typename elfcpp::Elf_types::Elf_Addr Valtype; typedef Output_data_reloc Rela_dyn; - Output_data_got_powerpc(Symbol_table* symtab, Layout* layout) + Output_data_got_powerpc(Symbol_table* symtab, Layout* layout, + Got_type got_type) : Output_data_got(), symtab_(symtab), layout_(layout), header_ent_cnt_(size == 32 ? 3 : 1), - header_index_(size == 32 ? 0x2000 : 0) + header_index_(size == 32 ? 0x2000 : -1u) { if (size == 64) this->set_addralign(256); + if (size == 64 && (got_type & GOT_TYPE_SMALL)) + this->make_header(); } // Override all the Output_data_got methods we use so as to first call // reserve_ent(). bool - add_global(Symbol* gsym, unsigned int got_type) + add_global(Symbol* gsym, unsigned int got_type, uint64_t addend) { this->reserve_ent(); - return Output_data_got::add_global(gsym, got_type); + return Output_data_got::add_global(gsym, got_type, + addend); } bool - add_global_plt(Symbol* gsym, unsigned int got_type) + add_global_plt(Symbol* gsym, unsigned int got_type, uint64_t addend) { this->reserve_ent(); - return Output_data_got::add_global_plt(gsym, got_type); + return Output_data_got::add_global_plt(gsym, got_type, + addend); } bool - add_global_tls(Symbol* gsym, unsigned int got_type) - { return this->add_global_plt(gsym, got_type); } + add_global_tls(Symbol* gsym, unsigned int got_type, uint64_t addend) + { return this->add_global_plt(gsym, got_type, addend); } void add_global_with_rel(Symbol* gsym, unsigned int got_type, - Output_data_reloc_generic* rel_dyn, unsigned int r_type) + Output_data_reloc_generic* rel_dyn, + unsigned int r_type, uint64_t addend) { this->reserve_ent(); Output_data_got:: - add_global_with_rel(gsym, got_type, rel_dyn, r_type); + add_global_with_rel(gsym, got_type, rel_dyn, r_type, addend); } void add_global_pair_with_rel(Symbol* gsym, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type_1, unsigned int r_type_2) + unsigned int r_type_1, unsigned int r_type_2, + uint64_t addend) { if (gsym->has_got_offset(got_type)) return; this->reserve_ent(2); Output_data_got:: - add_global_pair_with_rel(gsym, got_type, rel_dyn, r_type_1, r_type_2); + add_global_pair_with_rel(gsym, got_type, rel_dyn, r_type_1, r_type_2, + addend); } bool - add_local(Relobj* object, unsigned int sym_index, unsigned int got_type) + add_local(Relobj* object, unsigned int sym_index, unsigned int got_type, + uint64_t addend) { this->reserve_ent(); return Output_data_got::add_local(object, sym_index, - got_type); + got_type, addend); } bool - add_local_plt(Relobj* object, unsigned int sym_index, unsigned int got_type) + add_local_plt(Relobj* object, unsigned int sym_index, + unsigned int got_type, uint64_t addend) { this->reserve_ent(); return Output_data_got::add_local_plt(object, sym_index, - got_type); + got_type, addend); } bool - add_local_tls(Relobj* object, unsigned int sym_index, unsigned int got_type) - { return this->add_local_plt(object, sym_index, got_type); } + add_local_tls(Relobj* object, unsigned int sym_index, + unsigned int got_type, uint64_t addend) + { return this->add_local_plt(object, sym_index, got_type, addend); } void add_local_tls_pair(Relobj* object, unsigned int sym_index, unsigned int got_type, Output_data_reloc_generic* rel_dyn, - unsigned int r_type) + unsigned int r_type, uint64_t addend) { - if (object->local_has_got_offset(sym_index, got_type)) + if (object->local_has_got_offset(sym_index, got_type, addend)) return; this->reserve_ent(2); Output_data_got:: - add_local_tls_pair(object, sym_index, got_type, rel_dyn, r_type); + add_local_tls_pair(object, sym_index, got_type, rel_dyn, r_type, addend); } unsigned int @@ -3055,31 +3052,23 @@ public: return Output_data_got::add_constant_pair(c1, c2); } - // Offset of _GLOBAL_OFFSET_TABLE_. + // Offset of _GLOBAL_OFFSET_TABLE_ and .TOC. in this section. unsigned int g_o_t() const - { - return this->got_offset(this->header_index_); - } - - // Offset of base used to access the GOT/TOC. - // The got/toc pointer reg will be set to this value. - Valtype - got_base_offset(const Powerpc_relobj* object) const { if (size == 32) - return this->g_o_t(); + return this->got_offset(this->header_index_); + else if (this->header_index_ != -1u) + return this->got_offset(this->header_index_) + 0x8000; else - return (this->output_section()->address() - + object->toc_base_offset() - - this->address()); + gold_unreachable(); } // Ensure our GOT has a header. void set_final_data_size() { - if (this->header_ent_cnt_ != 0) + if (size == 32 && this->header_ent_cnt_ != 0) this->make_header(); Output_data_got::set_final_data_size(); } @@ -3090,12 +3079,15 @@ public: void do_write(Output_file* of) { - Valtype val = 0; - if (size == 32 && this->layout_->dynamic_data() != NULL) - val = this->layout_->dynamic_section()->address(); - if (size == 64) - val = this->output_section()->address() + 0x8000; - this->replace_constant(this->header_index_, val); + if (this->header_index_ != -1u) + { + Valtype val = 0; + if (size == 32 && this->layout_->dynamic_data() != NULL) + val = this->layout_->dynamic_section()->address(); + if (size == 64) + val = this->address() + this->g_o_t(); + this->replace_constant(this->header_index_, val); + } Output_data_got::do_write(of); } @@ -3103,7 +3095,7 @@ private: void reserve_ent(unsigned int cnt = 1) { - if (this->header_ent_cnt_ == 0) + if (size != 32 || this->header_ent_cnt_ == 0) return; if (this->num_entries() + cnt > this->header_index_) this->make_header(); @@ -3155,21 +3147,37 @@ private: template Output_data_got_powerpc* Target_powerpc::got_section(Symbol_table* symtab, - Layout* layout) + Layout* layout, + Got_type got_type) { if (this->got_ == NULL) { gold_assert(symtab != NULL && layout != NULL); this->got_ - = new Output_data_got_powerpc(symtab, layout); + = new Output_data_got_powerpc(symtab, layout, + GOT_TYPE_SMALL); layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS, elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE, this->got_, ORDER_DATA, false); } - return this->got_; + if (size == 32 || (got_type & GOT_TYPE_SMALL)) + return this->got_; + + if (this->biggot_ == NULL) + { + this->biggot_ + = new Output_data_got_powerpc(symtab, layout, + GOT_TYPE_STANDARD); + + layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS, + elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE, + this->biggot_, ORDER_DATA, false); + } + + return this->biggot_; } // Get the dynamic reloc section, creating it if necessary. @@ -3658,8 +3666,7 @@ Target_powerpc::Branch_info::make_stub( && gsym != NULL && gsym->source() == Symbol::IN_OUTPUT_DATA && gsym->output_data() == target->savres_section()); - ok = stub_table->add_long_branch_entry(this->object_, - this->r_type_, + ok = stub_table->add_long_branch_entry(this->r_type_, from, to, other, save_res); } } @@ -4354,7 +4361,7 @@ Target_powerpc::make_plt_section(Symbol_table* symtab, if (this->plt_ == NULL) { if (this->got_ == NULL) - this->got_section(symtab, layout); + this->got_section(symtab, layout, GOT_TYPE_SMALL); if (this->glink_ == NULL) make_glink_section(layout); @@ -4801,12 +4808,10 @@ class Stub_table : public Output_relaxed_input_section // Add a long branch stub. bool - add_long_branch_entry(const Powerpc_relobj*, - unsigned int, Address, Address, unsigned int, bool); + add_long_branch_entry(unsigned int, Address, Address, unsigned int, bool); const Branch_stub_ent* - find_long_branch_entry(const Powerpc_relobj*, - Address) const; + find_long_branch_entry(Address) const; bool can_reach_stub(Address from, unsigned int off, unsigned int r_type) @@ -5086,29 +5091,23 @@ class Stub_table : public Output_relaxed_input_section class Branch_stub_key { public: - Branch_stub_key(const Powerpc_relobj* obj, Address to) - : dest_(to), toc_base_off_(0) - { - if (size == 64) - toc_base_off_ = obj->toc_base_offset(); - } + Branch_stub_key(Address to) + : dest_(to) + { } bool operator==(const Branch_stub_key& that) const { - return (this->dest_ == that.dest_ - && (size == 32 - || this->toc_base_off_ == that.toc_base_off_)); + return this->dest_ == that.dest_; } Address dest_; - unsigned int toc_base_off_; }; class Branch_stub_key_hash { public: size_t operator()(const Branch_stub_key& key) const - { return key.dest_ ^ key.toc_base_off_; } + { return key.dest_; } }; // In a sane world this would be a global. @@ -5318,14 +5317,13 @@ Stub_table::find_plt_call_entry( template bool Stub_table::add_long_branch_entry( - const Powerpc_relobj* object, unsigned int r_type, Address from, Address to, unsigned int other, bool save_res) { - Branch_stub_key key(object, to); + Branch_stub_key key(to); bool notoc = (size == 64 && r_type == elfcpp::R_PPC64_REL24_NOTOC); Branch_stub_ent ent(this->branch_size_, notoc, save_res); std::pair p @@ -5370,11 +5368,9 @@ Stub_table::add_long_branch_entry( template const typename Stub_table::Branch_stub_ent* -Stub_table::find_long_branch_entry( - const Powerpc_relobj* object, - Address to) const +Stub_table::find_long_branch_entry(Address to) const { - Branch_stub_key key(object, to); + Branch_stub_key key(to); typename Branch_stub_entries::const_iterator p = this->long_branch_stubs_.find(key); if (p == this->long_branch_stubs_.end()) @@ -6094,11 +6090,7 @@ Stub_table::plt_call_size( } if (p->second.r2save_) bytes += 4; - uint64_t got_addr - = this->targ_->got_section()->output_section()->address(); - const Powerpc_relobj* ppcobj = static_cast - *>(p->first.object_); - got_addr += ppcobj->toc_base_offset(); + uint64_t got_addr = this->targ_->toc_pointer(); uint64_t off = plt_addr - got_addr; bytes += 3 * 4 + 4 * (ha(off) != 0); } @@ -6159,10 +6151,7 @@ Stub_table::plt_call_size( return bytes + tail; } - uint64_t got_addr = this->targ_->got_section()->output_section()->address(); - const Powerpc_relobj* ppcobj = static_cast - *>(p->first.object_); - got_addr += ppcobj->toc_base_offset(); + uint64_t got_addr = this->targ_->toc_pointer(); uint64_t off = plt_addr - got_addr; bytes += 3 * 4 + 4 * (ha(off) != 0); if (this->targ_->abiversion() < 2) @@ -6283,10 +6272,6 @@ Stub_table::do_write(Output_file* of) if (size == 64 && this->targ_->power10_stubs()) { - const Output_data_got_powerpc* got - = this->targ_->got_section(); - Address got_os_addr = got->output_section()->address(); - if (!this->plt_call_stubs_.empty()) { // Write out plt call stubs. @@ -6323,10 +6308,7 @@ Stub_table::do_write(Output_file* of) = cs->second.r2save_ && !cs->second.localentry0_; this->build_tls_opt_head(&p, save_lr); } - const Powerpc_relobj* ppcobj - = static_cast*>( - cs->first.object_); - Address got_addr = got_os_addr + ppcobj->toc_base_offset(); + Address got_addr = this->targ_->toc_pointer(); Address off = plt_addr - got_addr; if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) @@ -6428,7 +6410,7 @@ Stub_table::do_write(Output_file* of) = this->targ_->find_branch_lookup_table(bs->first.dest_); gold_assert(brlt_addr != invalid_address); brlt_addr += this->targ_->brlt_section()->address(); - Address got_addr = got_os_addr + bs->first.toc_base_off_; + Address got_addr = this->targ_->toc_pointer(); Address brltoff = brlt_addr - got_addr; if (ha(brltoff) == 0) { @@ -6477,9 +6459,6 @@ Stub_table::do_write(Output_file* of) } else if (size == 64) { - const Output_data_got_powerpc* got - = this->targ_->got_section(); - Address got_os_addr = got->output_section()->address(); if (!this->plt_call_stubs_.empty() && this->targ_->abiversion() >= 2) @@ -6513,9 +6492,7 @@ Stub_table::do_write(Output_file* of) } else { - const Powerpc_relobj* ppcobj = static_cast - *>(cs->first.object_); - Address got_addr = got_os_addr + ppcobj->toc_base_offset(); + Address got_addr = this->targ_->toc_pointer(); Address off = plt_addr - got_addr; if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) @@ -6555,9 +6532,7 @@ Stub_table::do_write(Output_file* of) const Output_data_plt_powerpc* plt; Address pltoff = this->plt_off(cs, &plt); Address plt_addr = pltoff + plt->address(); - const Powerpc_relobj* ppcobj = static_cast - *>(cs->first.object_); - Address got_addr = got_os_addr + ppcobj->toc_base_offset(); + Address got_addr = this->targ_->toc_pointer(); Address off = plt_addr - got_addr; if (off + 0x80008000 > 0xffffffff || (off & 7) != 0 @@ -6701,7 +6676,7 @@ Stub_table::do_write(Output_file* of) = this->targ_->find_branch_lookup_table(bs->first.dest_); gold_assert(brlt_addr != invalid_address); brlt_addr += this->targ_->brlt_section()->address(); - Address got_addr = got_os_addr + bs->first.toc_base_off_; + Address got_addr = this->targ_->toc_pointer(); Address brltoff = brlt_addr - got_addr; if (ha(brltoff) == 0) { @@ -6763,11 +6738,7 @@ Stub_table::do_write(Output_file* of) else { if (g_o_t == invalid_address) - { - const Output_data_got_powerpc* got - = this->targ_->got_section(); - g_o_t = got->address() + got->g_o_t(); - } + g_o_t = this->targ_->toc_pointer(); got_addr = g_o_t; } @@ -6969,10 +6940,8 @@ Output_data_glink::do_write(Output_file* of) } else { - const Output_data_got_powerpc* got - = this->targ_->got_section(); // The address of _GLOBAL_OFFSET_TABLE_. - Address g_o_t = got->address() + got->g_o_t(); + Address g_o_t = this->targ_->toc_pointer(); // Write out pltresolve branch table. p = oview; @@ -7496,7 +7465,7 @@ Target_powerpc::tlsld_got_offset( gold_assert(symtab != NULL && layout != NULL && object != NULL); Reloc_section* rela_dyn = this->rela_dyn_section(layout); Output_data_got_powerpc* got - = this->got_section(symtab, layout); + = this->got_section(symtab, layout, GOT_TYPE_SMALL); unsigned int got_offset = got->add_constant_pair(0, 0); rela_dyn->add_local(object, 0, elfcpp::R_POWERPC_DTPMOD, got, got_offset, 0); @@ -7904,42 +7873,23 @@ Target_powerpc::Scan::local( Powerpc_relobj* ppc_object = static_cast*>(object); - switch (this->maybe_skip_tls_get_addr_call(target, r_type, NULL)) - { - case Track_tls::NOT_EXPECTED: - ppc_object->set_no_tls_marker(); - break; - default: - break; - } + this->maybe_skip_tls_get_addr_call(target, r_type, NULL); if ((size == 64 && r_type == elfcpp::R_PPC64_TLSGD) || (size == 32 && r_type == elfcpp::R_PPC_TLSGD)) { this->expect_tls_get_addr_call(); - if (!ppc_object->no_tls_marker()) - { - tls::Tls_optimization tls_type = target->optimize_tls_gd(true); - if (tls_type != tls::TLSOPT_NONE) - { - this->skip_next_tls_get_addr_call(); - ppc_object->set_tls_marker(); - } - } + tls::Tls_optimization tls_type = target->optimize_tls_gd(true); + if (tls_type != tls::TLSOPT_NONE) + this->skip_next_tls_get_addr_call(); } else if ((size == 64 && r_type == elfcpp::R_PPC64_TLSLD) || (size == 32 && r_type == elfcpp::R_PPC_TLSLD)) { this->expect_tls_get_addr_call(); - if (!ppc_object->no_tls_marker()) - { - tls::Tls_optimization tls_type = target->optimize_tls_ld(); - if (tls_type != tls::TLSOPT_NONE) - { - this->skip_next_tls_get_addr_call(); - ppc_object->set_tls_marker(); - } - } + tls::Tls_optimization tls_type = target->optimize_tls_ld(); + if (tls_type != tls::TLSOPT_NONE) + this->skip_next_tls_get_addr_call(); } if (is_discarded) @@ -7995,7 +7945,7 @@ Target_powerpc::Scan::local( case elfcpp::R_PPC64_TOC: { Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, GOT_TYPE_SMALL); if (parameters->options().output_is_position_independent()) { Address off = reloc.get_r_offset(); @@ -8006,12 +7956,12 @@ Target_powerpc::Scan::local( break; Reloc_section* rela_dyn = target->rela_dyn_section(layout); - Powerpc_relobj* symobj = ppc_object; + Address got_off = got->g_o_t(); rela_dyn->add_output_section_relative(got->output_section(), elfcpp::R_POWERPC_RELATIVE, output_section, object, data_shndx, off, - symobj->toc_base_offset()); + got_off); } } break; @@ -8190,32 +8140,37 @@ Target_powerpc::Scan::local( case elfcpp::R_PPC64_GOT16_LO_DS: { // The symbol requires a GOT entry. + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT16 + || r_type == elfcpp::R_PPC64_GOT16_DS) + ? GOT_TYPE_SMALL : GOT_TYPE_STANDARD); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); unsigned int r_sym = elfcpp::elf_r_sym(reloc.get_r_info()); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); if (!parameters->options().output_is_position_independent()) { if (is_ifunc && (size == 32 || target->abiversion() >= 2)) - got->add_local_plt(object, r_sym, GOT_TYPE_STANDARD); + got->add_local_plt(object, r_sym, got_type, addend); else - got->add_local(object, r_sym, GOT_TYPE_STANDARD); + got->add_local(object, r_sym, got_type, addend); } - else if (!object->local_has_got_offset(r_sym, GOT_TYPE_STANDARD)) + else if (!object->local_has_got_offset(r_sym, got_type, addend)) { // If we are generating a shared object or a pie, this // symbol's GOT entry will be set by a dynamic relocation. unsigned int off; off = got->add_constant(0); - object->set_local_got_offset(r_sym, GOT_TYPE_STANDARD, off); + object->set_local_got_offset(r_sym, got_type, off, addend); Reloc_section* rela_dyn = target->rela_dyn_section(symtab, layout, is_ifunc); unsigned int dynrel = (is_ifunc ? elfcpp::R_POWERPC_IRELATIVE : elfcpp::R_POWERPC_RELATIVE); rela_dyn->add_local_relative(object, r_sym, dynrel, - got, off, 0, false); + got, off, addend, false); } } break; @@ -8227,7 +8182,7 @@ Target_powerpc::Scan::local( case elfcpp::R_PPC64_TOC16_DS: case elfcpp::R_PPC64_TOC16_LO_DS: // We need a GOT section. - target->got_section(symtab, layout); + target->got_section(symtab, layout, GOT_TYPE_SMALL); break; case elfcpp::R_PPC64_GOT_TLSGD_PCREL34: @@ -8236,22 +8191,24 @@ Target_powerpc::Scan::local( case elfcpp::R_POWERPC_GOT_TLSGD16_HI: case elfcpp::R_POWERPC_GOT_TLSGD16_HA: { - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!ppc_object->no_tls_marker()) - tls_type = target->optimize_tls_gd(true); + tls::Tls_optimization tls_type = target->optimize_tls_gd(true); if (tls_type == tls::TLSOPT_NONE) { + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TLSGD16) + ? GOT_TYPE_SMALL_TLSGD : GOT_TYPE_TLSGD); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); unsigned int r_sym = elfcpp::elf_r_sym(reloc.get_r_info()); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); Reloc_section* rela_dyn = target->rela_dyn_section(layout); - got->add_local_tls_pair(object, r_sym, GOT_TYPE_TLSGD, - rela_dyn, elfcpp::R_POWERPC_DTPMOD); + got->add_local_tls_pair(object, r_sym, got_type, + rela_dyn, elfcpp::R_POWERPC_DTPMOD, + addend); } else if (tls_type == tls::TLSOPT_TO_LE) { // no GOT relocs needed for Local Exec. - ppc_object->set_tls_marker(); } else gold_unreachable(); @@ -8264,9 +8221,7 @@ Target_powerpc::Scan::local( case elfcpp::R_POWERPC_GOT_TLSLD16_HI: case elfcpp::R_POWERPC_GOT_TLSLD16_HA: { - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!ppc_object->no_tls_marker()) - tls_type = target->optimize_tls_ld(); + tls::Tls_optimization tls_type = target->optimize_tls_ld(); if (tls_type == tls::TLSOPT_NONE) target->tlsld_got_offset(symtab, layout, object); else if (tls_type == tls::TLSOPT_TO_LE) @@ -8278,7 +8233,6 @@ Target_powerpc::Scan::local( gold_assert(os != NULL); os->set_needs_symtab_index(); } - ppc_object->set_tls_marker(); } else gold_unreachable(); @@ -8291,10 +8245,14 @@ Target_powerpc::Scan::local( case elfcpp::R_POWERPC_GOT_DTPREL16_HI: case elfcpp::R_POWERPC_GOT_DTPREL16_HA: { + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_DTPREL16) + ? GOT_TYPE_SMALL_DTPREL : GOT_TYPE_DTPREL); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); unsigned int r_sym = elfcpp::elf_r_sym(reloc.get_r_info()); - got->add_local_tls(object, r_sym, GOT_TYPE_DTPREL); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); + got->add_local_tls(object, r_sym, got_type, addend); } break; @@ -8308,17 +8266,21 @@ Target_powerpc::Scan::local( if (tls_type == tls::TLSOPT_NONE) { unsigned int r_sym = elfcpp::elf_r_sym(reloc.get_r_info()); - if (!object->local_has_got_offset(r_sym, GOT_TYPE_TPREL)) + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TPREL16) + ? GOT_TYPE_SMALL_TPREL : GOT_TYPE_TPREL); + if (!object->local_has_got_offset(r_sym, got_type, addend)) { Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); unsigned int off = got->add_constant(0); - object->set_local_got_offset(r_sym, GOT_TYPE_TPREL, off); + object->set_local_got_offset(r_sym, got_type, off, addend); Reloc_section* rela_dyn = target->rela_dyn_section(layout); rela_dyn->add_symbolless_local_addend(object, r_sym, elfcpp::R_POWERPC_TPREL, - got, off, 0); + got, off, addend); } } else if (tls_type == tls::TLSOPT_TO_LE) @@ -8613,9 +8575,6 @@ Target_powerpc::Scan::global( switch (this->maybe_skip_tls_get_addr_call(target, r_type, gsym)) { - case Track_tls::NOT_EXPECTED: - ppc_object->set_no_tls_marker(); - break; case Track_tls::SKIP: return; default: @@ -8631,30 +8590,18 @@ Target_powerpc::Scan::global( || (size == 32 && r_type == elfcpp::R_PPC_TLSGD)) { this->expect_tls_get_addr_call(); - if (!ppc_object->no_tls_marker()) - { - bool final = gsym->final_value_is_known(); - tls::Tls_optimization tls_type = target->optimize_tls_gd(final); - if (tls_type != tls::TLSOPT_NONE) - { - this->skip_next_tls_get_addr_call(); - ppc_object->set_tls_marker(); - } - } + bool final = gsym->final_value_is_known(); + tls::Tls_optimization tls_type = target->optimize_tls_gd(final); + if (tls_type != tls::TLSOPT_NONE) + this->skip_next_tls_get_addr_call(); } else if ((size == 64 && r_type == elfcpp::R_PPC64_TLSLD) || (size == 32 && r_type == elfcpp::R_PPC_TLSLD)) { this->expect_tls_get_addr_call(); - if (!ppc_object->no_tls_marker()) - { - tls::Tls_optimization tls_type = target->optimize_tls_ld(); - if (tls_type != tls::TLSOPT_NONE) - { - this->skip_next_tls_get_addr_call(); - ppc_object->set_tls_marker(); - } - } + tls::Tls_optimization tls_type = target->optimize_tls_ld(); + if (tls_type != tls::TLSOPT_NONE) + this->skip_next_tls_get_addr_call(); } // A STT_GNU_IFUNC symbol may require a PLT entry. @@ -8704,7 +8651,7 @@ Target_powerpc::Scan::global( case elfcpp::R_PPC64_TOC: { Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, GOT_TYPE_SMALL); if (parameters->options().output_is_position_independent()) { Address off = reloc.get_r_offset(); @@ -8714,15 +8661,12 @@ Target_powerpc::Scan::global( break; Reloc_section* rela_dyn = target->rela_dyn_section(layout); - Powerpc_relobj* symobj = ppc_object; - if (data_shndx != ppc_object->opd_shndx()) - symobj = static_cast - *>(gsym->object()); + Address got_off = got->g_o_t(); rela_dyn->add_output_section_relative(got->output_section(), elfcpp::R_POWERPC_RELATIVE, output_section, object, data_shndx, off, - symobj->toc_base_offset()); + got_off); } } break; @@ -8978,22 +8922,27 @@ Target_powerpc::Scan::global( { // The symbol requires a GOT entry. Output_data_got_powerpc* got; + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT16 + || r_type == elfcpp::R_PPC64_GOT16_DS) + ? GOT_TYPE_SMALL : GOT_TYPE_STANDARD); - got = target->got_section(symtab, layout); + got = target->got_section(symtab, layout, got_type); if (gsym->final_value_is_known()) { if (is_ifunc && (size == 32 || target->abiversion() >= 2)) - got->add_global_plt(gsym, GOT_TYPE_STANDARD); + got->add_global_plt(gsym, got_type, addend); else - got->add_global(gsym, GOT_TYPE_STANDARD); + got->add_global(gsym, got_type, addend); } - else if (!gsym->has_got_offset(GOT_TYPE_STANDARD)) + else if (!gsym->has_got_offset(got_type, addend)) { // If we are generating a shared object or a pie, this // symbol's GOT entry will be set by a dynamic relocation. unsigned int off = got->add_constant(0); - gsym->set_got_offset(GOT_TYPE_STANDARD, off); + gsym->set_got_offset(got_type, off, addend); Reloc_section* rela_dyn = target->rela_dyn_section(symtab, layout, is_ifunc); @@ -9006,12 +8955,13 @@ Target_powerpc::Scan::global( { unsigned int dynrel = (is_ifunc ? elfcpp::R_POWERPC_IRELATIVE : elfcpp::R_POWERPC_RELATIVE); - rela_dyn->add_global_relative(gsym, dynrel, got, off, 0, false); + rela_dyn->add_global_relative(gsym, dynrel, got, off, + addend, false); } else { unsigned int dynrel = elfcpp::R_POWERPC_GLOB_DAT; - rela_dyn->add_global(gsym, dynrel, got, off, 0); + rela_dyn->add_global(gsym, dynrel, got, off, addend); } } } @@ -9024,7 +8974,7 @@ Target_powerpc::Scan::global( case elfcpp::R_PPC64_TOC16_DS: case elfcpp::R_PPC64_TOC16_LO_DS: // We need a GOT section. - target->got_section(symtab, layout); + target->got_section(symtab, layout, GOT_TYPE_SMALL); break; case elfcpp::R_PPC64_GOT_TLSGD_PCREL34: @@ -9033,49 +8983,52 @@ Target_powerpc::Scan::global( case elfcpp::R_POWERPC_GOT_TLSGD16_HI: case elfcpp::R_POWERPC_GOT_TLSGD16_HA: { - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!ppc_object->no_tls_marker()) - { - bool final = gsym->final_value_is_known(); - tls_type = target->optimize_tls_gd(final); - } + bool final = gsym->final_value_is_known(); + tls::Tls_optimization tls_type = target->optimize_tls_gd(final); if (tls_type == tls::TLSOPT_NONE) { + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TLSGD16) + ? GOT_TYPE_SMALL_TLSGD : GOT_TYPE_TLSGD); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); Reloc_section* rela_dyn = target->rela_dyn_section(layout); - got->add_global_pair_with_rel(gsym, GOT_TYPE_TLSGD, rela_dyn, + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); + got->add_global_pair_with_rel(gsym, got_type, rela_dyn, elfcpp::R_POWERPC_DTPMOD, - elfcpp::R_POWERPC_DTPREL); + elfcpp::R_POWERPC_DTPREL, + addend); } else if (tls_type == tls::TLSOPT_TO_IE) { - if (!gsym->has_got_offset(GOT_TYPE_TPREL)) + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TLSGD16) + ? GOT_TYPE_SMALL_TPREL : GOT_TYPE_TPREL); + if (!gsym->has_got_offset(got_type)) { Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); Reloc_section* rela_dyn = target->rela_dyn_section(layout); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); if (gsym->is_undefined() || gsym->is_from_dynobj()) { - got->add_global_with_rel(gsym, GOT_TYPE_TPREL, rela_dyn, - elfcpp::R_POWERPC_TPREL); + got->add_global_with_rel(gsym, got_type, rela_dyn, + elfcpp::R_POWERPC_TPREL, addend); } else { unsigned int off = got->add_constant(0); - gsym->set_got_offset(GOT_TYPE_TPREL, off); + gsym->set_got_offset(got_type, off); unsigned int dynrel = elfcpp::R_POWERPC_TPREL; rela_dyn->add_symbolless_global_addend(gsym, dynrel, - got, off, 0); + got, off, addend); } } - ppc_object->set_tls_marker(); } else if (tls_type == tls::TLSOPT_TO_LE) { // no GOT relocs needed for Local Exec. - ppc_object->set_tls_marker(); } else gold_unreachable(); @@ -9088,9 +9041,7 @@ Target_powerpc::Scan::global( case elfcpp::R_POWERPC_GOT_TLSLD16_HI: case elfcpp::R_POWERPC_GOT_TLSLD16_HA: { - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!ppc_object->no_tls_marker()) - tls_type = target->optimize_tls_ld(); + tls::Tls_optimization tls_type = target->optimize_tls_ld(); if (tls_type == tls::TLSOPT_NONE) target->tlsld_got_offset(symtab, layout, object); else if (tls_type == tls::TLSOPT_TO_LE) @@ -9102,7 +9053,6 @@ Target_powerpc::Scan::global( gold_assert(os != NULL); os->set_needs_symtab_index(); } - ppc_object->set_tls_marker(); } else gold_unreachable(); @@ -9115,17 +9065,21 @@ Target_powerpc::Scan::global( case elfcpp::R_POWERPC_GOT_DTPREL16_HI: case elfcpp::R_POWERPC_GOT_DTPREL16_HA: { + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_DTPREL16) + ? GOT_TYPE_SMALL_DTPREL : GOT_TYPE_DTPREL); Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); if (!gsym->final_value_is_known() && (gsym->is_from_dynobj() || gsym->is_undefined() || gsym->is_preemptible())) - got->add_global_with_rel(gsym, GOT_TYPE_DTPREL, + got->add_global_with_rel(gsym, got_type, target->rela_dyn_section(layout), - elfcpp::R_POWERPC_DTPREL); + elfcpp::R_POWERPC_DTPREL, addend); else - got->add_global_tls(gsym, GOT_TYPE_DTPREL); + got->add_global_tls(gsym, got_type, addend); } break; @@ -9139,24 +9093,28 @@ Target_powerpc::Scan::global( tls::Tls_optimization tls_type = target->optimize_tls_ie(final); if (tls_type == tls::TLSOPT_NONE) { - if (!gsym->has_got_offset(GOT_TYPE_TPREL)) + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TPREL16) + ? GOT_TYPE_SMALL_TPREL : GOT_TYPE_TPREL); + if (!gsym->has_got_offset(got_type)) { Output_data_got_powerpc* got - = target->got_section(symtab, layout); + = target->got_section(symtab, layout, got_type); Reloc_section* rela_dyn = target->rela_dyn_section(layout); + uint64_t addend = size == 32 ? 0 : reloc.get_r_addend(); if (gsym->is_undefined() || gsym->is_from_dynobj()) { - got->add_global_with_rel(gsym, GOT_TYPE_TPREL, rela_dyn, - elfcpp::R_POWERPC_TPREL); + got->add_global_with_rel(gsym, got_type, rela_dyn, + elfcpp::R_POWERPC_TPREL, addend); } else { unsigned int off = got->add_constant(0); - gsym->set_got_offset(GOT_TYPE_TPREL, off); + gsym->set_got_offset(got_type, off); unsigned int dynrel = elfcpp::R_POWERPC_TPREL; rela_dyn->add_symbolless_global_addend(gsym, dynrel, - got, off, 0); + got, off, addend); } } } @@ -9811,22 +9769,35 @@ Target_powerpc::define_save_restore_funcs( template class Sort_toc_sections { + const Output_section_data* + small_got_section() const + { + return (static_cast*>( + parameters->sized_target<64, big_endian>()) + ->got_section(GOT_TYPE_SMALL)); + } + + int + rank(const Output_section::Input_section& isec) const + { + if (!isec.is_input_section()) + { + if (isec.output_section_data() == this->small_got_section()) + return 0; + return 2; + } + if (static_cast*>(isec.relobj()) + ->has_small_toc_reloc()) + return 1; + return 3; + } + public: bool operator()(const Output_section::Input_section& is1, const Output_section::Input_section& is2) const { - if (!is1.is_input_section() && is2.is_input_section()) - return true; - bool small1 - = (is1.is_input_section() - && (static_cast*>(is1.relobj()) - ->has_small_toc_reloc())); - bool small2 - = (is2.is_input_section() - && (static_cast*>(is2.relobj()) - ->has_small_toc_reloc())); - return small1 && !small2; + return rank(is1) < rank(is2); } }; @@ -9881,9 +9852,13 @@ Target_powerpc::do_finalize_sections( // Annoyingly, we need to make these sections now whether or // not we need them. If we delay until do_relax then we // need to mess with the relaxation machinery checkpointing. - this->got_section(symtab, layout); + this->got_section(symtab, layout, GOT_TYPE_STANDARD); this->make_brlt_section(layout); + // FIXME, maybe. Here we could run through all the got + // entries in the small got section, removing any duplicates + // found in the big got section and renumbering offsets. + if (parameters->options().toc_sort()) { Output_section* os = this->got_->output_section(); @@ -10453,20 +10428,11 @@ Target_powerpc::Relocate::relocate( switch (this->maybe_skip_tls_get_addr_call(target, r_type, gsym)) { case Track_tls::NOT_EXPECTED: - if (!parameters->options().shared() - && parameters->options().tls_optimize()) - { - // It is a hard error to see a __tls_get_addr call without - // marker relocs after seeing calls with marker relocs in the - // same object file, because dynamic relocation accounting - // will be wrong. - if (object->tls_opt_error()) - gold_error_at_location(relinfo, relnum, rela.get_r_offset(), - _("__tls_get_addr call lacks marker reloc")); - else - gold_warning_at_location(relinfo, relnum, rela.get_r_offset(), - _("__tls_get_addr call lacks marker reloc")); - } + // No warning. This will result in really old code without tls + // marker relocs being mis-optimised, but there shouldn't be too + // much of that code around. The problem with warning is that + // glibc and libphobos both construct direct calls to + // __tls_get_addr in a way that is harmless. break; case Track_tls::EXPECTED: // We have already complained. @@ -10616,8 +10582,7 @@ Target_powerpc::Relocate::relocate( { if (r_type != elfcpp::R_PPC64_PLT_PCREL34 && r_type != elfcpp::R_PPC64_PLT_PCREL34_NOTOC) - value -= (target->got_section()->output_section()->address() - + object->toc_base_offset()); + value -= target->toc_pointer(); } else if (parameters->options().output_is_position_independent()) { @@ -10629,8 +10594,7 @@ Target_powerpc::Relocate::relocate( + rela.get_r_addend()); } else - value -= (target->got_section()->address() - + target->got_section()->g_o_t()); + value -= target->toc_pointer(); } } else if (!has_plt_offset @@ -10653,25 +10617,23 @@ Target_powerpc::Relocate::relocate( } else if (is_got_reloc(r_type)) { + uint64_t addend = size == 32 ? 0 : rela.get_r_addend(); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT16 + || r_type == elfcpp::R_PPC64_GOT16_DS) + ? GOT_TYPE_SMALL : GOT_TYPE_STANDARD); if (gsym != NULL) - { - gold_assert(gsym->has_got_offset(GOT_TYPE_STANDARD)); - value = gsym->got_offset(GOT_TYPE_STANDARD); - } + value = gsym->got_offset(got_type, addend); else - { - gold_assert(object->local_has_got_offset(r_sym, GOT_TYPE_STANDARD)); - value = object->local_got_offset(r_sym, GOT_TYPE_STANDARD); - } + value = object->local_got_offset(r_sym, got_type, addend); if (r_type == elfcpp::R_PPC64_GOT_PCREL34) - value += target->got_section()->address(); + value += target->got_section(got_type)->address(); else - value -= target->got_section()->got_base_offset(object); + value -= target->got_base_offset(got_type); } else if (r_type == elfcpp::R_PPC64_TOC) { - value = (target->got_section()->output_section()->address() - + object->toc_base_offset()); + value = target->toc_pointer(); } else if (gsym != NULL && (r_type == elfcpp::R_POWERPC_REL24 @@ -10749,33 +10711,26 @@ Target_powerpc::Relocate::relocate( || r_type == elfcpp::R_PPC64_GOT_TLSGD_PCREL34) { // First instruction of a global dynamic sequence, arg setup insn. - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - { - bool final = gsym == NULL || gsym->final_value_is_known(); - tls_type = target->optimize_tls_gd(final); - } - enum Got_type got_type = GOT_TYPE_STANDARD; + bool final = gsym == NULL || gsym->final_value_is_known(); + tls::Tls_optimization tls_type = target->optimize_tls_gd(final); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TLSGD16) + ? GOT_TYPE_SMALL : GOT_TYPE_STANDARD); if (tls_type == tls::TLSOPT_NONE) - got_type = GOT_TYPE_TLSGD; + got_type = Got_type(got_type | GOT_TYPE_TLSGD); else if (tls_type == tls::TLSOPT_TO_IE) - got_type = GOT_TYPE_TPREL; - if (got_type != GOT_TYPE_STANDARD) + got_type = Got_type(got_type | GOT_TYPE_TPREL); + if ((got_type & ~GOT_TYPE_SMALL) != GOT_TYPE_STANDARD) { + uint64_t addend = size == 32 ? 0 : rela.get_r_addend(); if (gsym != NULL) - { - gold_assert(gsym->has_got_offset(got_type)); - value = gsym->got_offset(got_type); - } + value = gsym->got_offset(got_type, addend); else - { - gold_assert(object->local_has_got_offset(r_sym, got_type)); - value = object->local_got_offset(r_sym, got_type); - } + value = object->local_got_offset(r_sym, got_type, addend); if (r_type == elfcpp::R_PPC64_GOT_TLSGD_PCREL34) - value += target->got_section()->address(); + value += target->got_section(got_type)->address(); else - value -= target->got_section()->got_base_offset(object); + value -= target->got_base_offset(got_type); } if (tls_type == tls::TLSOPT_TO_IE) { @@ -10859,16 +10814,14 @@ Target_powerpc::Relocate::relocate( || r_type == elfcpp::R_PPC64_GOT_TLSLD_PCREL34) { // First instruction of a local dynamic sequence, arg setup insn. - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - tls_type = target->optimize_tls_ld(); + tls::Tls_optimization tls_type = target->optimize_tls_ld(); if (tls_type == tls::TLSOPT_NONE) { value = target->tlsld_got_offset(); if (r_type == elfcpp::R_PPC64_GOT_TLSLD_PCREL34) - value += target->got_section()->address(); + value += target->got_section(GOT_TYPE_SMALL)->address(); else - value -= target->got_section()->got_base_offset(object); + value -= target->got_base_offset(GOT_TYPE_SMALL); } else { @@ -10918,20 +10871,18 @@ Target_powerpc::Relocate::relocate( { // Accesses relative to a local dynamic sequence address, // no optimisation here. + uint64_t addend = size == 32 ? 0 : rela.get_r_addend(); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_DTPREL16) + ? GOT_TYPE_SMALL_DTPREL : GOT_TYPE_DTPREL); if (gsym != NULL) - { - gold_assert(gsym->has_got_offset(GOT_TYPE_DTPREL)); - value = gsym->got_offset(GOT_TYPE_DTPREL); - } + value = gsym->got_offset(got_type, addend); else - { - gold_assert(object->local_has_got_offset(r_sym, GOT_TYPE_DTPREL)); - value = object->local_got_offset(r_sym, GOT_TYPE_DTPREL); - } + value = object->local_got_offset(r_sym, got_type, addend); if (r_type == elfcpp::R_PPC64_GOT_DTPREL_PCREL34) - value += target->got_section()->address(); + value += target->got_section(got_type)->address(); else - value -= target->got_section()->got_base_offset(object); + value -= target->got_base_offset(got_type); } else if (r_type == elfcpp::R_POWERPC_GOT_TPREL16 || r_type == elfcpp::R_POWERPC_GOT_TPREL16_LO @@ -10944,20 +10895,18 @@ Target_powerpc::Relocate::relocate( tls::Tls_optimization tls_type = target->optimize_tls_ie(final); if (tls_type == tls::TLSOPT_NONE) { + uint64_t addend = size == 32 ? 0 : rela.get_r_addend(); + Got_type got_type = ((size == 32 + || r_type == elfcpp::R_POWERPC_GOT_TPREL16) + ? GOT_TYPE_SMALL_TPREL : GOT_TYPE_TPREL); if (gsym != NULL) - { - gold_assert(gsym->has_got_offset(GOT_TYPE_TPREL)); - value = gsym->got_offset(GOT_TYPE_TPREL); - } + value = gsym->got_offset(got_type, addend); else - { - gold_assert(object->local_has_got_offset(r_sym, GOT_TYPE_TPREL)); - value = object->local_got_offset(r_sym, GOT_TYPE_TPREL); - } + value = object->local_got_offset(r_sym, got_type, addend); if (r_type == elfcpp::R_PPC64_GOT_TPREL_PCREL34) - value += target->got_section()->address(); + value += target->got_section(got_type)->address(); else - value -= target->got_section()->got_base_offset(object); + value -= target->got_base_offset(got_type); } else { @@ -11006,12 +10955,8 @@ Target_powerpc::Relocate::relocate( // Second instruction of a global dynamic sequence, // the __tls_get_addr call this->expect_tls_get_addr_call(relinfo, relnum, rela.get_r_offset()); - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - { - bool final = gsym == NULL || gsym->final_value_is_known(); - tls_type = target->optimize_tls_gd(final); - } + bool final = gsym == NULL || gsym->final_value_is_known(); + tls::Tls_optimization tls_type = target->optimize_tls_gd(final); if (tls_type != tls::TLSOPT_NONE) { if (tls_type == tls::TLSOPT_TO_IE) @@ -11062,9 +11007,7 @@ Target_powerpc::Relocate::relocate( // Second instruction of a local dynamic sequence, // the __tls_get_addr call this->expect_tls_get_addr_call(relinfo, relnum, rela.get_r_offset()); - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - tls_type = target->optimize_tls_ld(); + tls::Tls_optimization tls_type = target->optimize_tls_ld(); if (tls_type == tls::TLSOPT_TO_LE) { bool is_pcrel = false; @@ -11196,11 +11139,13 @@ Target_powerpc::Relocate::relocate( if (stub_table != NULL) { const typename Stub_table::Branch_stub_ent* ent - = stub_table->find_long_branch_entry(object, value); + = stub_table->find_long_branch_entry(value); if (ent != NULL) { if (ent->save_res_) value = (value - target->savres_section()->address() + + stub_table->stub_address() + + stub_table->plt_size() + stub_table->branch_size()); else { @@ -11267,8 +11212,7 @@ Target_powerpc::Relocate::relocate( case elfcpp::R_PPC64_TOC16_DS: case elfcpp::R_PPC64_TOC16_LO_DS: // Subtract the TOC base address. - value -= (target->got_section()->output_section()->address() - + object->toc_base_offset()); + value -= target->toc_pointer(); break; case elfcpp::R_POWERPC_SECTOFF: @@ -11591,8 +11535,7 @@ Target_powerpc::Relocate::relocate( case elfcpp::R_PPC64_ENTRY: if (size == 64) { - value = (target->got_section()->output_section()->address() - + object->toc_base_offset()); + value = target->toc_pointer(); if (value + 0x80008000 <= 0xffffffff && !parameters->options().output_is_position_independent()) { @@ -12554,12 +12497,8 @@ Target_powerpc::relocate_relocs( { // First instruction of a global dynamic sequence, // arg setup insn. - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - { - bool final = gsym == NULL || gsym->final_value_is_known(); - tls_type = this->optimize_tls_gd(final); - } + bool final = gsym == NULL || gsym->final_value_is_known(); + tls::Tls_optimization tls_type = this->optimize_tls_gd(final); switch (tls_type) { case tls::TLSOPT_TO_IE: @@ -12587,9 +12526,7 @@ Target_powerpc::relocate_relocs( { // First instruction of a local dynamic sequence, // arg setup insn. - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - tls_type = this->optimize_tls_ld(); + tls::Tls_optimization tls_type = this->optimize_tls_ld(); if (tls_type == tls::TLSOPT_TO_LE) { if (r_type == elfcpp::R_POWERPC_GOT_TLSLD16 @@ -12634,12 +12571,8 @@ Target_powerpc::relocate_relocs( { // Second instruction of a global dynamic sequence, // the __tls_get_addr call - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - { - bool final = gsym == NULL || gsym->final_value_is_known(); - tls_type = this->optimize_tls_gd(final); - } + bool final = gsym == NULL || gsym->final_value_is_known(); + tls::Tls_optimization tls_type = this->optimize_tls_gd(final); switch (tls_type) { case tls::TLSOPT_TO_IE: @@ -12660,9 +12593,7 @@ Target_powerpc::relocate_relocs( { // Second instruction of a local dynamic sequence, // the __tls_get_addr call - tls::Tls_optimization tls_type = tls::TLSOPT_NONE; - if (!object->no_tls_marker()) - tls_type = this->optimize_tls_ld(); + tls::Tls_optimization tls_type = this->optimize_tls_ld(); if (tls_type == tls::TLSOPT_TO_LE) { const Output_section* os = relinfo->layout->tls_segment() @@ -12788,23 +12719,29 @@ int64_t Target_powerpc::do_tls_offset_for_local( const Relobj* object, unsigned int symndx, - unsigned int got_indx) const + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const { const Powerpc_relobj* ppc_object = static_cast*>(object); if (ppc_object->local_symbol(symndx)->is_tls_symbol()) { - for (Got_type got_type = GOT_TYPE_TLSGD; - got_type <= GOT_TYPE_TPREL; + for (Got_type got_type = (size == 32 + ? GOT_TYPE_SMALL_TLSGD : GOT_TYPE_TLSGD); + got_type <= GOT_TYPE_SMALL_TPREL; got_type = Got_type(got_type + 1)) - if (ppc_object->local_has_got_offset(symndx, got_type)) + if (got_type != GOT_TYPE_SMALL + && ppc_object->local_has_got_offset(symndx, got_type, addend)) { - unsigned int off = ppc_object->local_got_offset(symndx, got_type); - if (got_type == GOT_TYPE_TLSGD) + unsigned int off + = ppc_object->local_got_offset(symndx, got_type, addend); + if ((got_type & ~GOT_TYPE_SMALL) == GOT_TYPE_TLSGD) off += size / 8; - if (off == got_indx * (size / 8)) + if (off == got_indx * (size / 8) + && (size == 32 || got == this->got_section(got_type))) { - if (got_type == GOT_TYPE_TPREL) + if ((got_type & ~GOT_TYPE_SMALL) == GOT_TYPE_TPREL) return -tp_offset; else return -dtp_offset; @@ -12820,21 +12757,26 @@ template int64_t Target_powerpc::do_tls_offset_for_global( Symbol* gsym, - unsigned int got_indx) const + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const { if (gsym->type() == elfcpp::STT_TLS) { - for (Got_type got_type = GOT_TYPE_TLSGD; - got_type <= GOT_TYPE_TPREL; + for (Got_type got_type = (size == 32 + ? GOT_TYPE_SMALL_TLSGD : GOT_TYPE_TLSGD); + got_type <= GOT_TYPE_SMALL_TPREL; got_type = Got_type(got_type + 1)) - if (gsym->has_got_offset(got_type)) + if (got_type != GOT_TYPE_SMALL + && gsym->has_got_offset(got_type, addend)) { - unsigned int off = gsym->got_offset(got_type); - if (got_type == GOT_TYPE_TLSGD) + unsigned int off = gsym->got_offset(got_type, addend); + if ((got_type & ~GOT_TYPE_SMALL) == GOT_TYPE_TLSGD) off += size / 8; - if (off == got_indx * (size / 8)) + if (off == got_indx * (size / 8) + && (size == 32 || got == this->got_section(got_type))) { - if (got_type == GOT_TYPE_TPREL) + if ((got_type & ~GOT_TYPE_SMALL) == GOT_TYPE_TPREL) return -tp_offset; else return -dtp_offset; diff --git a/gold/s390.cc b/gold/s390.cc index 600e70810..a515f801c 100644 --- a/gold/s390.cc +++ b/gold/s390.cc @@ -401,12 +401,17 @@ class Target_s390 : public Sized_target int64_t do_tls_offset_for_local(const Relobj* object, unsigned int symndx, - unsigned int got_indx) const; + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const; // Return the offset to use for the GOT_INDX'th got entry which is // for global tls symbol GSYM. int64_t - do_tls_offset_for_global(Symbol* gsym, unsigned int got_indx) const; + do_tls_offset_for_global(Symbol* gsym, + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const; // This function should be defined in targets that can use relocation // types to determine (implemented in local_reloc_may_be_function_pointer @@ -4218,7 +4223,9 @@ int64_t Target_s390::do_tls_offset_for_local( const Relobj*, unsigned int, - unsigned int) const + Output_data_got_base*, + unsigned int, + uint64_t) const { // The only way we can get called is when IEENT/GOTIE12/GOTIE20 // couldn't be optimised to LE. @@ -4232,7 +4239,9 @@ template int64_t Target_s390::do_tls_offset_for_global( Symbol*, - unsigned int) const + Output_data_got_base*, + unsigned int, + uint64_t) const { Output_segment* tls_segment = layout_->tls_segment(); return -tls_segment->memsz(); diff --git a/gold/symtab.h b/gold/symtab.h index 104429a5a..a60cfb9ca 100644 --- a/gold/symtab.h +++ b/gold/symtab.h @@ -428,22 +428,23 @@ class Symbol // Return whether this symbol has an entry in the GOT section. // For a TLS symbol, this GOT entry will hold its tp-relative offset. bool - has_got_offset(unsigned int got_type) const - { return this->got_offsets_.get_offset(got_type) != -1U; } + has_got_offset(unsigned int got_type, uint64_t addend = 0) const + { return this->got_offsets_.get_offset(got_type, addend) != -1U; } // Return the offset into the GOT section of this symbol. unsigned int - got_offset(unsigned int got_type) const + got_offset(unsigned int got_type, uint64_t addend = 0) const { - unsigned int got_offset = this->got_offsets_.get_offset(got_type); + unsigned int got_offset = this->got_offsets_.get_offset(got_type, addend); gold_assert(got_offset != -1U); return got_offset; } // Set the GOT offset of this symbol. void - set_got_offset(unsigned int got_type, unsigned int got_offset) - { this->got_offsets_.set_offset(got_type, got_offset); } + set_got_offset(unsigned int got_type, unsigned int got_offset, + uint64_t addend = 0) + { this->got_offsets_.set_offset(got_type, got_offset, addend); } // Return the GOT offset list. const Got_offset_list* diff --git a/gold/target.h b/gold/target.h index 24f7111e9..b9a27d5a0 100644 --- a/gold/target.h +++ b/gold/target.h @@ -289,14 +289,19 @@ class Target int64_t tls_offset_for_local(const Relobj* object, unsigned int symndx, - unsigned int got_indx) const - { return do_tls_offset_for_local(object, symndx, got_indx); } + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const + { return do_tls_offset_for_local(object, symndx, got, got_indx, addend); } // Return the offset to use for the GOT_INDX'th got entry which is // for global tls symbol GSYM. int64_t - tls_offset_for_global(Symbol* gsym, unsigned int got_indx) const - { return do_tls_offset_for_global(gsym, got_indx); } + tls_offset_for_global(Symbol* gsym, + Output_data_got_base* got, + unsigned int got_indx, + uint64_t addend) const + { return do_tls_offset_for_global(gsym, got, got_indx, addend); } // For targets that use function descriptors, if LOC is the location // of a function, modify it to point at the function entry location. @@ -648,11 +653,14 @@ class Target { gold_unreachable(); } virtual int64_t - do_tls_offset_for_local(const Relobj*, unsigned int, unsigned int) const + do_tls_offset_for_local(const Relobj*, unsigned int, + Output_data_got_base*, unsigned int, + uint64_t) const { gold_unreachable(); } virtual int64_t - do_tls_offset_for_global(Symbol*, unsigned int) const + do_tls_offset_for_global(Symbol*, Output_data_got_base*, unsigned int, + uint64_t) const { gold_unreachable(); } virtual void diff --git a/include/ChangeLog b/include/ChangeLog index 11001a3d1..0e99cf391 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,12 @@ +2021-09-07 Luis Machado + + Revert: [AArch64] MTE corefile support + + 2021-05-21 Luis Machado + + * elf/common.h (NT_MEMTAG): New constant. + (NT_MEMTAG_TYPE_AARCH_MTE): New constant. + 2021-07-03 Nick Clifton * 2.37 release branch created. diff --git a/include/elf/common.h b/include/elf/common.h index 0cca28673..7eefef9c7 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -685,12 +685,6 @@ /* The range 0xff000000 to 0xffffffff is set aside for notes that don't originate from any particular operating system. */ #define NT_GDB_TDESC 0xff000000 /* Contains copy of GDB's target description XML. */ -#define NT_MEMTAG 0xff000001 /* Contains a copy of the memory tags. */ - -/* NT_MEMTAG record types. */ - -/* ARM-specific NT_MEMTAG types. */ -#define NT_MEMTAG_TYPE_AARCH_MTE 0x400 /* MTE memory tags for AArch64. */ /* Note segments for core files on dir-style procfs systems. */ diff --git a/ld/ChangeLog b/ld/ChangeLog index 79304e121..ee3259a06 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2021-09-30 Dimitar Dimitrov + + * scripttempl/pru.sc (.resource_table): Align the output + section, not the first symbol. + 2021-07-18 Nick Clifton * 2.37 release. @@ -999,20 +1004,6 @@ * configure.tgt: Add *-*-genode* as a target for AArch64 and x86. -2021-02-01 Alan Modra - - * ldgram.y (defsym_expr): Use assignment rule. - * ldlex.h (ldlex_defsym): Delete. - * ldlex.l (DEFSYMEXP, ldlex_defsym): Delete. - -2021-02-01 Alan Modra - - * ldgram.y (section): Call ldlex_backup. Remove empty action. - * ldlex.h (ldlex_backup): Declare. - * ldlex.l (NAME): Don't use NOCFILENAMECHAR set of - chars, use SYMBOLNAMECHAR. - (ldlex_backup): New function. - 2021-02-01 Alan Modra * ldgram.y: Whitespace fixes. diff --git a/ld/ldgram.y b/ld/ldgram.y index dd911f461..7f8f03570 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -176,9 +176,12 @@ filename: NAME; defsym_expr: - { ldlex_expression(); } - assignment - { ldlex_popstate(); } + { ldlex_defsym(); } + NAME '=' exp + { + ldlex_popstate(); + lang_add_assignment (exp_defsym ($2, $4)); + } ; /* SYNTAX WITHIN AN MRI SCRIPT FILE */ @@ -1068,15 +1071,11 @@ section: NAME { ldlex_expression(); } '}' { ldlex_popstate (); ldlex_expression (); } memspec_opt memspec_at_opt phdr_opt fill_opt { - if (yychar == NAME) - { - yyclearin; - ldlex_backup (); - } ldlex_popstate (); lang_leave_output_section_statement ($18, $15, $17, $16); } opt_comma + {} | OVERLAY { ldlex_expression (); } opt_exp_without_type opt_nocrossrefs opt_at opt_subalign @@ -1090,11 +1089,6 @@ section: NAME { ldlex_expression(); } { ldlex_popstate (); ldlex_expression (); } memspec_opt memspec_at_opt phdr_opt fill_opt { - if (yychar == NAME) - { - yyclearin; - ldlex_backup (); - } ldlex_popstate (); lang_leave_overlay ($5, (int) $4, $16, $13, $15, $14); diff --git a/ld/ldlex.h b/ld/ldlex.h index 9e8bf5fb8..f035ce8ae 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -189,10 +189,10 @@ extern void ldlex_inputlist (void); extern void ldlex_mri_script (void); extern void ldlex_version_script (void); extern void ldlex_version_file (void); +extern void ldlex_defsym (void); extern void ldlex_expression (void); extern void ldlex_both (void); extern void ldlex_popstate (void); -extern void ldlex_backup (void); extern const char* ldlex_filename (void); /* In lexsup.c. */ diff --git a/ld/ldlex.l b/ld/ldlex.l index c1b152635..237892c0e 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -79,6 +79,7 @@ static void lex_warn_invalid (char *where, char *what); SCRIPT definitely in a script INPUTLIST definitely in a script, a filename-list BOTH either EXPRESSION or SCRIPT + DEFSYMEXP in an argument to -defsym MRI in an MRI script VERS_START starting a Sun style mapfile VERS_SCRIPT a Sun style mapfile @@ -106,6 +107,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* %s INPUTLIST %s EXPRESSION %s BOTH +%s DEFSYMEXP %s MRI %s VERS_START %s VERS_SCRIPT @@ -131,6 +133,12 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* "/*" { comment (); } +"-" { RTOKEN('-');} +"+" { RTOKEN('+');} +{SYMBOLNAMECHAR1}{SYMBOLNAMECHAR}* { yylval.name = xstrdup (yytext); + return NAME; } +"=" { RTOKEN('='); } + "$"([0-9A-Fa-f])+ { yylval.integer = bfd_scan_vma (yytext + 1, 0, 16); yylval.bigint.str = NULL; @@ -162,7 +170,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* yylval.bigint.str = NULL; return INT; } -((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? { +((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? { char *s = yytext; int ibase = 0; @@ -377,7 +385,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* yylval.name = xstrdup (yytext + 2); return LNAME; } -{SYMBOLNAMECHAR1}{SYMBOLNAMECHAR}* { +{SYMBOLNAMECHAR1}{NOCFILENAMECHAR}* { yylval.name = xstrdup (yytext); return NAME; } @@ -472,7 +480,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* } . lex_warn_invalid (" in script", yytext); -. lex_warn_invalid (" in expression", yytext); +. lex_warn_invalid (" in expression", yytext); %% @@ -601,6 +609,13 @@ ldlex_version_file (void) BEGIN (VERS_SCRIPT); } +void +ldlex_defsym (void) +{ + *(state_stack_p)++ = yy_start; + BEGIN (DEFSYMEXP); +} + void ldlex_expression (void) { @@ -621,16 +636,6 @@ ldlex_popstate (void) yy_start = *(--state_stack_p); } -/* In cases where the parser needs to look ahead and the context - changes from expression to script or vice-versa, throw away a - NAME. What constitutes a NAME depends on context. */ - -void -ldlex_backup (void) -{ - yyless (0); -} - /* Return the current file name, or the previous file if no file is current. */ diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc index b2c941b79..97d8be0a0 100644 --- a/ld/scripttempl/pru.sc +++ b/ld/scripttempl/pru.sc @@ -151,11 +151,10 @@ SECTIONS ${RELOCATING+ PROVIDE (_data_end = .) ; } } ${RELOCATING+ > dmem } - .resource_table ${RELOCATING-0} : + /* Linux remoteproc loader requires the resource_table section + start address to be aligned to 8 bytes. */ + .resource_table ${RELOCATING-0} ${RELOCATING+ ALIGN(8)} : { - /* Linux remoteproc loader requires the resource table address - to be aligned to 8 bytes. */ - ${RELOCATING+. = ALIGN(8);} KEEP (*(.resource_table)) } ${RELOCATING+ > dmem} diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp index def69e43a..999d911ce 100644 --- a/ld/testsuite/ld-plugin/lto.exp +++ b/ld/testsuite/ld-plugin/lto.exp @@ -687,6 +687,40 @@ if { [is_elf_format] && [check_lto_shared_available] } { } } +run_cc_link_tests [list \ + [list \ + "Build pr28138.a" \ + "-T" "" \ + {pr28138-1.c pr28138-2.c pr28138-3.c pr28138-4.c pr28138-5.c \ + pr28138-6.c pr28138-7.c} {} "pr28138.a" \ + ] \ + [list \ + "Build pr28138.o" \ + "" "" \ + {pr28138.c} {} \ + ] \ +] + +set exec_output [run_host_cmd "sh" \ + "-c \"ulimit -n 20; \ + $CC -Btmpdir/ld -o tmpdir/pr28138 \ + tmpdir/pr28138.o tmpdir/pr28138.a\""] +set exec_output [prune_warnings $exec_output] +if [string match "" $exec_output] then { + if { [isnative] } { + set exec_output [run_host_cmd "tmpdir/pr28138" ""] + if [string match "PASS" $exec_output] then { + pass "PR ld/28138" + } else { + fail "PR ld/28138" + } + } else { + pass "PR ld/28138" + } +} else { + fail "PR ld/28138" +} + set testname "Build liblto-11.a" remote_file host delete "tmpdir/liblto-11.a" set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"] diff --git a/ld/testsuite/ld-plugin/pr28138-1.c b/ld/testsuite/ld-plugin/pr28138-1.c new file mode 100644 index 000000000..51d119e16 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-1.c @@ -0,0 +1,6 @@ +extern int a0(void); +int +a1(void) +{ + return 1 + a0(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-2.c b/ld/testsuite/ld-plugin/pr28138-2.c new file mode 100644 index 000000000..1120cd797 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-2.c @@ -0,0 +1,6 @@ +extern int a1(void); +int +a2(void) +{ + return 1 + a1(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-3.c b/ld/testsuite/ld-plugin/pr28138-3.c new file mode 100644 index 000000000..ec464947e --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-3.c @@ -0,0 +1,6 @@ +extern int a2(void); +int +a3(void) +{ + return 1 + a2(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-4.c b/ld/testsuite/ld-plugin/pr28138-4.c new file mode 100644 index 000000000..475701b2c --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-4.c @@ -0,0 +1,6 @@ +extern int a3(void); +int +a4(void) +{ + return 1 + a3(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-5.c b/ld/testsuite/ld-plugin/pr28138-5.c new file mode 100644 index 000000000..e24f86c36 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-5.c @@ -0,0 +1,6 @@ +extern int a4(void); +int +a5(void) +{ + return 1 + a4(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-6.c b/ld/testsuite/ld-plugin/pr28138-6.c new file mode 100644 index 000000000..b5b938bdb --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-6.c @@ -0,0 +1,6 @@ +extern int a5(void); +int +a6(void) +{ + return 1 + a5(); +} diff --git a/ld/testsuite/ld-plugin/pr28138-7.c b/ld/testsuite/ld-plugin/pr28138-7.c new file mode 100644 index 000000000..4ef75bf0f --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138-7.c @@ -0,0 +1,6 @@ +extern int a6(void); +int +a7(void) +{ + return 1 + a6(); +} diff --git a/ld/testsuite/ld-plugin/pr28138.c b/ld/testsuite/ld-plugin/pr28138.c new file mode 100644 index 000000000..68252c9f3 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr28138.c @@ -0,0 +1,20 @@ +#include + +extern int a7(void); + +int +a0(void) +{ + return 0; +} + +int +main() +{ + if (a7() == 7) + { + printf ("PASS\n"); + return 0; + } + return 1; +} diff --git a/ld/testsuite/ld-powerpc/tlsexe.r b/ld/testsuite/ld-powerpc/tlsexe.r index 13c3efb12..bae5aac06 100644 --- a/ld/testsuite/ld-powerpc/tlsexe.r +++ b/ld/testsuite/ld-powerpc/tlsexe.r @@ -70,6 +70,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexe32.r b/ld/testsuite/ld-powerpc/tlsexe32.r index 9017069ad..43db7379a 100644 --- a/ld/testsuite/ld-powerpc/tlsexe32.r +++ b/ld/testsuite/ld-powerpc/tlsexe32.r @@ -69,6 +69,18 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.got +.* SECTION +LOCAL +DEFAULT +12 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexe32no.r b/ld/testsuite/ld-powerpc/tlsexe32no.r index 9715b6bc6..e254eeadf 100644 --- a/ld/testsuite/ld-powerpc/tlsexe32no.r +++ b/ld/testsuite/ld-powerpc/tlsexe32no.r @@ -70,6 +70,18 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.got +.* SECTION +LOCAL +DEFAULT +12 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexeno.r b/ld/testsuite/ld-powerpc/tlsexeno.r index d4dcebf4e..59e2f89ff 100644 --- a/ld/testsuite/ld-powerpc/tlsexeno.r +++ b/ld/testsuite/ld-powerpc/tlsexeno.r @@ -71,6 +71,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexenors.r b/ld/testsuite/ld-powerpc/tlsexenors.r index aec6a8dec..3a9af781c 100644 --- a/ld/testsuite/ld-powerpc/tlsexenors.r +++ b/ld/testsuite/ld-powerpc/tlsexenors.r @@ -71,6 +71,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexers.r b/ld/testsuite/ld-powerpc/tlsexers.r index bb8523105..0c623b6ea 100644 --- a/ld/testsuite/ld-powerpc/tlsexers.r +++ b/ld/testsuite/ld-powerpc/tlsexers.r @@ -70,6 +70,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +8 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsexetoc.r b/ld/testsuite/ld-powerpc/tlsexetoc.r index 6e676e15d..4c6b9189b 100644 --- a/ld/testsuite/ld-powerpc/tlsexetoc.r +++ b/ld/testsuite/ld-powerpc/tlsexetoc.r @@ -71,6 +71,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* TLS +LOCAL +DEFAULT +8 gd4 .* TLS +LOCAL +DEFAULT +8 ld4 diff --git a/ld/testsuite/ld-powerpc/tlsexetocrs.r b/ld/testsuite/ld-powerpc/tlsexetocrs.r index 36919c7ae..a41fd2e10 100644 --- a/ld/testsuite/ld-powerpc/tlsexetocrs.r +++ b/ld/testsuite/ld-powerpc/tlsexetocrs.r @@ -71,6 +71,19 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.interp +.* SECTION +LOCAL +DEFAULT +2 \.hash +.* SECTION +LOCAL +DEFAULT +3 \.dynsym +.* SECTION +LOCAL +DEFAULT +4 \.dynstr +.* SECTION +LOCAL +DEFAULT +5 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +6 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +7 \.text +.* SECTION +LOCAL +DEFAULT +8 \.tdata +.* SECTION +LOCAL +DEFAULT +9 \.tbss +.* SECTION +LOCAL +DEFAULT +10 \.dynamic +.* SECTION +LOCAL +DEFAULT +11 \.opd +.* SECTION +LOCAL +DEFAULT +12 \.got +.* SECTION +LOCAL +DEFAULT +13 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* TLS +LOCAL +DEFAULT +8 gd4 .* TLS +LOCAL +DEFAULT +8 ld4 diff --git a/ld/testsuite/ld-powerpc/tlsget.d b/ld/testsuite/ld-powerpc/tlsget.d index 31ee8482d..f419fca4d 100644 --- a/ld/testsuite/ld-powerpc/tlsget.d +++ b/ld/testsuite/ld-powerpc/tlsget.d @@ -8,6 +8,16 @@ Disassembly of section \.text: +.* <.*\.plt_call\..*>: +.*: (04 10 .. ..|.. .. 10 04) pld r12,.* +.*: (e5 80 .. ..|.. .. 80 e5) +.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 +.*: (4e 80 04 20|20 04 80 4e) bctr +.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\) +.*: (e9 82 .. ..|.. .. 82 e9) ld r12,.*\(r2\) +.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 +.*: (4e 80 04 20|20 04 80 4e) bctr + .* <.*\.plt_call\.__tls_get_addr_opt.*>: .*: (e8 03 00 00|00 00 03 e8) ld r0,0\(r3\) .*: (e9 83 00 08|08 00 83 e9) ld r12,8\(r3\) @@ -38,17 +48,6 @@ Disassembly of section \.text: .*: (e8 01 00 08|08 00 01 e8) ld r0,8\(r1\) .*: (7c 08 03 a6|a6 03 08 7c) mtlr r0 .*: (4e 80 00 20|20 00 80 4e) blr - -.* <.*\.plt_call\..*>: -.*: (60 00 00 00|00 00 00 60) nop -.*: (04 10 .. ..|.. .. 10 04) pld r12,.* -.*: (e5 80 .. ..|.. .. 80 e5) -.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 -.*: (4e 80 04 20|20 04 80 4e) bctr -.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\) -.*: (e9 82 .. ..|.. .. 82 e9) ld r12,.*\(r2\) -.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 -.*: (4e 80 04 20|20 04 80 4e) bctr #... .* <_start>: @@ -60,7 +59,7 @@ Disassembly of section \.text: .*: (4b ff .. ..|.. .. ff 4b) bl .* <.*\.plt_call\.__tls_get_addr_opt.*\+0x30> .*: (60 00 00 00|00 00 00 60) nop .*: (4b ff .. ..|.. .. ff 4b) bl .* <.*\.plt_call\..*:[^\+]*> -.*: (4b ff .. ..|.. .. ff 4b) bl .* <.*.plt_call\..*:.*\+0x14> +.*: (4b ff .. ..|.. .. ff 4b) bl .* <.*.plt_call\..*:.*\+0x10> .*: (e8 41 00 18|18 00 41 e8) ld r2,24\(r1\) .* : diff --git a/ld/testsuite/ld-powerpc/tlsget.wf b/ld/testsuite/ld-powerpc/tlsget.wf index 181bb397f..bc9ccadf4 100644 --- a/ld/testsuite/ld-powerpc/tlsget.wf +++ b/ld/testsuite/ld-powerpc/tlsget.wf @@ -9,8 +9,8 @@ Contents of the .eh_frame section: Augmentation data: 1b DW_CFA_def_cfa: r1 ofs 0 -0+14 0+14 0+18 FDE cie=0+ pc=0+280..0+318 - DW_CFA_advance_loc: 96 to 0+2e0 +0+14 0+14 0+18 FDE cie=0+ pc=0+280..0+314 + DW_CFA_advance_loc: 128 to 0+300 DW_CFA_offset_extended_sf: r65 at cfa\+8 DW_CFA_advance_loc: 16 to .* DW_CFA_restore_extended: r65 diff --git a/ld/testsuite/ld-powerpc/tlsget2.d b/ld/testsuite/ld-powerpc/tlsget2.d index 037980759..13dc64b59 100644 --- a/ld/testsuite/ld-powerpc/tlsget2.d +++ b/ld/testsuite/ld-powerpc/tlsget2.d @@ -8,6 +8,14 @@ Disassembly of section \.text: +.* <.*\.plt_call\..*>: +.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\) +.*: (60 00 00 00|00 00 00 60) nop +.*: (04 10 .. ..|.. .. 10 04) pld r12,.* +.*: (e5 80 .. ..|.. .. 80 e5) +.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 +.*: (4e 80 04 20|20 04 80 4e) bctr + .* <.*\.plt_call\.__tls_get_addr_opt.*>: .*: (e8 03 00 00|00 00 03 e8) ld r0,0\(r3\) .*: (e9 83 00 08|08 00 83 e9) ld r12,8\(r3\) @@ -27,14 +35,6 @@ Disassembly of section \.text: .*: (e8 01 00 08|08 00 01 e8) ld r0,8\(r1\) .*: (7c 08 03 a6|a6 03 08 7c) mtlr r0 .*: (4e 80 00 20|20 00 80 4e) blr - -.* <.*\.plt_call\..*>: -.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\) -.*: (60 00 00 00|00 00 00 60) nop -.*: (04 10 .. ..|.. .. 10 04) pld r12,.* -.*: (e5 80 .. ..|.. .. 80 e5) -.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12 -.*: (4e 80 04 20|20 04 80 4e) bctr #... .* <_start>: diff --git a/ld/testsuite/ld-powerpc/tlsget2.wf b/ld/testsuite/ld-powerpc/tlsget2.wf index 0d09c7017..359e62de7 100644 --- a/ld/testsuite/ld-powerpc/tlsget2.wf +++ b/ld/testsuite/ld-powerpc/tlsget2.wf @@ -10,7 +10,7 @@ Contents of the .eh_frame section: DW_CFA_def_cfa: r1 ofs 0 0+14 0+14 0+18 FDE cie=0+ pc=0+280..0+2e0 - DW_CFA_advance_loc: 52 to 0+2b4 + DW_CFA_advance_loc: 76 to 0+2cc DW_CFA_offset_extended_sf: r65 at cfa\+8 DW_CFA_advance_loc: 16 to .* DW_CFA_restore_extended: r65 diff --git a/ld/testsuite/ld-powerpc/tlsso.r b/ld/testsuite/ld-powerpc/tlsso.r index d56b2a046..b0453fb19 100644 --- a/ld/testsuite/ld-powerpc/tlsso.r +++ b/ld/testsuite/ld-powerpc/tlsso.r @@ -91,6 +91,18 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.hash +.* SECTION +LOCAL +DEFAULT +2 \.dynsym +.* SECTION +LOCAL +DEFAULT +3 \.dynstr +.* SECTION +LOCAL +DEFAULT +4 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +5 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +6 \.text +.* SECTION +LOCAL +DEFAULT +7 \.tdata +.* SECTION +LOCAL +DEFAULT +8 \.tbss +.* SECTION +LOCAL +DEFAULT +9 \.dynamic +.* SECTION +LOCAL +DEFAULT +10 \.opd +.* SECTION +LOCAL +DEFAULT +11 \.got +.* SECTION +LOCAL +DEFAULT +12 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +7 gd4 diff --git a/ld/testsuite/ld-powerpc/tlsso32.r b/ld/testsuite/ld-powerpc/tlsso32.r index 0202440be..3f92f8066 100644 --- a/ld/testsuite/ld-powerpc/tlsso32.r +++ b/ld/testsuite/ld-powerpc/tlsso32.r @@ -89,6 +89,17 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND +.* SECTION +LOCAL +DEFAULT +1 \.hash +.* SECTION +LOCAL +DEFAULT +2 \.dynsym +.* SECTION +LOCAL +DEFAULT +3 \.dynstr +.* SECTION +LOCAL +DEFAULT +4 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +5 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +6 \.text +.* SECTION +LOCAL +DEFAULT +7 \.tdata +.* SECTION +LOCAL +DEFAULT +8 \.tbss +.* SECTION +LOCAL +DEFAULT +9 \.dynamic +.* SECTION +LOCAL +DEFAULT +10 \.got +.* SECTION +LOCAL +DEFAULT +11 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* NOTYPE +LOCAL +DEFAULT +ABS TLSMARK .* TLS +LOCAL +DEFAULT +7 gd4 diff --git a/ld/testsuite/ld-powerpc/tlstocso.r b/ld/testsuite/ld-powerpc/tlstocso.r index 026d483fc..1011b7c34 100644 --- a/ld/testsuite/ld-powerpc/tlstocso.r +++ b/ld/testsuite/ld-powerpc/tlstocso.r @@ -84,6 +84,18 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * +.* SECTION +LOCAL +DEFAULT +1 \.hash +.* SECTION +LOCAL +DEFAULT +2 \.dynsym +.* SECTION +LOCAL +DEFAULT +3 \.dynstr +.* SECTION +LOCAL +DEFAULT +4 \.rela\.dyn +.* SECTION +LOCAL +DEFAULT +5 \.rela\.plt +.* SECTION +LOCAL +DEFAULT +6 \.text +.* SECTION +LOCAL +DEFAULT +7 \.tdata +.* SECTION +LOCAL +DEFAULT +8 \.tbss +.* SECTION +LOCAL +DEFAULT +9 \.dynamic +.* SECTION +LOCAL +DEFAULT +10 \.opd +.* SECTION +LOCAL +DEFAULT +11 \.got +.* SECTION +LOCAL +DEFAULT +12 \.plt .* FILE +LOCAL +DEFAULT +ABS .* .* TLS +LOCAL +DEFAULT +7 gd4 .* TLS +LOCAL +DEFAULT +7 ld4 diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 8e39fd28e..3f749455f 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2021-07-19 Christopher Wellons + + * rust-demangle.c (struct rust_demangler): Change type of + "recursion" to unsigned. + (RUST_NO_RECURSION_LIMIT): Similarly in cast. + 2021-07-15 Nick Clifton PR 99935 diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c index df09b7b8f..ac1eb8eb0 100644 --- a/libiberty/rust-demangle.c +++ b/libiberty/rust-demangle.c @@ -75,10 +75,10 @@ struct rust_demangler int version; /* Recursion depth. */ - uint recursion; + unsigned recursion; /* Maximum number of times demangle_path may be called recursively. */ #define RUST_MAX_RECURSION_COUNT 1024 -#define RUST_NO_RECURSION_LIMIT ((uint) -1) +#define RUST_NO_RECURSION_LIMIT ((unsigned) -1) uint64_t bound_lifetime_depth; }; diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c index 5545dacff..64453d945 100644 --- a/opcodes/s390-opc.c +++ b/opcodes/s390-opc.c @@ -442,6 +442,7 @@ const struct s390_operand s390_operands[] = #define INSTR_RX_URRD 4, { U4_8,D_20,X_12,B_16,0,0 } /* e.g. bc */ #define INSTR_SI_RD 4, { D_20,B_16,0,0,0,0 } /* e.g. lpsw */ #define INSTR_SI_URD 4, { D_20,B_16,U8_8,0,0,0 } /* e.g. cli */ +#define INSTR_SIY_RD 6, { D20_20,B_16,0,0,0,0 } /* e.g. lpswey*/ #define INSTR_SIY_URD 6, { D20_20,B_16,U8_8,0,0,0 } /* e.g. tmy */ #define INSTR_SIY_IRD 6, { D20_20,B_16,I8_8,0,0,0 } /* e.g. asi */ #define INSTR_SIL_RDI 6, { D_20,B_16,I16_32,0,0,0 } /* e.g. chhsi */ @@ -664,6 +665,7 @@ const struct s390_operand s390_operands[] = #define MASK_RX_URRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } #define MASK_SI_RD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } #define MASK_SI_URD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } +#define MASK_SIY_RD { 0xff, 0xff, 0x00, 0x00, 0x00, 0xff } #define MASK_SIY_URD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff } #define MASK_SIY_IRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff } #define MASK_SIL_RDI { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt index aa00b4f3b..ad4b6aebc 100644 --- a/opcodes/s390-opc.txt +++ b/opcodes/s390-opc.txt @@ -2041,6 +2041,8 @@ e60000000055 vcnf VRR_VV0UU2 " " arch14 zarch b98B rdp RRF_RURR2 " " arch14 zarch optparm -eb0000000071 lpswey SIY_URD " " arch14 zarch +eb0000000071 lpswey SIY_RD " " arch14 zarch b200 lbear S_RD " " arch14 zarch b201 stbear S_RD " " arch14 zarch + +b28f qpaci S_RD " " arch14 zarch -- 2.30.2