* [PATCH 0/3] Threads and BFD
@ 2023-10-26 19:07 Tom Tromey
2023-10-26 19:07 ` [PATCH 1/3] Make _bfd_error_buf static Tom Tromey
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Tom Tromey @ 2023-10-26 19:07 UTC (permalink / raw)
To: binutils
gdb started using threads a while ago. So far we've (mostly) avoided
doing anything BFD-related off the main thread, but I would like to
change that.
In particular, I'd like gdb to do most of its DWARF reading in the
background. To achieve this, gdb only really needs threading on a
per-BFD basis. That is, all access to any particular BFD will be from
a single thread at a given time. However, due to DWO, gdb may also
need to create a new BFD from a worker thread.
For gdb's purposes, I think only BFD globals really need to be
protected. There are a few spots to consider.
The first is BFD error handling. In this series, I chose to make it
thread-local. This approach seemed simple and straightforward.
Locking seemed impractical here. Maybe moving the error into a BFD
would work, but I didn't serious investigate that.
The second set of globals involve opening and closing BFD, and also
the fd cache. I went back and forth on ways to solve this. In this
series I let the BFD client provide lock- and unlock-functions, and
change BFD to use these when needed. I took this approach because it
means that current BFD clients don't need to be changed in any way.
(I do have a variant of this patch where BFD implements its own
locking using a POSIX or Windows mutex; I can send that if you'd
prefer.)
I have a larger patch series to implement the background reading in
gdb, based on these patches. I've run this under TSAN quite a bit and
I think all the races (there were none in BFD, of course) and
deadlocks (I found one in my first draft of this patch) have been
ironed out. Also, it's worth noting that the approach taken here
won't really affect single-threaded BFD users, i.e., everything except
gdb.
Let me know what you think.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/3] Make _bfd_error_buf static
2023-10-26 19:07 [PATCH 0/3] Threads and BFD Tom Tromey
@ 2023-10-26 19:07 ` Tom Tromey
2023-11-01 12:27 ` Nick Clifton
2023-10-26 19:07 ` [PATCH 2/3] Make various error-related globals thread-local Tom Tromey
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2023-10-26 19:07 UTC (permalink / raw)
To: binutils; +Cc: Tom Tromey
This makes _bfd_error_buf static and adds a way to clear it. I felt
that this made the subsequent patches a little cleaner.
* bfd.c (_bfd_error_buf): Now static.
(bfd_set_input_error): Use _bfd_clear_error_data.
(_bfd_clear_error_data): New function.
(bfd_init): Use _bfd_clear_error_data.
* libbfd.h: Regenerate.
* opncls.c (bfd_close_all_done): Use _bfd_clear_error_data.
* po/bfd.pot: Regenerate.
---
bfd/bfd.c | 30 +-
bfd/libbfd.h | 3 +-
bfd/opncls.c | 3 +-
bfd/po/bfd.pot | 2469 +++++++++++++++++++++++++-----------------------
4 files changed, 1336 insertions(+), 1169 deletions(-)
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 88943a042d6..08980ae52b7 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -726,16 +726,12 @@ CODE_FRAGMENT
.}
.bfd_error_type;
.
-INTERNAL
-.{* A buffer that is freed on bfd_close. *}
-.extern char *_bfd_error_buf;
-.
*/
static bfd_error_type bfd_error;
static bfd_error_type input_error;
static bfd *input_bfd;
-char *_bfd_error_buf;
+static char *_bfd_error_buf;
const char *const bfd_errmsgs[] =
{
@@ -823,8 +819,7 @@ bfd_set_input_error (bfd *input, bfd_error_type error_tag)
/* This is an error that occurred during bfd_close when writing an
archive, but on one of the input files. */
bfd_error = bfd_error_on_input;
- free (_bfd_error_buf);
- _bfd_error_buf = NULL;
+ _bfd_clear_error_data ();
input_bfd = input;
input_error = error_tag;
if (input_error >= bfd_error_on_input)
@@ -896,6 +891,24 @@ bfd_perror (const char *message)
fflush (stderr);
}
+/*
+INTERNAL_FUNCTION
+ _bfd_clear_error_data
+
+SYNOPSIS
+ void _bfd_clear_error_data (void);
+
+DESCRIPTION
+ Free any data associated with the BFD error.
+*/
+
+void
+_bfd_clear_error_data (void)
+{
+ free (_bfd_error_buf);
+ _bfd_error_buf = NULL;
+}
+
/*
INTERNAL_FUNCTION
bfd_asprintf
@@ -1725,8 +1738,7 @@ bfd_init (void)
{
bfd_error = bfd_error_no_error;
input_bfd = NULL;
- free (_bfd_error_buf);
- _bfd_error_buf = NULL;
+ _bfd_clear_error_data ();
input_error = bfd_error_no_error;
_bfd_error_program_name = NULL;
_bfd_error_internal = error_handler_fprintf;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 1ce6bc12b7e..fea00b6ee45 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -929,8 +929,7 @@ bool bfd_write_bigendian_4byte_int (bfd *, unsigned int) ATTRIBUTE_HIDDEN;
unsigned int bfd_log2 (bfd_vma x) ATTRIBUTE_HIDDEN;
/* Extracted from bfd.c. */
-/* A buffer that is freed on bfd_close. */
-extern char *_bfd_error_buf;
+void _bfd_clear_error_data (void) ATTRIBUTE_HIDDEN;
char *bfd_asprintf (const char *fmt, ...) ATTRIBUTE_HIDDEN;
diff --git a/bfd/opncls.c b/bfd/opncls.c
index 741d20e81da..cddfd7ec1fb 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -927,8 +927,7 @@ bfd_close_all_done (bfd *abfd)
_maybe_make_executable (abfd);
_bfd_delete_bfd (abfd);
- free (_bfd_error_buf);
- _bfd_error_buf = NULL;
+ _bfd_clear_error_data ();
return ret;
}
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index d324c0617e9..fa47ba70e91 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,10 +8,11 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-03 11:38+0100\n"
+"POT-Creation-Date: 2023-10-26 11:38-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -32,22 +33,22 @@ msgstr ""
msgid "%pB: bad relocation record imported: %d"
msgstr ""
-#: aoutx.h:1265 aoutx.h:1612 pdp11.c:1238 pdp11.c:1511
+#: aoutx.h:1265 aoutx.h:1612 pdp11.c:1237 pdp11.c:1510
#, c-format
msgid "%pB: can not represent section `%pA' in a.out object file format"
msgstr ""
-#: aoutx.h:1576 pdp11.c:1483
+#: aoutx.h:1576 pdp11.c:1482
#, c-format
msgid ""
"%pB: can not represent section for symbol `%s' in a.out object file format"
msgstr ""
-#: aoutx.h:1579 vms-alpha.c:8437
+#: aoutx.h:1579 vms-alpha.c:8461
msgid "*unknown*"
msgstr ""
-#: aoutx.h:1715 pdp11.c:1579
+#: aoutx.h:1715 pdp11.c:1578
#, c-format
msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
msgstr ""
@@ -57,19 +58,19 @@ msgstr ""
msgid "%pB: unsupported AOUT relocation size: %d"
msgstr ""
-#: aoutx.h:2407 aoutx.h:2425 pdp11.c:2062
+#: aoutx.h:2407 aoutx.h:2425 pdp11.c:2059
#, c-format
msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
-#: aoutx.h:4080 pdp11.c:3446
+#: aoutx.h:4080 pdp11.c:3443
#, c-format
msgid "%pB: unsupported relocation type"
msgstr ""
#. Unknown relocation.
-#: aoutx.h:4400 coff-alpha.c:601 coff-alpha.c:1521 coff-mips.c:356
-#: coff-rs6000.c:3029 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
+#: aoutx.h:4400 coff-alpha.c:601 coff-alpha.c:1559 coff-mips.c:356
+#: coff-rs6000.c:3050 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
#: elf-hppa.h:798 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:1063
#: elf32-bfin.c:4686 elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467
@@ -79,8 +80,8 @@ msgstr ""
#: elf32-i386.c:394 elf32-ip2k.c:1241 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:385 elf32-metag.c:871 elf32-microblaze.c:690
-#: elf32-microblaze.c:1002 elf32-mips.c:2242 elf32-moxie.c:137
+#: elf32-mcore.c:440 elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
+#: elf32-microblaze.c:1020 elf32-mips.c:2242 elf32-moxie.c:137
#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3288
#: elf32-nds32.c:3309 elf32-nds32.c:5078 elf32-nios2.c:3019 elf32-or1k.c:1087
#: elf32-pj.c:326 elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423
@@ -91,19 +92,22 @@ msgstr ""
#: elf32-v850.c:1924 elf32-v850.c:4250 elf32-vax.c:289 elf32-visium.c:481
#: elf32-wasm32.c:105 elf32-xgate.c:418 elf32-xstormy16.c:395
#: elf32-xtensa.c:510 elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1114
-#: elf64-alpha.c:4056 elf64-alpha.c:4204 elf64-bpf.c:129 elf64-ia64-vms.c:255
+#: elf64-alpha.c:4056 elf64-alpha.c:4204 elf64-bpf.c:132 elf64-ia64-vms.c:255
#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1264
#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:269 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1574 elfxx-riscv.c:980 elfxx-sparc.c:589
+#: elfxx-ia64.c:324 elfxx-loongarch.c:1568 elfxx-riscv.c:980 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-aarch64.c:2215
+#: elfnn-aarch64.c:2313
+#: elfnn-ia64.c:214
#: elfnn-ia64.c:3821
+#: elfnn-kvx.c:259
#, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr ""
-#: aoutx.h:5427 pdp11.c:3869
+#: aoutx.h:5427 pdp11.c:3866
#, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr ""
@@ -117,132 +121,132 @@ msgstr ""
msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
msgstr ""
-#: archive.c:2285
+#: archive.c:2294
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr ""
-#: archive.c:2353 archive.c:2414 elflink.c:4772 linker.c:1431
+#: archive.c:2362 archive.c:2423 elflink.c:4775 linker.c:1434
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr ""
-#: archive.c:2640
+#: archive.c:2655
msgid "Reading archive file mod timestamp"
msgstr ""
-#: archive.c:2664
+#: archive.c:2686
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:720
+#: bfd.c:738
msgid "no error"
msgstr ""
-#: bfd.c:721
+#: bfd.c:739
msgid "system call error"
msgstr ""
-#: bfd.c:722
+#: bfd.c:740
msgid "invalid bfd target"
msgstr ""
-#: bfd.c:723
+#: bfd.c:741
msgid "file in wrong format"
msgstr ""
-#: bfd.c:724
+#: bfd.c:742
msgid "archive object file in wrong format"
msgstr ""
-#: bfd.c:725
+#: bfd.c:743
msgid "invalid operation"
msgstr ""
-#: bfd.c:726
+#: bfd.c:744
msgid "memory exhausted"
msgstr ""
-#: bfd.c:727
+#: bfd.c:745
msgid "no symbols"
msgstr ""
-#: bfd.c:728
+#: bfd.c:746
msgid "archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:729
+#: bfd.c:747
msgid "no more archived files"
msgstr ""
-#: bfd.c:730
+#: bfd.c:748
msgid "malformed archive"
msgstr ""
-#: bfd.c:731
+#: bfd.c:749
msgid "DSO missing from command line"
msgstr ""
-#: bfd.c:732
+#: bfd.c:750
msgid "file format not recognized"
msgstr ""
-#: bfd.c:733
+#: bfd.c:751
msgid "file format is ambiguous"
msgstr ""
-#: bfd.c:734
+#: bfd.c:752
msgid "section has no contents"
msgstr ""
-#: bfd.c:735
+#: bfd.c:753
msgid "nonrepresentable section on output"
msgstr ""
-#: bfd.c:736
+#: bfd.c:754
msgid "symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:737
+#: bfd.c:755
msgid "bad value"
msgstr ""
-#: bfd.c:738
+#: bfd.c:756
msgid "file truncated"
msgstr ""
-#: bfd.c:739
+#: bfd.c:757
msgid "file too big"
msgstr ""
-#: bfd.c:740
+#: bfd.c:758
msgid "sorry, cannot handle this file"
msgstr ""
-#: bfd.c:741
+#: bfd.c:759
#, c-format
msgid "error reading %s: %s"
msgstr ""
-#: bfd.c:742
+#: bfd.c:760
msgid "#<invalid error code>"
msgstr ""
-#: bfd.c:1856
+#: bfd.c:1890
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:1869
+#: bfd.c:1903
#, c-format
msgid "BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:1874
+#: bfd.c:1908
#, c-format
msgid "BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfd.c:1876
+#: bfd.c:1910
msgid "Please report this bug.\n"
msgstr ""
@@ -261,7 +265,7 @@ msgstr ""
msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
-#: cache.c:272
+#: cache.c:273
#, c-format
msgid "reopening %pB: %s"
msgstr ""
@@ -273,21 +277,38 @@ msgid ""
"to generate uncompressed binaries"
msgstr ""
-#: coff-alpha.c:857 coff-alpha.c:894 coff-alpha.c:1963 coff-mips.c:948
+#: coff-alpha.c:867 coff-alpha.c:904 coff-alpha.c:2001 coff-mips.c:948
msgid "GP relative relocation used when GP not defined"
msgstr ""
-#: coff-alpha.c:1450
+#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189
+#: elfxx-mips.c:13515 reloc.c:8641 reloc16.c:314
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
+msgstr ""
+
+#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13525
+#: reloc.c:8651
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
+msgstr ""
+
+#: coff-alpha.c:1163 elfxx-mips.c:13534 reloc.c:8660
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
+msgstr ""
+
+#: coff-alpha.c:1488
msgid "using multiple gp values"
msgstr ""
-#: coff-alpha.c:1508 coff-alpha.c:1514 elf.c:10207 elf32-mcore.c:100
-#: elf32-mcore.c:455 elf32-ppc.c:7655 elf32-ppc.c:8850 elf64-ppc.c:16826
+#: coff-alpha.c:1546 coff-alpha.c:1552 elf.c:10234 elf32-mcore.c:100
+#: elf32-mcore.c:455 elf32-ppc.c:7670 elf32-ppc.c:8858 elf64-ppc.c:16839
#, c-format
msgid "%pB: %s unsupported"
msgstr ""
-#: coff-go32.c:167 coffswap.h:819
+#: coff-go32.c:167 coffswap.h:812
#, c-format
msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr ""
@@ -307,107 +328,96 @@ msgstr ""
msgid "%pB: unsupported swap_aux_out for storage class %#x"
msgstr ""
-#: coff-rs6000.c:3119
+#: coff-rs6000.c:3140
#, c-format
msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr ""
-#: coff-rs6000.c:3243 coff64-rs6000.c:848
+#: coff-rs6000.c:3264 coff64-rs6000.c:848
#, c-format
msgid "Unable to find the stub entry targeting %s"
msgstr ""
-#: coff-rs6000.c:3358
+#: coff-rs6000.c:3379
#, c-format
msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:3371
+#: coff-rs6000.c:3392
#, c-format
msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
msgstr ""
-#: coff-rs6000.c:3777
+#: coff-rs6000.c:3798
#, c-format
msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:4039 coff64-rs6000.c:2031
+#: coff-rs6000.c:4060 coff64-rs6000.c:2030
#, c-format
msgid "%pB: symbol `%s' has unrecognized smclas %d"
msgstr ""
-#: coff-sh.c:780 elf32-sh.c:521
+#: coff-sh.c:781 elf32-sh.c:521
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES offset"
msgstr ""
-#: coff-sh.c:791
+#: coff-sh.c:792
#, c-format
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn %#x"
msgstr ""
-#: coff-sh.c:809 elf32-sh.c:552
+#: coff-sh.c:810 elf32-sh.c:552
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES load offset"
msgstr ""
-#: coff-sh.c:834 elf32-sh.c:568
+#: coff-sh.c:835 elf32-sh.c:568
#, c-format
msgid "%pB: %#<PRIx64>: warning: could not find expected reloc"
msgstr ""
-#: coff-sh.c:851 elf32-sh.c:597
+#: coff-sh.c:852 elf32-sh.c:597
#, c-format
msgid "%pB: %#<PRIx64>: warning: symbol in unexpected section"
msgstr ""
-#: coff-sh.c:972 elf32-sh.c:727
+#: coff-sh.c:973 elf32-sh.c:727
#, c-format
msgid "%pB: %#<PRIx64>: warning: could not find expected COUNT reloc"
msgstr ""
-#: coff-sh.c:982 elf32-sh.c:738
+#: coff-sh.c:983 elf32-sh.c:738
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad count"
msgstr ""
-#: coff-sh.c:1348 coff-sh.c:2635 elf32-sh.c:1138 elf32-sh.c:1506
+#: coff-sh.c:1349 coff-sh.c:2636 elf32-sh.c:1138 elf32-sh.c:1506
#, c-format
msgid "%pB: %#<PRIx64>: fatal: reloc overflow while relaxing"
msgstr ""
-#: coff-sh.c:1442
+#: coff-sh.c:1443
#, c-format
msgid "%pB: fatal: generic symbols retrieved before relaxing"
msgstr ""
-#: coff-sh.c:2772 cofflink.c:2947
+#: coff-sh.c:2773 cofflink.c:2947
#, c-format
msgid "%pB: illegal symbol index %ld in relocs"
msgstr ""
#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:338 coff-z80.c:325
-#: coff-z8k.c:188 coffcode.h:5224
+#: coff-z8k.c:188 coffcode.h:5297
#, c-format
msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr ""
-#: coff-x86_64.c:152
+#: coff-x86_64.c:147
msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
msgstr ""
-#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13513
-#: reloc.c:8495 reloc16.c:314
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
-msgstr ""
-
-#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13523 reloc.c:8505
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
-msgstr ""
-
#: coff64-rs6000.c:447 coff64-rs6000.c:554
#, c-format
msgid "%pB: C_STAT isn't supported by XCOFF64"
@@ -423,107 +433,105 @@ msgstr ""
msgid "%pB: relocation (%d) at (0x%<PRIx64>) has wrong r_rsize (0x%x)\n"
msgstr ""
-#: coffcode.h:935
+#: coffcode.h:951
#, c-format
msgid "%pB: unable to load COMDAT section name"
msgstr ""
-#. Malformed input files can trigger this test.
-#. cf PR 21781.
-#: coffcode.h:970
+#: coffcode.h:976
#, c-format
-msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
+msgid "%pB: warning: no symbol for section '%s' found"
msgstr ""
-#: coffcode.h:982
+#: coffcode.h:1148
#, c-format
-msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
+msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
msgstr ""
-#: coffcode.h:1005
+#: coffcode.h:1159
#, c-format
-msgid "%pB: warning: no symbol for section '%s' found"
+msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
msgstr ""
#. 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:1214
+#: coffcode.h:1267
#, c-format
msgid "%pB: warning: ignoring section flag %s in section %s"
msgstr ""
-#: coffcode.h:1284
+#: coffcode.h:1337
#, c-format
msgid "%pB (%s): section flag %s (%#lx) ignored"
msgstr ""
-#: coffcode.h:1901
+#: coffcode.h:1954
#, c-format
msgid "%pB: overflow reloc count too small"
msgstr ""
-#: coffcode.h:1910 coffcode.h:1975
+#: coffcode.h:1963 coffcode.h:2028
#, c-format
msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
msgstr ""
-#: coffcode.h:2352
+#: coffcode.h:2405
#, c-format
msgid "unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coffcode.h:2631
+#: coffcode.h:2684
#, c-format
msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr ""
-#: coffcode.h:3097
+#: coffcode.h:3150
#, c-format
msgid "%pB: too many sections (%d)"
msgstr ""
-#: coffcode.h:3624
+#: coffcode.h:3678
#, c-format
msgid "%pB: section %pA: string table overflow at offset %ld"
msgstr ""
-#: coffcode.h:3725
+#: coffcode.h:3779
#, c-format
msgid "%pB:%s section %s: alignment 2**%u not representable"
msgstr ""
-#: coffcode.h:4449
+#: coffcode.h:4515
#, c-format
msgid "%pB: warning: line number table read failed"
msgstr ""
-#: coffcode.h:4495 coffcode.h:4509
+#: coffcode.h:4561 coffcode.h:4575
#, c-format
msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
msgstr ""
-#: coffcode.h:4523
+#: coffcode.h:4589
#, c-format
msgid "%pB: warning: illegal symbol in line number entry %d"
msgstr ""
-#: coffcode.h:4536
+#: coffcode.h:4602
#, c-format
msgid "%pB: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:4960
+#: coffcode.h:5026
#, c-format
msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:5100
+#: coffcode.h:5166
#, c-format
msgid "warning: %pB: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:5264
+#: coffcode.h:5337
#, c-format
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
@@ -538,31 +546,31 @@ msgstr ""
msgid "%pB: unable to decompress section %s"
msgstr ""
-#: coffgen.c:1786
+#: coffgen.c:1781
#, c-format
msgid "%pB: bad string table size %<PRIu64>"
msgstr ""
-#: coffgen.c:1955 coffgen.c:2000 coffgen.c:2051 coffgen.c:2069 cofflink.c:2012
-#: elf.c:2476 xcofflink.c:5532
+#: coffgen.c:1931 coffgen.c:1981 coffgen.c:2031 coffgen.c:2050 cofflink.c:2012
+#: elf.c:2478 xcofflink.c:5532
msgid "<corrupt>"
msgstr ""
-#: coffgen.c:2207
+#: coffgen.c:2192
#, c-format
msgid "<corrupt info> %s"
msgstr ""
-#: coffgen.c:2811 elflink.c:15165 linker.c:2974
+#: coffgen.c:2796 elflink.c:15168 linker.c:2977
msgid "%F%P: already_linked_table: %E\n"
msgstr ""
-#: coffgen.c:3153 elflink.c:14105
+#: coffgen.c:3138 elflink.c:14108
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
-#: coffgen.c:3230 elflink.c:14335
+#: coffgen.c:3215 elflink.c:14338
msgid "warning: gc-sections option ignored"
msgstr ""
@@ -571,7 +579,7 @@ msgstr ""
msgid "warning: symbol `%s' is both section and non-section"
msgstr ""
-#: cofflink.c:503 elf64-ia64-vms.c:5197 elflink.c:5379
+#: cofflink.c:503 elf64-ia64-vms.c:5200 elflink.c:5382
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr ""
@@ -581,11 +589,11 @@ msgstr ""
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr ""
-#: cofflink.c:2403 elflink.c:11546
+#: cofflink.c:2403 elflink.c:11549
#, c-format
msgid ""
-"%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%"
-"pA' of %pB\n"
+"%X`%s' referenced in section `%pA' of %pB: defined in discarded section "
+"`%pA' of %pB\n"
msgstr ""
#: cofflink.c:2598
@@ -608,7 +616,7 @@ msgstr ""
msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
msgstr ""
-#: coffswap.h:833
+#: coffswap.h:826
#, c-format
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
@@ -829,24 +837,28 @@ msgid ""
" Type: %s"
msgstr ""
-#: elf-attrs.c:477
+#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+msgid "error adding attribute"
+msgstr ""
+
+#: elf-attrs.c:503
#, c-format
msgid "%pB: error: attribute section '%pA' too big: %#llx"
msgstr ""
-#: elf-attrs.c:514
+#: elf-attrs.c:540
#, c-format
msgid "%pB: error: attribute section length too small: %ld"
msgstr ""
-#: elf-attrs.c:644
+#: elf-attrs.c:673
#, c-format
msgid ""
"error: %pB: object has vendor-specific contents that must be processed by "
"the '%s' toolchain"
msgstr ""
-#: elf-attrs.c:654
+#: elf-attrs.c:683
#, c-format
msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr ""
@@ -923,10 +935,10 @@ msgstr ""
#: elf32-fr30.c:594 elf32-frv.c:4049 elf32-ft32.c:492 elf32-h8300.c:523
#: elf32-ip2k.c:1478 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:1664 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6093
+#: elf32-microblaze.c:1682 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6093
#: elf32-or1k.c:1897 elf32-score.c:2734 elf32-score7.c:2545 elf32-spu.c:5085
#: elf32-tilepro.c:3372 elf32-v850.c:2294 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:335 elf64-mmix.c:1541 elfxx-tilegx.c:3742
+#: elf32-xstormy16.c:930 elf64-bpf.c:338 elf64-mmix.c:1541 elfxx-tilegx.c:3742
msgid "internal error: out of range error"
msgstr ""
@@ -934,18 +946,17 @@ msgstr ""
#: elf32-cris.c:2038 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
#: elf32-frv.c:4053 elf32-ft32.c:496 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:1668
-#: elf32-moxie.c:292 elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1901
-#: elf32-score.c:2738 elf32-score7.c:2549 elf32-spu.c:5089
-#: elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684
-#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10651
-#: elfxx-tilegx.c:3746
+#: elf32-mep.c:526 elf32-metag.c:1988 elf32-microblaze.c:1686 elf32-moxie.c:292
+#: elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1901 elf32-score.c:2738
+#: elf32-score7.c:2549 elf32-spu.c:5089 elf32-tilepro.c:3376 elf32-v850.c:2298
+#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1545
+#: elfxx-mips.c:10653 elfxx-tilegx.c:3746
msgid "internal error: unsupported relocation error"
msgstr ""
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
#: elf32-h8300.c:531 elf32-lm32.c:1078 elf32-m32r.c:2845 elf32-m68hc1x.c:1279
-#: elf32-microblaze.c:1672 elf32-nds32.c:6101 elf32-score.c:2742
+#: elf32-microblaze.c:1690 elf32-nds32.c:6101 elf32-score.c:2742
#: elf32-score7.c:2553 elf32-spu.c:5093
msgid "internal error: dangerous error"
msgstr ""
@@ -955,11 +966,10 @@ msgstr ""
#: elf32-fr30.c:606 elf32-frv.c:4061 elf32-ft32.c:504 elf32-h8300.c:535
#: elf32-ip2k.c:1493 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:1676 elf32-moxie.c:300 elf32-msp430.c:1518
-#: elf32-mt.c:410 elf32-nds32.c:6105 elf32-or1k.c:1909 elf32-score.c:2751
-#: elf32-score7.c:2557 elf32-spu.c:5097 elf32-tilepro.c:3384 elf32-v850.c:2318
-#: elf32-visium.c:692 elf32-xstormy16.c:942 elf64-bpf.c:348 elf64-mmix.c:1553
-#: elfxx-tilegx.c:3754
+#: elf32-microblaze.c:1694 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
+#: elf32-nds32.c:6105 elf32-or1k.c:1909 elf32-score.c:2751 elf32-score7.c:2557
+#: elf32-spu.c:5097 elf32-tilepro.c:3384 elf32-v850.c:2318 elf32-visium.c:692
+#: elf32-xstormy16.c:942 elf64-bpf.c:351 elf64-mmix.c:1553 elfxx-tilegx.c:3754
msgid "internal error: unknown error"
msgstr ""
@@ -973,11 +983,13 @@ msgstr ""
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2093 elf32-arm.c:13398 elf32-i386.c:3484 elf32-m32r.c:2331
+#: elf-m10300.c:2093 elf32-arm.c:13398 elf32-i386.c:3490 elf32-m32r.c:2331
#: elf32-m68k.c:3929 elf32-s390.c:3080 elf32-sh.c:3673 elf32-tilepro.c:3275
-#: elf32-xtensa.c:3023 elf64-s390.c:3042 elf64-x86-64.c:4209
-#: elfxx-sparc.c:2917 elfxx-sparc.c:3814 elfxx-tilegx.c:3665
-#: elfnn-aarch64.c:5682 elfnn-aarch64.c:7291
+#: elf32-xtensa.c:3023 elf64-s390.c:3042 elf64-x86-64.c:4209 elfxx-sparc.c:2917
+#: elfxx-sparc.c:3814 elfxx-tilegx.c:3665
+#: elfnn-aarch64.c:5682
+#: elfnn-aarch64.c:7291
+#: elfnn-kvx.c:2775
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -1000,7 +1012,8 @@ msgid "internal error: suspicious relocation type used in shared library"
msgstr ""
#: elf-m10300.c:2650 elf32-avr.c:2488 elf32-frv.c:5621 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2684 reloc.c:8269 reloc16.c:155 elfnn-ia64.c:365
+#: elfxx-sparc.c:2684 reloc.c:8415 reloc16.c:155
+#: elfnn-ia64.c:365
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
@@ -1067,11 +1080,11 @@ msgstr ""
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4103
+#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4147
msgid "%F%P: failed to create GNU property section\n"
msgstr ""
-#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4108
+#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4152
#, c-format
msgid "%F%pA: failed to align section\n"
msgstr ""
@@ -1111,7 +1124,9 @@ msgstr ""
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr ""
-#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4391
+#: elf.c:517 elf32-arm.c:17731
+#: elfnn-aarch64.c:8291
+#: elfnn-loongarch.c:4427
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
@@ -1217,104 +1232,104 @@ msgstr ""
msgid " required from %s:\n"
msgstr ""
-#: elf.c:2612
+#: elf.c:2614
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr ""
-#: elf.c:2719
+#: elf.c:2721
#, c-format
msgid ""
"%pB: warning: multiple symbol tables detected - ignoring the table in "
"section %u"
msgstr ""
-#: elf.c:2804
+#: elf.c:2806
#, c-format
msgid ""
"%pB: warning: multiple dynamic symbol tables detected - ignoring the table "
"in section %u"
msgstr ""
-#: elf.c:2923
+#: elf.c:2925
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr ""
-#: elf.c:2980
+#: elf.c:2982
#, c-format
msgid ""
"%pB: warning: secondary relocation section '%s' for section %pA found - "
"ignoring"
msgstr ""
-#: elf.c:3068 elf.c:3082 elf.c:3093 elf.c:3106
+#: elf.c:3070 elf.c:3084 elf.c:3095 elf.c:3108
#, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr ""
-#: elf.c:3766
+#: elf.c:3770
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr ""
-#: elf.c:3801
+#: elf.c:3805
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
-#: elf.c:4307
+#: elf.c:4311
#, c-format
msgid "%pB: too many sections: %u"
msgstr ""
-#: elf.c:4393
+#: elf.c:4397
#, c-format
msgid ""
"%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4411
+#: elf.c:4415
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr ""
-#: elf.c:5005
+#: elf.c:5009
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr ""
-#: elf.c:5188
+#: elf.c:5192
msgid "%F%P: failed to size relative relocations\n"
msgstr ""
-#: elf.c:5613
+#: elf.c:5617
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr ""
-#: elf.c:5620
+#: elf.c:5624
#, c-format
msgid "\t TLS: %pA"
msgstr ""
-#: elf.c:5624
+#: elf.c:5628
#, c-format
msgid "\tnon-TLS: %pA"
msgstr ""
-#: elf.c:6252
+#: elf.c:6256
#, c-format
msgid ""
"%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:6278
+#: elf.c:6282
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:6395
+#: elf.c:6399
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr ""
@@ -1322,196 +1337,195 @@ msgstr ""
#. The fix for this error is usually to edit the linker script being
#. used and set up the program headers manually. Either that or
#. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6535
+#: elf.c:6539
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6575
+#: elf.c:6579
#, c-format
msgid "%pB: section `%pA' can't be allocated in segment %d"
msgstr ""
-#: elf.c:6716
+#: elf.c:6720
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:6851
+#: elf.c:6855
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr ""
-#: elf.c:6882
+#: elf.c:6886
#, c-format
msgid ""
"%pB: error: non-load segment %d includes file header and/or program header"
msgstr ""
-#: elf.c:7022
+#: elf.c:7026
#, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr ""
-#: elf.c:7028
+#: elf.c:7032
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:7416
+#: elf.c:7420
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr ""
-#: elf.c:7794
+#: elf.c:7798
#, c-format
msgid ""
"%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
"intentional?"
msgstr ""
-#: elf.c:8454
+#: elf.c:8458
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr ""
-#: elf.c:8962
+#: elf.c:8966
#, c-format
msgid ""
"%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr ""
-#: elf.c:8992
+#: elf.c:8996
#, c-format
msgid ""
"unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:9426
+#: elf.c:9431
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr ""
-#: elf.c:9587
+#: elf.c:9607
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr ""
-#: elf.c:10080
+#: elf.c:10107
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr ""
-#: elf.c:10092
+#: elf.c:10119
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr ""
-#: elf.c:10999
+#: elf.c:11047
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr ""
-#: elf.c:11078
+#: elf.c:11126
#, c-format
msgid ""
"%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a "
"name of size %u"
msgstr ""
-#: elf.c:13642
+#: elf.c:13764
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13645
+#: elf.c:13767
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13648
+#: elf.c:13770
msgid ""
"symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13651
+#: elf.c:13773
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13870
+#: elf.c:13991
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr ""
-#: elf.c:13946
+#: elf.c:14067
#, c-format
msgid ""
"%pB(%pA): link section cannot be set because the output file does not have a "
"symbol table"
msgstr ""
-#: elf.c:13960
+#: elf.c:14081
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr ""
-#: elf.c:13974
+#: elf.c:14095
#, c-format
msgid ""
"%pB(%pA): info section index cannot be set because the section is not in the "
"output"
msgstr ""
-#: elf.c:14050
+#: elf.c:14171
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr ""
-#: elf.c:14062
+#: elf.c:14183
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr ""
-#: elf.c:14074
+#: elf.c:14195
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr ""
-#: elf.c:14088
+#: elf.c:14209
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr ""
-#: elf.c:14111
+#: elf.c:14232
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr ""
-#: elf.c:14131
+#: elf.c:14252
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr ""
-#: elf.c:14156
+#: elf.c:14277
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr ""
-#: elf.c:14174
+#: elf.c:14295
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr ""
-#: elf.c:14188
+#: elf.c:14309
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr ""
#. 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-arc.c:455 elf32-arm.c:15124 elf32-frv.c:6612 elf32-iq2000.c:868
+#: elf32-arc.c:455 elf32-arm.c:15125 elf32-frv.c:6612 elf32-iq2000.c:868
#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
-#: elf32-visium.c:844 elf64-ppc.c:5513 elfnn-aarch64.c:7521
+#: elf32-visium.c:844 elf64-ppc.c:5513
+#: elfnn-aarch64.c:7521
#, c-format
msgid "private flags = 0x%lx:"
msgstr ""
@@ -1558,7 +1572,7 @@ msgid ""
msgstr ""
#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
-#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15685
+#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15687
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -1574,8 +1588,8 @@ msgstr ""
#: elf32-arc.c:1159
#, c-format
msgid ""
-"%pB(%pA+%#<PRIx64>): CMEM relocation to `%s' is invalid, 16 MSB should be %"
-"#x (value is %#<PRIx64>)"
+"%pB(%pA+%#<PRIx64>): CMEM relocation to `%s' is invalid, 16 MSB should be "
+"%#x (value is %#<PRIx64>)"
msgstr ""
#: elf32-arc.c:1170
@@ -1585,50 +1599,51 @@ msgid ""
"should be %#x (value is %#<PRIx64>)"
msgstr ""
-#: elf32-arc.c:1885
+#: elf32-arc.c:1898
msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
msgstr ""
-#: elf32-arc.c:1909 elf32-rx.c:1486
+#: elf32-arc.c:1922 elf32-rx.c:1486
#, c-format
msgid ""
"%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
msgstr ""
-#: elf32-arc.c:1914 elf32-rx.c:1491
+#: elf32-arc.c:1927 elf32-rx.c:1491
#, c-format
msgid "%pB(%pA): internal error: out of range error"
msgstr ""
-#: elf32-arc.c:1919 elf32-rx.c:1496
+#: elf32-arc.c:1932 elf32-rx.c:1496
#, c-format
msgid "%pB(%pA): internal error: unsupported relocation error"
msgstr ""
-#: elf32-arc.c:1924 elf32-rx.c:1501
+#: elf32-arc.c:1937 elf32-rx.c:1501
#, c-format
msgid "%pB(%pA): internal error: dangerous relocation"
msgstr ""
-#: elf32-arc.c:1929 elf32-rx.c:1506
+#: elf32-arc.c:1942 elf32-rx.c:1506
#, c-format
msgid "%pB(%pA): internal error: unknown error"
msgstr ""
-#: elf32-arc.c:2023 elf32-arc.c:2091 elf32-arm.c:15579 elf32-metag.c:2251
-#: elf32-nds32.c:5543 elfnn-aarch64.c:7928 elfnn-riscv.c:723
+#: elf32-arc.c:2036 elf32-arc.c:2104 elf32-arm.c:15580 elf32-metag.c:2251
+#: elf32-nds32.c:5543 elfnn-aarch64.c:7928
+#: elfnn-riscv.c:723
#, c-format
msgid ""
"%pB: relocation %s against `%s' can not be used when making a shared object; "
"recompile with -fPIC"
msgstr ""
-#: elf32-arc.c:2910
+#: elf32-arc.c:2923
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr ""
-#: elf32-arc.c:2918
+#: elf32-arc.c:2931
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr ""
@@ -1651,8 +1666,8 @@ msgstr ""
#: elf32-arm.c:4591
#, c-format
msgid ""
-"ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%"
-"#<PRIx64>)"
+"ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination "
+"(%#<PRIx64>)"
msgstr ""
#: elf32-arm.c:4760
@@ -1662,14 +1677,15 @@ msgstr ""
#: elf32-arm.c:4835 elf32-arm.c:6984 elf32-csky.c:3389 elf32-hppa.c:582
#: elf32-m68hc1x.c:164 elf32-metag.c:1180 elf32-nios2.c:2201 elf64-ppc.c:3907
-#: elf64-ppc.c:14142 elfnn-aarch64.c:3203
+#: elf64-ppc.c:14157 elfnn-aarch64.c:3203
+#: elfnn-kvx.c:895
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr ""
#: elf32-arm.c:5056 elf32-csky.c:3731 elf32-hppa.c:732 elf32-hppa.c:761
#: elf32-hppa.c:842 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3345
-#: elf32-nios2.c:2494 elf64-ppc.c:12258 elf64-ppc.c:12266 xcofflink.c:4684
+#: elf32-nios2.c:2494 elf64-ppc.c:12273 elf64-ppc.c:12281 xcofflink.c:4684
#: elfnn-aarch64.c:3275
msgid ""
"%F%P: Could not assign `%pA' to an output section. Retry without --enable-"
@@ -1831,12 +1847,7 @@ msgid ""
"when making a %s; recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:10649
-#, c-format
-msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
-msgstr ""
-
-#: elf32-arm.c:11066
+#: elf32-arm.c:10649 elf32-arm.c:11066
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
@@ -1898,27 +1909,33 @@ msgstr ""
#: elf32-arm.c:13343 elf32-m68k.c:3966 elf32-xtensa.c:2761
#: elfnn-aarch64.c:7018
+#: elfnn-kvx.c:2571
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr ""
#: elf32-arm.c:13345 elf32-m68k.c:3968 elf32-xtensa.c:2763
#: elfnn-aarch64.c:7020
+#: elfnn-kvx.c:2573
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13428 elf32-tic6x.c:2649 elfnn-aarch64.c:7355
+#: elf32-arm.c:13428 elf32-tic6x.c:2649
+#: elfnn-aarch64.c:7355
+#: elfnn-kvx.c:2800
msgid "out of range"
msgstr ""
#: elf32-arm.c:13432 elf32-nios2.c:4511 elf32-pru.c:936 elf32-tic6x.c:2653
#: elfnn-aarch64.c:7359
+#: elfnn-kvx.c:2804
msgid "unsupported relocation"
msgstr ""
#: elf32-arm.c:13440 elf32-nios2.c:4521 elf32-pru.c:946 elf32-tic6x.c:2661
#: elfnn-aarch64.c:7367
+#: elfnn-kvx.c:2812
msgid "unknown error"
msgstr ""
@@ -1956,9 +1973,9 @@ msgstr ""
msgid "error: %pB: unknown CPU architecture"
msgstr ""
-#: elf32-arm.c:14439 elf32-nios2.c:2950
+#: elf32-arm.c:14439
#, c-format
-msgid "error: %pB: conflicting CPU architectures %d/%d"
+msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr ""
#: elf32-arm.c:14536
@@ -1972,306 +1989,308 @@ msgstr ""
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14742
+#: elf32-arm.c:14743
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr ""
-#: elf32-arm.c:14768
+#: elf32-arm.c:14769
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:14907
+#: elf32-arm.c:14908
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:14916
+#: elf32-arm.c:14917
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr ""
-#: elf32-arm.c:14928
+#: elf32-arm.c:14929
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:14941
+#: elf32-arm.c:14942
#, 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 ""
-#: elf32-arm.c:14972
+#: elf32-arm.c:14973
#, 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 ""
-#: elf32-arm.c:14984
+#: elf32-arm.c:14985
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:15001
+#: elf32-arm.c:15002
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr ""
-#: elf32-arm.c:15037
+#: elf32-arm.c:15038
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:15133
+#: elf32-arm.c:15134
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:15141
+#: elf32-arm.c:15142
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:15143
+#: elf32-arm.c:15144
#, c-format
msgid " [Maverick float format]"
msgstr ""
-#: elf32-arm.c:15145
+#: elf32-arm.c:15146
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:15148
+#: elf32-arm.c:15149
#, c-format
msgid " [floats passed in float registers]"
msgstr ""
-#: elf32-arm.c:15151 elf32-arm.c:15237
+#: elf32-arm.c:15152 elf32-arm.c:15238
#, c-format
msgid " [position independent]"
msgstr ""
-#: elf32-arm.c:15154
+#: elf32-arm.c:15155
#, c-format
msgid " [new ABI]"
msgstr ""
-#: elf32-arm.c:15157
+#: elf32-arm.c:15158
#, c-format
msgid " [old ABI]"
msgstr ""
-#: elf32-arm.c:15160
+#: elf32-arm.c:15161
#, c-format
msgid " [software FP]"
msgstr ""
-#: elf32-arm.c:15169
+#: elf32-arm.c:15170
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:15172 elf32-arm.c:15183
+#: elf32-arm.c:15173 elf32-arm.c:15184
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:15174 elf32-arm.c:15185
+#: elf32-arm.c:15175 elf32-arm.c:15186
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:15180
+#: elf32-arm.c:15181
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:15188
+#: elf32-arm.c:15189
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:15191
+#: elf32-arm.c:15192
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:15198
+#: elf32-arm.c:15199
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:15202
+#: elf32-arm.c:15203
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:15206
+#: elf32-arm.c:15207
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:15209
+#: elf32-arm.c:15210
#, c-format
msgid " [soft-float ABI]"
msgstr ""
-#: elf32-arm.c:15212
+#: elf32-arm.c:15213
#, c-format
msgid " [hard-float ABI]"
msgstr ""
-#: elf32-arm.c:15218
+#: elf32-arm.c:15219
#, c-format
msgid " [BE8]"
msgstr ""
-#: elf32-arm.c:15221
+#: elf32-arm.c:15222
#, c-format
msgid " [LE8]"
msgstr ""
-#: elf32-arm.c:15227
+#: elf32-arm.c:15228
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:15234
+#: elf32-arm.c:15235
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:15240
+#: elf32-arm.c:15241
#, c-format
msgid " [FDPIC ABI supplement]"
msgstr ""
-#: elf32-arm.c:15245 elfnn-aarch64.c:7524
+#: elf32-arm.c:15246 elfnn-aarch64.c:7524
#, c-format
msgid " <Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:15362 elf32-arm.c:15496 elf32-i386.c:1525 elf32-s390.c:923
-#: elf32-tic6x.c:2724 elf32-tilepro.c:1435 elf32-xtensa.c:1090
-#: elf64-s390.c:845 elf64-x86-64.c:1975 elfxx-sparc.c:1386 elfxx-tilegx.c:1662
-#: elfxx-x86.c:970 elfnn-aarch64.c:7795 elfnn-loongarch.c:637
+#: elf32-arm.c:15363 elf32-arm.c:15497 elf32-i386.c:1531 elf32-s390.c:923
+#: elf32-tic6x.c:2724 elf32-tilepro.c:1435 elf32-xtensa.c:1090 elf64-s390.c:845
+#: elf64-x86-64.c:1975 elfxx-sparc.c:1386 elfxx-tilegx.c:1662 elfxx-x86.c:970
+#: elfnn-aarch64.c:7795
+#: elfnn-kvx.c:3250
+#: elfnn-loongarch.c:637
#: elfnn-riscv.c:767
#, c-format
msgid "%pB: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:15752
+#: elf32-arm.c:15753
#, c-format
msgid ""
"FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr ""
-#: elf32-arm.c:17026
+#: elf32-arm.c:17027
#, c-format
msgid "errors encountered processing file %pB"
msgstr ""
-#: elf32-arm.c:17399 elflink.c:13271 elflink.c:13318
+#: elf32-arm.c:17400 elflink.c:13274 elflink.c:13321
#, c-format
msgid "could not find section %s"
msgstr ""
-#: elf32-arm.c:18354
+#: elf32-arm.c:18355
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr ""
-#: elf32-arm.c:18618
+#: elf32-arm.c:18619
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr ""
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18645
+#: elf32-arm.c:18646
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:19472 elf32-arm.c:19494
+#: elf32-arm.c:19473 elf32-arm.c:19495
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr ""
-#: elf32-arm.c:19545
+#: elf32-arm.c:19546
#, c-format
msgid ""
"%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by "
"%<PRId64> bytes; cannot encode branch instruction"
msgstr ""
-#: elf32-arm.c:19584
+#: elf32-arm.c:19585
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr ""
-#: elf32-arm.c:20659
+#: elf32-arm.c:20668
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:20735
+#: elf32-arm.c:20745
#, c-format
msgid ""
"error: source object %pB has EABI version %d, but target %pB has EABI "
"version %d"
msgstr ""
-#: elf32-arm.c:20750
+#: elf32-arm.c:20760
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr ""
-#: elf32-arm.c:20760
+#: elf32-arm.c:20770
#, c-format
msgid ""
"error: %pB passes floats in float registers, whereas %pB passes them in "
"integer registers"
msgstr ""
-#: elf32-arm.c:20764
+#: elf32-arm.c:20774
#, c-format
msgid ""
"error: %pB passes floats in integer registers, whereas %pB passes them in "
"float registers"
msgstr ""
-#: elf32-arm.c:20774 elf32-arm.c:20778 elf32-arm.c:20788
+#: elf32-arm.c:20784 elf32-arm.c:20788 elf32-arm.c:20798
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20792
+#: elf32-arm.c:20802
#, c-format
msgid "error: %pB does not use %s instructions, whereas %pB does"
msgstr ""
-#: elf32-arm.c:20811
+#: elf32-arm.c:20821
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr ""
-#: elf32-arm.c:20815
+#: elf32-arm.c:20825
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr ""
-#: elf32-arm.c:20829
+#: elf32-arm.c:20839
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20835
+#: elf32-arm.c:20845
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr ""
@@ -2303,7 +2322,7 @@ msgstr ""
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1621 elf32-i386.c:3524 elf32-m68k.c:4006 elf32-s390.c:3138
+#: elf32-bfin.c:1621 elf32-i386.c:3530 elf32-m68k.c:4006 elf32-s390.c:3138
#: elf64-s390.c:3118 elf64-x86-64.c:4264
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
@@ -2348,7 +2367,7 @@ msgstr ""
#: elf32-frv.c:4057 elf32-ft32.c:500 elf32-ip2k.c:1489 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:1905 elf32-tilepro.c:3380
-#: elf32-v850.c:2302 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:344
+#: elf32-v850.c:2302 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:347
#: elf64-mmix.c:1549 elfxx-tilegx.c:3750
msgid "internal error: dangerous relocation"
msgstr ""
@@ -2356,7 +2375,7 @@ msgstr ""
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
#: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
#: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
-#: elfxx-mips.c:16371
+#: elfxx-mips.c:16373
#, c-format
msgid "private flags = %lx:"
msgstr ""
@@ -2749,85 +2768,89 @@ msgstr ""
#: elf32-i386.c:1177 elf64-x86-64.c:1462
#, c-format
msgid ""
-"%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section `%"
-"pA' failed"
+"%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section "
+"`%pA' failed"
msgstr ""
-#: elf32-i386.c:1280
+#: elf32-i386.c:1286
#, c-format
msgid ""
"%pB: direct GOT relocation R_386_GOT32X against `%s' without base register "
"can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:1709 elf32-s390.c:1151 elf32-sh.c:5499 elf32-tilepro.c:1548
-#: elf32-xtensa.c:1263 elf64-s390.c:1083 elfxx-sparc.c:1556
-#: elfxx-tilegx.c:1767 elfnn-loongarch.c:591 elfnn-riscv.c:674
+#: elf32-i386.c:1715 elf32-s390.c:1151 elf32-sh.c:5499 elf32-tilepro.c:1548
+#: elf32-xtensa.c:1263 elf64-s390.c:1083 elfxx-sparc.c:1556 elfxx-tilegx.c:1767
+#: elfnn-loongarch.c:591
+#: elfnn-riscv.c:674
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:1781
+#: elf32-i386.c:1787
#, c-format
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr ""
-#: elf32-i386.c:1836 elf64-x86-64.c:2355
+#: elf32-i386.c:1842 elf64-x86-64.c:2355
#, c-format
msgid ""
"%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr ""
-#: elf32-i386.c:2400 elf64-x86-64.c:2818 elfnn-riscv.c:2458
+#: elf32-i386.c:2406 elf64-x86-64.c:2818
+#: elfnn-riscv.c:2458
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr ""
-#: elf32-i386.c:2433 elf32-i386.c:3735 elf32-i386.c:3883 elf64-x86-64.c:2875
-#: elf64-x86-64.c:4437 elf64-x86-64.c:4600 elfnn-riscv.c:2331
-#: elfnn-riscv.c:3161 elfnn-riscv.c:3235
+#: elf32-i386.c:2439 elf32-i386.c:3741 elf32-i386.c:3889 elf64-x86-64.c:2875
+#: elf64-x86-64.c:4437 elf64-x86-64.c:4605
+#: elfnn-riscv.c:2331
+#: elfnn-riscv.c:3161
+#: elfnn-riscv.c:3235
#, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr ""
-#: elf32-i386.c:2611
+#: elf32-i386.c:2617
#, c-format
msgid ""
"%pB: direct GOT relocation %s against `%s' without base register can not be "
"used when making a shared object"
msgstr ""
-#: elf32-i386.c:2646 elf64-x86-64.c:3089
+#: elf32-i386.c:2652 elf64-x86-64.c:3089
msgid "hidden symbol"
msgstr ""
-#: elf32-i386.c:2649 elf64-x86-64.c:3092
+#: elf32-i386.c:2655 elf64-x86-64.c:3092
msgid "internal symbol"
msgstr ""
-#: elf32-i386.c:2652 elf64-x86-64.c:3095
+#: elf32-i386.c:2658 elf64-x86-64.c:3095
msgid "protected symbol"
msgstr ""
-#: elf32-i386.c:2655 elf64-x86-64.c:3098
+#: elf32-i386.c:2661 elf64-x86-64.c:3098
msgid "symbol"
msgstr ""
-#: elf32-i386.c:2661
+#: elf32-i386.c:2667
#, c-format
msgid ""
"%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:2674
+#: elf32-i386.c:2680
#, c-format
msgid ""
"%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:4086 elf64-x86-64.c:4811
+#: elf32-i386.c:4092 elf64-x86-64.c:4816
msgid "%F%P: discarded output section: `%pA'\n"
msgstr ""
@@ -2868,7 +2891,7 @@ msgstr ""
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:2776 elf32-microblaze.c:1134 elf32-microblaze.c:1182
+#: elf32-m32r.c:2776 elf32-microblaze.c:1152 elf32-microblaze.c:1200
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr ""
@@ -2922,8 +2945,8 @@ msgstr ""
#: elf32-m68hc1x.c:1197
#, c-format
msgid ""
-"reference to a banked address [%lx:%04lx] in the normal address space at %"
-"04lx"
+"reference to a banked address [%lx:%04lx] in the normal address space at "
+"%04lx"
msgstr ""
#: elf32-m68hc1x.c:1233
@@ -3007,7 +3030,7 @@ msgstr ""
msgid "%pB uses hard float, %pB uses soft float"
msgstr ""
-#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8061 vms-alpha.c:8077
+#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8085 vms-alpha.c:8101
msgid "unknown"
msgstr ""
@@ -3059,7 +3082,7 @@ msgid ""
"link"
msgstr ""
-#: elf32-microblaze.c:1577 elf32-tilepro.c:3021 elfxx-sparc.c:3446
+#: elf32-microblaze.c:1595 elf32-tilepro.c:3021 elfxx-sparc.c:3446
#: elfxx-tilegx.c:3415
#, c-format
msgid "%pB: probably compiled without -fPIC?"
@@ -3225,6 +3248,11 @@ msgstr ""
msgid "error: %pB: big-endian R2 is not supported"
msgstr ""
+#: elf32-nios2.c:2950
+#, c-format
+msgid "error: %pB: conflicting CPU architectures %d/%d"
+msgstr ""
+
#: elf32-nios2.c:3825
#, c-format
msgid ""
@@ -3414,36 +3442,36 @@ msgstr ""
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
-#: elf32-ppc.c:5567 elf32-sh.c:3019 elf32-tilepro.c:2248 elfxx-sparc.c:2454
+#: elf32-ppc.c:5565 elf32-sh.c:3019 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 ""
-#: elf32-ppc.c:7443
+#: elf32-ppc.c:7458
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
-#: elf32-ppc.c:7481
+#: elf32-ppc.c:7496
msgid "%H: fixup branch overflow\n"
msgstr ""
-#: elf32-ppc.c:7521 elf32-ppc.c:7559
+#: elf32-ppc.c:7536 elf32-ppc.c:7574
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr ""
-#: elf32-ppc.c:7623
+#: elf32-ppc.c:7638
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:7659
+#: elf32-ppc.c:7674
#, c-format
msgid "%pB: reloc %#x unsupported"
msgstr ""
-#: elf32-ppc.c:7947
+#: elf32-ppc.c:7957
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr ""
@@ -3456,54 +3484,54 @@ msgstr ""
#. 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:7979
+#: elf32-ppc.c:7989
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8158
+#: elf32-ppc.c:8167
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr ""
-#: elf32-ppc.c:8497 elf32-ppc.c:8528 elf32-ppc.c:8631 elf32-ppc.c:8731
+#: elf32-ppc.c:8505 elf32-ppc.c:8536 elf32-ppc.c:8639 elf32-ppc.c:8739
#, c-format
msgid ""
"%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:8909 elf32-ppc.c:8930
+#: elf32-ppc.c:8917 elf32-ppc.c:8938
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
-#: elf32-ppc.c:9012
+#: elf32-ppc.c:9020
#, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr ""
-#: elf32-ppc.c:9041
+#: elf32-ppc.c:9049
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elf32-ppc.c:9123
+#: elf32-ppc.c:9131
#, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
-#: elf32-ppc.c:10004
+#: elf32-ppc.c:10013
msgid ""
"%X%P: text relocations and GNU indirect functions will result in a segfault "
"at runtime\n"
msgstr ""
-#: elf32-ppc.c:10008 elf64-ppc.c:18302
+#: elf32-ppc.c:10017 elf64-ppc.c:18302
msgid ""
"%P: warning: text relocations and GNU indirect functions may result in a "
"segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10053
+#: elf32-ppc.c:10062
#, c-format
msgid "%s not defined in linker created %pA"
msgstr ""
@@ -3698,8 +3726,8 @@ msgstr ""
#: elf32-sh.c:4579
#, c-format
msgid ""
-"%pB(%pA): offset in relocation for GD->LE translation is too small: %"
-"#<PRIx64>"
+"%pB(%pA): offset in relocation for GD->LE translation is too small: "
+"%#<PRIx64>"
msgstr ""
#. The backslash is to prevent bogus trigraph detection.
@@ -3736,8 +3764,8 @@ msgstr ""
#: elf32-sh.c:4668
#, c-format
msgid ""
-"%pB(%pA): offset in relocation for IE->LE translation is too small: %"
-"#<PRIx64>"
+"%pB(%pA): offset in relocation for IE->LE translation is too small: "
+"%#<PRIx64>"
msgstr ""
#: elf32-sh.c:4686
@@ -3761,25 +3789,25 @@ msgstr ""
#: elf32-sh.c:4817
#, c-format
msgid ""
-"%pB(%pA): offset in relocation for GD->IE translation is too small: %"
-"#<PRIx64>"
+"%pB(%pA): offset in relocation for GD->IE translation is too small: "
+"%#<PRIx64>"
msgstr ""
#: elf32-sh.c:4885
#, c-format
msgid ""
-"%pB(%pA): offset in relocation for LD->LE translation is too small: %"
-"#<PRIx64>"
+"%pB(%pA): offset in relocation for LD->LE translation is too small: "
+"%#<PRIx64>"
msgstr ""
#: elf32-sh.c:5013
#, c-format
-msgid "%X%C: relocation to \"%s\" references a different segment\n"
+msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr ""
#: elf32-sh.c:5020
#, c-format
-msgid "%C: warning: relocation to \"%s\" references a different segment\n"
+msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
#: elf32-sh.c:5488 elf32-sh.c:5570
@@ -3888,7 +3916,7 @@ msgstr ""
msgid "overlay stub relocation overflow"
msgstr ""
-#: elf32-spu.c:1992 elf64-ppc.c:15328
+#: elf32-spu.c:1992 elf64-ppc.c:15341
msgid "stubs don't match calculated size"
msgstr ""
@@ -4035,8 +4063,11 @@ msgstr ""
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr ""
-#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2710
-#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4317 elfnn-riscv.c:3458
+#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2729
+#: elfnn-aarch64.c:9999
+#: elfnn-kvx.c:4636
+#: elfnn-loongarch.c:4357
+#: elfnn-riscv.c:3458
#, c-format
msgid "discarded output section: `%pA'"
msgstr ""
@@ -4311,7 +4342,8 @@ msgstr ""
msgid "error reading cpu type from elf private data"
msgstr ""
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077 elfnn-ia64.c:2346
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077
+#: elfnn-ia64.c:2346
msgid "non-zero addend in @fptr reloc"
msgstr ""
@@ -4392,10 +4424,10 @@ msgstr ""
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr ""
-#: elf64-alpha.c:1985 elf64-alpha.c:2680 elflink.c:15427
-#: elfnn-loongarch.c:1573
+#: elf64-alpha.c:1985
#, c-format
-msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
+msgid ""
+"%pB: dynamic relocation against a local symbol in read-only section `%pA'\n"
msgstr ""
#: elf64-alpha.c:2437
@@ -4403,6 +4435,13 @@ msgstr ""
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr ""
+#: elf64-alpha.c:2680 elflink.c:15430
+#: elfnn-kvx.c:4022
+#: elfnn-loongarch.c:1573
+#, c-format
+msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
+msgstr ""
+
#: elf64-alpha.c:2975 elf64-alpha.c:3170
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
@@ -4418,7 +4457,9 @@ msgstr ""
msgid "%pB: change in gp: BRSGP %s"
msgstr ""
-#: elf64-alpha.c:4464 mach-o.c:625 elfnn-riscv.c:725 elfnn-riscv.c:924
+#: elf64-alpha.c:4464 mach-o.c:625
+#: elfnn-riscv.c:725
+#: elfnn-riscv.c:924
#: elfnn-riscv.c:966
msgid "<unknown>"
msgstr ""
@@ -4449,7 +4490,7 @@ msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr ""
#. Only if it's not an unresolved symbol.
-#: elf64-bpf.c:340
+#: elf64-bpf.c:343
msgid "internal error: relocation not supported"
msgstr ""
@@ -4533,8 +4574,8 @@ msgstr ""
#: elf64-ia64-vms.c:3967 elfnn-ia64.c:4481
#, c-format
msgid ""
-"%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %"
-"#<PRIx64> (> 0x1000000)."
+"%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size "
+"%#<PRIx64> (> 0x1000000)."
msgstr ""
#: elf64-ia64-vms.c:4263 elfnn-ia64.c:4742
@@ -4562,23 +4603,23 @@ msgstr ""
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: elf64-ia64-vms.c:5147 elflink.c:5310
+#: elf64-ia64-vms.c:5150 elflink.c:5313
#, c-format
msgid ""
"warning: alignment %u of common symbol `%s' in %pB is greater than the "
"alignment (%u) of its section %pA"
msgstr ""
-#: elf64-ia64-vms.c:5154
+#: elf64-ia64-vms.c:5157
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr ""
-#: elf64-ia64-vms.c:5170 elflink.c:5339
+#: elf64-ia64-vms.c:5173 elflink.c:5342
#, c-format
msgid ""
-"warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %"
-"pB"
+"warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in "
+"%pB"
msgstr ""
#: elf64-mips.c:4102
@@ -4768,52 +4809,52 @@ msgstr ""
msgid "warning: discarding dynamic section %s"
msgstr ""
-#: elf64-ppc.c:11650
+#: elf64-ppc.c:11668
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11800
+#: elf64-ppc.c:11818
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:11827
+#: elf64-ppc.c:11845
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:11891 elf64-ppc.c:12143 elf64-ppc.c:14709
+#: elf64-ppc.c:11906 elf64-ppc.c:12158 elf64-ppc.c:14724
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:12342
+#: elf64-ppc.c:12357
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:13369
+#: elf64-ppc.c:13384
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:14891
+#: elf64-ppc.c:14904
msgid "__tls_get_addr call offset overflow"
msgstr ""
-#: elf64-ppc.c:15231 elf64-ppc.c:15250
+#: elf64-ppc.c:15244 elf64-ppc.c:15263
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
-#: elf64-ppc.c:15336
+#: elf64-ppc.c:15349
#, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
msgstr[0] ""
msgstr[1] ""
-#: elf64-ppc.c:15343
+#: elf64-ppc.c:15356
#, c-format
msgid ""
"%s, iter %u\n"
@@ -4823,59 +4864,59 @@ msgid ""
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:15725
+#: elf64-ppc.c:15738
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:15727
+#: elf64-ppc.c:15740
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:16511
+#: elf64-ppc.c:16524
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr ""
-#: elf64-ppc.c:16517
+#: elf64-ppc.c:16530
#, c-format
msgid ""
"%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
-#: elf64-ppc.c:17174
+#: elf64-ppc.c:17181
#, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr ""
-#: elf64-ppc.c:17450
+#: elf64-ppc.c:17457
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr ""
-#: elf64-ppc.c:17542
+#: elf64-ppc.c:17545
#, c-format
msgid ""
"%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr ""
-#: elf64-ppc.c:17597
+#: elf64-ppc.c:17600
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:17866
+#: elf64-ppc.c:17869
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr ""
-#: elf64-ppc.c:17889
+#: elf64-ppc.c:17892
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:18034
+#: elf64-ppc.c:18037
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
@@ -4893,7 +4934,7 @@ msgid ""
"%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
msgstr ""
-#: elf64-sparc.c:134 elfcode.h:1582
+#: elf64-sparc.c:134 elfcode.h:1596
#, c-format
msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
msgstr ""
@@ -4978,11 +5019,12 @@ msgstr ""
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:2844 elfnn-aarch64.c:5723 elfnn-riscv.c:2298
+#: elf64-x86-64.c:2844 elfnn-aarch64.c:5723
+#: elfnn-riscv.c:2298
#, c-format
msgid ""
-"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %"
-"<PRId64>"
+"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: "
+"%<PRId64>"
msgstr ""
#: elf64-x86-64.c:3104
@@ -5006,7 +5048,7 @@ msgid ""
"section `%pA' is out of range"
msgstr ""
-#: elf64-x86-64.c:3556 elflink.c:13742
+#: elf64-x86-64.c:3556 elflink.c:13745
msgid "%F%P: corrupt input: %pB\n"
msgstr ""
@@ -5021,12 +5063,12 @@ msgstr ""
msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4479
+#: elf64-x86-64.c:4484
#, c-format
msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4532
+#: elf64-x86-64.c:4537
#, c-format
msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
msgstr ""
@@ -5041,17 +5083,17 @@ msgstr ""
msgid "warning: %pB has a corrupt string table index"
msgstr ""
-#: elfcode.h:837
+#: elfcode.h:838
#, c-format
msgid "warning: %pB has a program header with invalid alignment"
msgstr ""
-#: elfcode.h:1039
+#: elfcode.h:1050
#, c-format
msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
msgstr ""
-#: elfcode.h:1302
+#: elfcode.h:1316
#, c-format
msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
msgstr ""
@@ -5105,8 +5147,8 @@ msgstr ""
#: elflink.c:2704
#, c-format
msgid ""
-"%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%"
-"pA' when the object file has no symbol table"
+"%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section "
+"`%pA' when the object file has no symbol table"
msgstr ""
#: elflink.c:2915
@@ -5123,278 +5165,278 @@ msgstr ""
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr ""
-#: elflink.c:4278
+#: elflink.c:4281
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr ""
-#: elflink.c:4761
+#: elflink.c:4764
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr ""
-#: elflink.c:4829
+#: elflink.c:4832
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
-#: elflink.c:4977
+#: elflink.c:4980
#, c-format
msgid "%pB: not enough version information"
msgstr ""
-#: elflink.c:5015
+#: elflink.c:5018
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.c:5052
+#: elflink.c:5055
#, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr ""
-#: elflink.c:5317
+#: elflink.c:5320
#, c-format
msgid ""
"warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used "
"by the common definition in %pB"
msgstr ""
-#: elflink.c:5324
+#: elflink.c:5327
msgid ""
"warning: NOTE: alignment discrepancies can cause real problems. "
"Investigation is advised."
msgstr ""
-#: elflink.c:5346
+#: elflink.c:5349
msgid ""
"warning: NOTE: size discrepancies can cause real problems. Investigation is "
"advised."
msgstr ""
-#: elflink.c:5488
+#: elflink.c:5491
#, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr ""
-#: elflink.c:6548
+#: elflink.c:6551
#, c-format
msgid "%pB: stack size specified and %s set"
msgstr ""
-#: elflink.c:6552
+#: elflink.c:6555
#, c-format
msgid "%pB: %s not absolute"
msgstr ""
-#: elflink.c:6764
+#: elflink.c:6767
#, c-format
msgid "%s: undefined version: %s"
msgstr ""
-#: elflink.c:7153
+#: elflink.c:7156
msgid ""
"warning: enabling an executable stack because of -z execstack command line "
"option"
msgstr ""
-#: elflink.c:7210
+#: elflink.c:7213
#, c-format
msgid ""
"warning: %s: requires executable stack (because the .note.GNU-stack section "
"is executable)"
msgstr ""
-#: elflink.c:7215
+#: elflink.c:7218
#, c-format
msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
msgstr ""
-#: elflink.c:7218
+#: elflink.c:7221
msgid ""
"NOTE: This behaviour is deprecated and will be removed in a future version "
"of the linker"
msgstr ""
-#: elflink.c:7372
+#: elflink.c:7375
#, c-format
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.c:8963
+#: elflink.c:8966
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr ""
-#: elflink.c:9126 elflink.c:9134
+#: elflink.c:9129 elflink.c:9137
msgid "division by zero"
msgstr ""
-#: elflink.c:9148
+#: elflink.c:9151
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr ""
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9484
+#: elflink.c:9487
#, c-format
msgid ""
"%pB:%pA: error: relocation references symbol %s which was removed by garbage "
"collection"
msgstr ""
-#: elflink.c:9487
+#: elflink.c:9490
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr ""
-#: elflink.c:9738 elflink.c:9756 elflink.c:9795 elflink.c:9813
+#: elflink.c:9741 elflink.c:9759 elflink.c:9798 elflink.c:9816
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr ""
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:9772 elflink.c:9829
+#: elflink.c:9775 elflink.c:9832
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
-#: elflink.c:9881
+#: elflink.c:9884
msgid "not enough memory to sort relocations"
msgstr ""
-#: elflink.c:10219
+#: elflink.c:10222
#, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr ""
-#: elflink.c:10495
+#: elflink.c:10498
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10498
+#: elflink.c:10501
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10501
+#: elflink.c:10504
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10587
+#: elflink.c:10590
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
-#: elflink.c:10741
+#: elflink.c:10744
#, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10744
+#: elflink.c:10747
#, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10747
+#: elflink.c:10750
#, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10779
+#: elflink.c:10782
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr ""
-#: elflink.c:11460
+#: elflink.c:11463
#, c-format
msgid ""
"error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a "
"non-existent global symbol"
msgstr ""
-#: elflink.c:11930
+#: elflink.c:11933
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
-#: elflink.c:12207
+#: elflink.c:12210
#, c-format
msgid "%pB: no symbol found for import library"
msgstr ""
-#: elflink.c:12782
+#: elflink.c:12785
msgid "%F%P: %pB: failed to finish relative relocations\n"
msgstr ""
-#: elflink.c:12859
+#: elflink.c:12862
#, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr ""
-#: elflink.c:13108
+#: elflink.c:13111
#, c-format
msgid "%pB: failed to generate import library"
msgstr ""
-#: elflink.c:13276
+#: elflink.c:13279
#, c-format
msgid "warning: %s section has zero size"
msgstr ""
-#: elflink.c:13324
+#: elflink.c:13327
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr ""
-#: elflink.c:13418
+#: elflink.c:13421
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr ""
-#: elflink.c:13421
+#: elflink.c:13424
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr ""
-#: elflink.c:13424
+#: elflink.c:13427
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr ""
-#: elflink.c:13427
+#: elflink.c:13430
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr ""
-#: elflink.c:13563
+#: elflink.c:13566
msgid "%P%X: can not read symbols: %E\n"
msgstr ""
-#: elflink.c:13988
+#: elflink.c:13991
msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
msgstr ""
-#: elflink.c:14466
+#: elflink.c:14469
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr ""
-#: elflink.c:14507
+#: elflink.c:14510
#, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr ""
-#: elflink.c:14650
+#: elflink.c:14653
#, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr ""
-#: elflink.c:15433
+#: elflink.c:15436
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr ""
-#: elflink.c:15522
+#: elflink.c:15525
msgid ""
"%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault "
"at runtime; recompile with %s\n"
@@ -5406,7 +5448,8 @@ msgid ""
"%pB: warning: Weak TLS is implementation defined and may not work as expected"
msgstr ""
-#: elfxx-aarch64.c:738 elfnn-aarch64.c:10200 elfnn-aarch64.c:10207
+#: elfxx-aarch64.c:738 elfnn-aarch64.c:10200
+#: elfnn-aarch64.c:10207
#, c-format
msgid ""
"%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI "
@@ -5418,17 +5461,17 @@ msgstr ""
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr ""
-#: elfxx-loongarch.c:1590
+#: elfxx-loongarch.c:1584
#, c-format
msgid "%pB: unsupported relocation type %s"
msgstr ""
-#: elfxx-loongarch.c:1619
+#: elfxx-loongarch.c:1613
#, c-format
msgid "%pB: unsupported bfd relocation type %#x"
msgstr ""
-#: elfxx-loongarch.c:1638
+#: elfxx-loongarch.c:1632
#, c-format
msgid "%pB: unsupported relocation type name %s"
msgstr ""
@@ -5438,8 +5481,7 @@ msgstr ""
msgid "%pB: relocation %s right shift %d error 0x%lx"
msgstr ""
-#: elfxx-loongarch.c:1699 elfxx-loongarch.c:1735 elfxx-loongarch.c:1770
-#: elfxx-loongarch.c:1807
+#: elfxx-loongarch.c:1708
#, c-format
msgid "%pB: relocation %s overflow 0x%lx"
msgstr ""
@@ -5472,533 +5514,565 @@ msgstr ""
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr ""
-#: elfxx-mips.c:7344
+#: elfxx-mips.c:7345
#, c-format
msgid ""
"%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr ""
-#: elfxx-mips.c:7388
+#: elfxx-mips.c:7389
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:7624
+#: elfxx-mips.c:7625
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
-#: elfxx-mips.c:8447 elfxx-mips.c:8573
+#: elfxx-mips.c:8449 elfxx-mips.c:8575
#, c-format
msgid ""
"%pB: warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8705
+#: elfxx-mips.c:8707
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8805
+#: elfxx-mips.c:8807
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr ""
-#: elfxx-mips.c:8945
+#: elfxx-mips.c:8947
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elfxx-mips.c:9248
+#: elfxx-mips.c:9250
#, c-format
msgid ""
"%X%H: relocation %s against `%s' cannot be used when making a shared object; "
"recompile with -fPIC\n"
msgstr ""
-#: elfxx-mips.c:9374
+#: elfxx-mips.c:9376
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
-#: elfxx-mips.c:9377
+#: elfxx-mips.c:9379
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr ""
-#: elfxx-mips.c:9597
+#: elfxx-mips.c:9599
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr ""
-#: elfxx-mips.c:10532
+#: elfxx-mips.c:10534
#, c-format
msgid ""
"%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
"section `%pA'"
msgstr ""
-#: elfxx-mips.c:10672
+#: elfxx-mips.c:10674
msgid ""
"small-data section exceeds 64KB; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10691
+#: elfxx-mips.c:10693
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10694
+#: elfxx-mips.c:10696
msgid "jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10695
+#: elfxx-mips.c:10697
msgid "jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10698
+#: elfxx-mips.c:10700
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10700
+#: elfxx-mips.c:10702
msgid "branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10702
+#: elfxx-mips.c:10704
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:11002
+#: elfxx-mips.c:11004
#, c-format
msgid ""
"%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:11117 elfxx-mips.c:11704
+#: elfxx-mips.c:11119 elfxx-mips.c:11706
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:11676
+#: elfxx-mips.c:11678
#, c-format
msgid ""
"%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:13422 reloc.c:8417
+#: elfxx-mips.c:13424 reloc.c:8563
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: elfxx-mips.c:13532 reloc.c:8514
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
-msgstr ""
-
-#: elfxx-mips.c:14734
+#: elfxx-mips.c:14736
#, c-format
msgid "%pB: unknown architecture %s"
msgstr ""
-#: elfxx-mips.c:15262
+#: elfxx-mips.c:15264
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr ""
-#: elfxx-mips.c:15539
+#: elfxx-mips.c:15541
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15556
+#: elfxx-mips.c:15558
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15588 elfxx-mips.c:15654 elfxx-mips.c:15669
+#: elfxx-mips.c:15590 elfxx-mips.c:15656 elfxx-mips.c:15671
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15612
+#: elfxx-mips.c:15614
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15637
+#: elfxx-mips.c:15639
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15771
+#: elfxx-mips.c:15773
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
"unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15777
+#: elfxx-mips.c:15779
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15783
+#: elfxx-mips.c:15785
#, c-format
msgid ""
"warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15797
+#: elfxx-mips.c:15799
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15816
+#: elfxx-mips.c:15818
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15828
+#: elfxx-mips.c:15830
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15837
+#: elfxx-mips.c:15839
#, c-format
msgid ""
-"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %"
-"d"
+"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI "
+"%d"
msgstr ""
-#: elfxx-mips.c:15899
+#: elfxx-mips.c:15901
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15913
+#: elfxx-mips.c:15915
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15966
+#: elfxx-mips.c:15968
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15971
+#: elfxx-mips.c:15973
#, c-format
msgid ""
"%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15975
+#: elfxx-mips.c:15977
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15982
+#: elfxx-mips.c:15984
#, c-format
msgid ""
"%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15986
+#: elfxx-mips.c:15988
#, c-format
msgid ""
"%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:16177
+#: elfxx-mips.c:16179
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:16239 elfxx-mips.c:16250
+#: elfxx-mips.c:16241 elfxx-mips.c:16252
msgid "None"
msgstr ""
-#: elfxx-mips.c:16241 elfxx-mips.c:16310
+#: elfxx-mips.c:16243 elfxx-mips.c:16312
msgid "Unknown"
msgstr ""
-#: elfxx-mips.c:16321
+#: elfxx-mips.c:16323
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: elfxx-mips.c:16324
+#: elfxx-mips.c:16326
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: elfxx-mips.c:16327
+#: elfxx-mips.c:16329
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: elfxx-mips.c:16330
+#: elfxx-mips.c:16332
#, c-format
msgid "Soft float\n"
msgstr ""
-#: elfxx-mips.c:16333
+#: elfxx-mips.c:16335
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:16336
+#: elfxx-mips.c:16338
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:16339
+#: elfxx-mips.c:16341
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16342
+#: elfxx-mips.c:16344
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16374
+#: elfxx-mips.c:16376
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:16376
+#: elfxx-mips.c:16378
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:16378
+#: elfxx-mips.c:16380
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:16380
+#: elfxx-mips.c:16382
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:16382
+#: elfxx-mips.c:16384
#, c-format
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:16384
+#: elfxx-mips.c:16386
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:16386
+#: elfxx-mips.c:16388
#, c-format
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:16388
+#: elfxx-mips.c:16390
#, c-format
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:16413
+#: elfxx-mips.c:16415
#, c-format
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:16433
+#: elfxx-mips.c:16435
#, c-format
msgid " [not 32bitmode]"
msgstr ""
-#: elfxx-riscv.c:1657
+#: elfxx-riscv.c:1678
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr ""
-#: elfxx-riscv.c:1663
+#: elfxx-riscv.c:1684
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1769
+#: elfxx-riscv.c:1790
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr ""
-#: elfxx-riscv.c:1793
+#: elfxx-riscv.c:1814
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr ""
-#: elfxx-riscv.c:1829
+#: elfxx-riscv.c:1850
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
-#: elfxx-riscv.c:1853
+#: elfxx-riscv.c:1874
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1877
+#: elfxx-riscv.c:1898
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
-#: elfxx-riscv.c:1931
+#: elfxx-riscv.c:1952
#, c-format
-msgid "rv%d does not support the `e' extension"
+msgid "rv%de does not support the `h' extension"
msgstr ""
-#: elfxx-riscv.c:1939
+#: elfxx-riscv.c:1960
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr ""
-#: elfxx-riscv.c:1946
+#: elfxx-riscv.c:1967
+#, c-format
+msgid "rv%d does not support the `zcf' extension"
+msgstr ""
+
+#: elfxx-riscv.c:1974
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
-#: elfxx-riscv.c:1967
+#: elfxx-riscv.c:1995
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr ""
-#: elfxx-riscv.c:2029
+#: elfxx-riscv.c:2057
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr ""
-#: elfxx-riscv.c:2057
+#: elfxx-riscv.c:2085
#, c-format
msgid "%s: ISA string must begin with rv32 or rv64"
msgstr ""
-#: elfxx-riscv.c:2283
+#: elfxx-riscv.c:2311
#, c-format
msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2306
+#: elfxx-riscv.c:2334
#, c-format
msgid "unknown ISA extension `%s' in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2317
+#: elfxx-riscv.c:2345
#, c-format
msgid "cannot + or - base extension `%s' in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2525 elfxx-riscv.c:2727
+#: elfxx-riscv.c:2573 elfxx-riscv.c:2811
msgid "internal: unreachable INSN_CLASS_*"
msgstr ""
-#: elfxx-riscv.c:2558
+#: elfxx-riscv.c:2608
+msgid "zihintntl' and `c', or `zihintntl' and `zca"
+msgstr ""
+
+#: elfxx-riscv.c:2613 elfxx-riscv.c:2631
+msgid "c' or `zca"
+msgstr ""
+
+#: elfxx-riscv.c:2619
msgid "m' or `zmmul"
msgstr ""
-#: elfxx-riscv.c:2574
-msgid "f' and `c"
+#: elfxx-riscv.c:2637
+msgid "f' and `c', or `f' and `zcf"
+msgstr ""
+
+#: elfxx-riscv.c:2642
+msgid "c' or `zcf"
msgstr ""
-#: elfxx-riscv.c:2582
-msgid "d' and `c"
+#: elfxx-riscv.c:2648
+msgid "d' and `c', or `d' and `zcd"
msgstr ""
-#: elfxx-riscv.c:2588
+#: elfxx-riscv.c:2653
+msgid "c' or `zcd"
+msgstr ""
+
+#: elfxx-riscv.c:2655
msgid "f' or `zfinx"
msgstr ""
-#: elfxx-riscv.c:2590
+#: elfxx-riscv.c:2657
msgid "d' or `zdinx"
msgstr ""
-#: elfxx-riscv.c:2592
+#: elfxx-riscv.c:2659
msgid "q' or `zqinx"
msgstr ""
-#: elfxx-riscv.c:2594
+#: elfxx-riscv.c:2661
msgid "zfh' or `zhinx"
msgstr ""
-#: elfxx-riscv.c:2598
+#: elfxx-riscv.c:2665
msgid "zfhmin' or `zhinxmin"
msgstr ""
-#: elfxx-riscv.c:2609
+#: elfxx-riscv.c:2676
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr ""
-#: elfxx-riscv.c:2620
+#: elfxx-riscv.c:2687
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr ""
-#: elfxx-riscv.c:2626
+#: elfxx-riscv.c:2693
msgid "d' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2634
+#: elfxx-riscv.c:2701
msgid "q' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2642
+#: elfxx-riscv.c:2709
msgid "zfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2662
+#: elfxx-riscv.c:2719
+msgid "zfh' and `zfa', or `zvfh' and `zfa"
+msgstr ""
+
+#: elfxx-riscv.c:2724
+msgid "zfh' or `zvfh"
+msgstr ""
+
+#: elfxx-riscv.c:2740
msgid "zbb' or `zbkb"
msgstr ""
-#: elfxx-riscv.c:2664
+#: elfxx-riscv.c:2742
msgid "zbc' or `zbkc"
msgstr ""
-#: elfxx-riscv.c:2672
+#: elfxx-riscv.c:2750
msgid "zknd' or `zkne"
msgstr ""
-#: elfxx-riscv.c:2678
+#: elfxx-riscv.c:2756
msgid "v' or `zve64x' or `zve32x"
msgstr ""
-#: elfxx-riscv.c:2680
+#: elfxx-riscv.c:2758
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr ""
-#: elfxx-riscv.c:2682
+#: elfxx-riscv.c:2760
msgid "zvbb"
msgstr ""
-#: elfxx-riscv.c:2684
+#: elfxx-riscv.c:2762
msgid "zvbc"
msgstr ""
-#: elfxx-riscv.c:2686
+#: elfxx-riscv.c:2764
msgid "zvkg"
msgstr ""
-#: elfxx-riscv.c:2688
+#: elfxx-riscv.c:2766
msgid "zvkned"
msgstr ""
-#: elfxx-riscv.c:2690
-msgid "zvknha"
-msgstr ""
-
-#: elfxx-riscv.c:2692
-msgid "zvknhb"
+#: elfxx-riscv.c:2768
+msgid "zvknha' or `zvknhb"
msgstr ""
-#: elfxx-riscv.c:2694
+#: elfxx-riscv.c:2770
msgid "zvksed"
msgstr ""
-#: elfxx-riscv.c:2696
+#: elfxx-riscv.c:2772
msgid "zvksh"
msgstr ""
-#: elfxx-riscv.c:2700
+#: elfxx-riscv.c:2776
+msgid "zcb' and `zba"
+msgstr ""
+
+#: elfxx-riscv.c:2778
+msgid "zcb' and `zbb"
+msgstr ""
+
+#: elfxx-riscv.c:2780
+msgid "zcb' and `zmmul', or `zcb' and `m"
+msgstr ""
+
+#: elfxx-riscv.c:2784
msgid "h"
msgstr ""
@@ -6013,11 +6087,11 @@ msgstr ""
msgid "%pB: cannot link together %s and %s objects"
msgstr ""
-#: elfxx-x86.c:536 elfxx-x86.c:3401
+#: elfxx-x86.c:536 elfxx-x86.c:3440
#, c-format
msgid ""
-"%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %"
-"pB\n"
+"%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in "
+"%pB\n"
msgstr ""
#: elfxx-x86.c:1043
@@ -6063,91 +6137,91 @@ msgstr ""
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr ""
-#: elfxx-x86.c:3154
+#: elfxx-x86.c:3193
msgid ""
-"%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%"
-"pA' in %pB\n"
+"%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section "
+"'%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3160
+#: elfxx-x86.c:3199
msgid ""
"%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3775
+#: elfxx-x86.c:3819
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
-#: elfxx-x86.c:4122
+#: elfxx-x86.c:4166
msgid "%P: %pB: warning: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4123
+#: elfxx-x86.c:4167
msgid "%X%P: %pB: error: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4186
+#: elfxx-x86.c:4230
msgid "IBT and SHSTK properties"
msgstr ""
-#: elfxx-x86.c:4188
+#: elfxx-x86.c:4232
msgid "IBT property"
msgstr ""
-#: elfxx-x86.c:4190
+#: elfxx-x86.c:4234
msgid "SHSTK property"
msgstr ""
-#: elfxx-x86.c:4195
+#: elfxx-x86.c:4239
msgid "LAM_U48 property"
msgstr ""
-#: elfxx-x86.c:4200
+#: elfxx-x86.c:4244
msgid "LAM_U57 property"
msgstr ""
-#: elfxx-x86.c:4367
+#: elfxx-x86.c:4413
msgid "%F%P: failed to create VxWorks dynamic sections\n"
msgstr ""
-#: elfxx-x86.c:4376
+#: elfxx-x86.c:4422
msgid "%F%P: failed to create GOT sections\n"
msgstr ""
-#: elfxx-x86.c:4394
+#: elfxx-x86.c:4440
msgid "%F%P: failed to create ifunc sections\n"
msgstr ""
-#: elfxx-x86.c:4431
+#: elfxx-x86.c:4477
msgid "%F%P: failed to create GOT PLT section\n"
msgstr ""
-#: elfxx-x86.c:4450
+#: elfxx-x86.c:4496
msgid "%F%P: failed to create IBT-enabled PLT section\n"
msgstr ""
-#: elfxx-x86.c:4470
+#: elfxx-x86.c:4516
msgid "%F%P: failed to create PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4483
+#: elfxx-x86.c:4529
msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4497
+#: elfxx-x86.c:4543
msgid "%F%P: failed to create the second PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4517
+#: elfxx-x86.c:4563
msgid "%F%P: failed to create PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4532
+#: elfxx-x86.c:4578
msgid "%F%P: failed to create second PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4572
+#: elfxx-x86.c:4618
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr ""
@@ -6206,47 +6280,47 @@ msgstr ""
msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
msgstr ""
-#: libbfd.c:1051
+#: libbfd.c:1058
#, c-format
msgid "%pB: unable to get decompressed section %pA"
msgstr ""
-#: linker.c:1710
+#: linker.c:1713
#, c-format
msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:2580
+#: linker.c:2583
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
-#: linker.c:2859
+#: linker.c:2862
#, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr ""
-#: linker.c:2869 linker.c:2879
+#: linker.c:2872 linker.c:2882
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
-#: linker.c:2893 linker.c:2901
+#: linker.c:2896 linker.c:2904
#, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr ""
-#: linker.c:2910
+#: linker.c:2913
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr ""
-#: linker.c:3429
+#: linker.c:3432
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr ""
-#: linker.c:3432
+#: linker.c:3435
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr ""
@@ -6415,8 +6489,8 @@ msgstr ""
#: mach-o.c:3876
#, c-format
msgid ""
-"bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%"
-"x: setting to undefined"
+"bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field "
+"0x%x: setting to undefined"
msgstr ""
#: mach-o.c:5075
@@ -6583,8 +6657,8 @@ msgstr ""
#: mmo.c:3276
#, c-format
msgid ""
-"%pB: invalid start address for initialized registers of length %<PRId64>: %"
-"#<PRIx64>"
+"%pB: invalid start address for initialized registers of length %<PRId64>: "
+"%#<PRIx64>"
msgstr ""
#: osf-core.c:127
@@ -6592,7 +6666,7 @@ msgstr ""
msgid "unhandled OSF/1 core file section type %d"
msgstr ""
-#: pdp11.c:1589
+#: pdp11.c:1588
#, c-format
msgid "%pB: symbol indicates overlay (not supported)"
msgstr ""
@@ -6602,57 +6676,57 @@ msgstr ""
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr ""
-#: pei-x86_64.c:178 pei-x86_64.c:232 pei-x86_64.c:242 pei-x86_64.c:267
-#: pei-x86_64.c:279 pei-x86_64.c:293 pei-x86_64.c:311 pei-x86_64.c:323
-#: pei-x86_64.c:335
+#: pei-x86_64.c:174 pei-x86_64.c:228 pei-x86_64.c:238 pei-x86_64.c:263
+#: pei-x86_64.c:275 pei-x86_64.c:289 pei-x86_64.c:307 pei-x86_64.c:319
+#: pei-x86_64.c:331
#, c-format
msgid "warning: corrupt unwind data\n"
msgstr ""
#. PR 17512: file: 2245-7442-0.004.
-#: pei-x86_64.c:356
+#: pei-x86_64.c:352
#, c-format
msgid "Unknown: %x"
msgstr ""
-#: pei-x86_64.c:407 pei-x86_64.c:417 pei-x86_64.c:426
+#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
#, c-format
msgid "warning: xdata section corrupt\n"
msgstr ""
-#: pei-x86_64.c:481
+#: pei-x86_64.c:477
#, c-format
msgid "Too many unwind codes (%ld)\n"
msgstr ""
-#: pei-x86_64.c:567
+#: pei-x86_64.c:563
#, c-format
msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: pei-x86_64.c:574
+#: pei-x86_64.c:570
#, c-format
msgid "Warning: %s section size is zero\n"
msgstr ""
-#: pei-x86_64.c:589
+#: pei-x86_64.c:585
#, c-format
msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
msgstr ""
-#: pei-x86_64.c:598
+#: pei-x86_64.c:594
#, c-format
msgid ""
"\n"
"The Function Table (interpreted %s section contents)\n"
msgstr ""
-#: pei-x86_64.c:601
+#: pei-x86_64.c:597
#, c-format
msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr ""
-#: pei-x86_64.c:726
+#: pei-x86_64.c:722
#, c-format
msgid ""
"\n"
@@ -6660,59 +6734,59 @@ msgid ""
msgstr ""
#. XXX code yet to be written.
-#: peicode.h:822
+#: peicode.h:810
#, c-format
msgid "%pB: unhandled import type; %x"
msgstr ""
-#: peicode.h:828
+#: peicode.h:816
#, c-format
msgid "%pB: unrecognized import type; %x"
msgstr ""
-#: peicode.h:843
+#: peicode.h:831
#, c-format
msgid "%pB: unrecognized import name type; %x"
msgstr ""
-#: peicode.h:1274
+#: peicode.h:1264
#, c-format
msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1287
+#: peicode.h:1277
#, c-format
msgid ""
"%pB: recognised but unhandled machine type (0x%x) in Import Library Format "
"archive"
msgstr ""
-#: peicode.h:1305
+#: peicode.h:1295
#, c-format
msgid "%pB: size field is zero in Import Library Format header"
msgstr ""
-#: peicode.h:1331
+#: peicode.h:1321
#, c-format
msgid "%pB: string not null terminated in ILF object file"
msgstr ""
-#: peicode.h:1387
+#: peicode.h:1377
#, c-format
msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr ""
-#: peicode.h:1559
+#: peicode.h:1547
#, c-format
msgid "%pB: adjusting invalid SectionAlignment"
msgstr ""
-#: peicode.h:1569
+#: peicode.h:1557
#, c-format
msgid "%pB: adjusting invalid FileAlignment"
msgstr ""
-#: peicode.h:1577
+#: peicode.h:1565
#, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
msgstr ""
@@ -6722,66 +6796,66 @@ msgid ""
"plugin framework: out of file descriptors. Try using fewer objects/archives\n"
msgstr ""
-#: ppcboot.c:393
+#: ppcboot.c:392
#, c-format
msgid ""
"\n"
"ppcboot header:\n"
msgstr ""
-#: ppcboot.c:394
+#: ppcboot.c:393
#, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:396
+#: ppcboot.c:395
#, c-format
msgid "Length = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:400
+#: ppcboot.c:399
#, c-format
msgid "Flag field = 0x%.2x\n"
msgstr ""
-#: ppcboot.c:406
+#: ppcboot.c:405
#, c-format
msgid "Partition name = \"%s\"\n"
msgstr ""
-#: ppcboot.c:426
+#: ppcboot.c:425
#, c-format
msgid ""
"\n"
"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr ""
-#: ppcboot.c:433
+#: ppcboot.c:432
#, c-format
msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr ""
-#: ppcboot.c:440
+#: ppcboot.c:439
#, c-format
msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:444
+#: ppcboot.c:443
#, c-format
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
-#: reloc.c:8316
+#: reloc.c:8462
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr ""
-#: reloc.c:8582
+#: reloc.c:8728
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8586
+#: reloc.c:8732
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr ""
@@ -6802,19 +6876,19 @@ msgid "%pB(%pA+%#<PRIx64>): %s relocation offset out of range"
msgstr ""
#. User has specified a subspace without its containing space.
-#: som.c:5488
+#: som.c:5405
#, c-format
msgid "%pB[%pA]: no output section for space %pA"
msgstr ""
-#: som.c:5534
+#: som.c:5451
#, c-format
msgid ""
"\n"
"Exec Auxiliary Header\n"
msgstr ""
-#: som.c:5843
+#: som.c:5760
msgid "som_sizeof_headers unimplemented"
msgstr ""
@@ -6964,1901 +7038,1901 @@ msgstr ""
msgid "object module not error-free !"
msgstr ""
-#: vms-alpha.c:4004
+#: vms-alpha.c:4012
#, c-format
msgid "SEC_RELOC with no relocs in section %pA"
msgstr ""
-#: vms-alpha.c:4056 vms-alpha.c:4271
+#: vms-alpha.c:4064 vms-alpha.c:4292
#, c-format
msgid "size error in section %pA"
msgstr ""
-#: vms-alpha.c:4216
+#: vms-alpha.c:4235
msgid "spurious ALPHA_R_BSR reloc"
msgstr ""
-#: vms-alpha.c:4257
+#: vms-alpha.c:4278
#, c-format
msgid "unhandled relocation %s"
msgstr ""
-#: vms-alpha.c:4619
+#: vms-alpha.c:4643
#, c-format
msgid "unknown source command %d"
msgstr ""
-#: vms-alpha.c:4771 vms-alpha.c:4776 vms-alpha.c:4781 vms-alpha.c:4786
-#: vms-alpha.c:4791 vms-alpha.c:4814 vms-alpha.c:4819 vms-alpha.c:4824
-#: vms-alpha.c:4829
+#: vms-alpha.c:4795 vms-alpha.c:4800 vms-alpha.c:4805 vms-alpha.c:4810
+#: vms-alpha.c:4815 vms-alpha.c:4838 vms-alpha.c:4843 vms-alpha.c:4848
+#: vms-alpha.c:4853
#, c-format
msgid "%s not implemented"
msgstr ""
-#: vms-alpha.c:4865
+#: vms-alpha.c:4889
#, c-format
msgid "unknown line command %d"
msgstr ""
-#: vms-alpha.c:5304
+#: vms-alpha.c:5328
msgid "corrupt reloc record"
msgstr ""
-#: vms-alpha.c:5334 vms-alpha.c:5352 vms-alpha.c:5369 vms-alpha.c:5387
-#: vms-alpha.c:5400 vms-alpha.c:5412 vms-alpha.c:5425
+#: vms-alpha.c:5358 vms-alpha.c:5376 vms-alpha.c:5393 vms-alpha.c:5411
+#: vms-alpha.c:5424 vms-alpha.c:5436 vms-alpha.c:5449
#, c-format
msgid "unknown reloc %s + %s"
msgstr ""
-#: vms-alpha.c:5484
+#: vms-alpha.c:5508
#, c-format
msgid "unknown reloc %s"
msgstr ""
-#: vms-alpha.c:5498
+#: vms-alpha.c:5522
msgid "invalid section index in ETIR"
msgstr ""
-#: vms-alpha.c:5507
+#: vms-alpha.c:5531
msgid "relocation for non-REL psect"
msgstr ""
-#: vms-alpha.c:5560
+#: vms-alpha.c:5584
#, c-format
msgid "unknown symbol in command %s"
msgstr ""
-#: vms-alpha.c:5979
+#: vms-alpha.c:6003
#, c-format
msgid "reloc (%d) is *UNKNOWN*"
msgstr ""
-#: vms-alpha.c:6095
+#: vms-alpha.c:6119
#, c-format
msgid " EMH %u (len=%u): "
msgstr ""
-#: vms-alpha.c:6100
+#: vms-alpha.c:6124
#, c-format
msgid " Error: The length is less than the length of an EMH record\n"
msgstr ""
-#: vms-alpha.c:6117
+#: vms-alpha.c:6141
#, c-format
msgid ""
" Error: The record length is less than the size of an EMH_MHD record\n"
msgstr ""
-#: vms-alpha.c:6120
+#: vms-alpha.c:6144
#, c-format
msgid "Module header\n"
msgstr ""
-#: vms-alpha.c:6121
+#: vms-alpha.c:6145
#, c-format
msgid " structure level: %u\n"
msgstr ""
-#: vms-alpha.c:6122
+#: vms-alpha.c:6146
#, c-format
msgid " max record size: %u\n"
msgstr ""
-#: vms-alpha.c:6128
+#: vms-alpha.c:6152
#, c-format
msgid " Error: The module name is missing\n"
msgstr ""
-#: vms-alpha.c:6134
+#: vms-alpha.c:6158
#, c-format
msgid " Error: The module name is too long\n"
msgstr ""
-#: vms-alpha.c:6137
+#: vms-alpha.c:6161
#, c-format
msgid " module name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6141
+#: vms-alpha.c:6165
#, c-format
msgid " Error: The module version is missing\n"
msgstr ""
-#: vms-alpha.c:6147
+#: vms-alpha.c:6171
#, c-format
msgid " Error: The module version is too long\n"
msgstr ""
-#: vms-alpha.c:6150
+#: vms-alpha.c:6174
#, c-format
msgid " module version : %.*s\n"
msgstr ""
-#: vms-alpha.c:6153
+#: vms-alpha.c:6177
#, c-format
msgid " Error: The compile date is truncated\n"
msgstr ""
-#: vms-alpha.c:6155
+#: vms-alpha.c:6179
#, c-format
msgid " compile date : %.17s\n"
msgstr ""
-#: vms-alpha.c:6160
+#: vms-alpha.c:6184
#, c-format
msgid "Language Processor Name\n"
msgstr ""
-#: vms-alpha.c:6161
+#: vms-alpha.c:6185
#, c-format
msgid " language name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6165
+#: vms-alpha.c:6189
#, c-format
msgid "Source Files Header\n"
msgstr ""
-#: vms-alpha.c:6166
+#: vms-alpha.c:6190
#, c-format
msgid " file: %.*s\n"
msgstr ""
-#: vms-alpha.c:6170
+#: vms-alpha.c:6194
#, c-format
msgid "Title Text Header\n"
msgstr ""
-#: vms-alpha.c:6171
+#: vms-alpha.c:6195
#, c-format
msgid " title: %.*s\n"
msgstr ""
-#: vms-alpha.c:6175
+#: vms-alpha.c:6199
#, c-format
msgid "Copyright Header\n"
msgstr ""
-#: vms-alpha.c:6176
+#: vms-alpha.c:6200
#, c-format
msgid " copyright: %.*s\n"
msgstr ""
-#: vms-alpha.c:6180
+#: vms-alpha.c:6204
#, c-format
msgid "unhandled emh subtype %u\n"
msgstr ""
-#: vms-alpha.c:6190
+#: vms-alpha.c:6214
#, c-format
msgid " EEOM (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6195
+#: vms-alpha.c:6219
#, c-format
msgid " Error: The length is less than the length of an EEOM record\n"
msgstr ""
-#: vms-alpha.c:6199
+#: vms-alpha.c:6223
#, c-format
msgid " number of cond linkage pairs: %u\n"
msgstr ""
-#: vms-alpha.c:6201
+#: vms-alpha.c:6225
#, c-format
msgid " completion code: %u\n"
msgstr ""
-#: vms-alpha.c:6205
+#: vms-alpha.c:6229
#, c-format
msgid " transfer addr flags: 0x%02x\n"
msgstr ""
-#: vms-alpha.c:6206
+#: vms-alpha.c:6230
#, c-format
msgid " transfer addr psect: %u\n"
msgstr ""
-#: vms-alpha.c:6208
+#: vms-alpha.c:6232
#, c-format
msgid " transfer address : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6217
+#: vms-alpha.c:6241
msgid " WEAK"
msgstr ""
-#: vms-alpha.c:6219
+#: vms-alpha.c:6243
msgid " DEF"
msgstr ""
-#: vms-alpha.c:6221
+#: vms-alpha.c:6245
msgid " UNI"
msgstr ""
-#: vms-alpha.c:6223 vms-alpha.c:6244
+#: vms-alpha.c:6247 vms-alpha.c:6268
msgid " REL"
msgstr ""
-#: vms-alpha.c:6225
+#: vms-alpha.c:6249
msgid " COMM"
msgstr ""
-#: vms-alpha.c:6227
+#: vms-alpha.c:6251
msgid " VECEP"
msgstr ""
-#: vms-alpha.c:6229
+#: vms-alpha.c:6253
msgid " NORM"
msgstr ""
-#: vms-alpha.c:6231
+#: vms-alpha.c:6255
msgid " QVAL"
msgstr ""
-#: vms-alpha.c:6238
+#: vms-alpha.c:6262
msgid " PIC"
msgstr ""
-#: vms-alpha.c:6240
+#: vms-alpha.c:6264
msgid " LIB"
msgstr ""
-#: vms-alpha.c:6242
+#: vms-alpha.c:6266
msgid " OVR"
msgstr ""
-#: vms-alpha.c:6246
+#: vms-alpha.c:6270
msgid " GBL"
msgstr ""
-#: vms-alpha.c:6248
+#: vms-alpha.c:6272
msgid " SHR"
msgstr ""
-#: vms-alpha.c:6250
+#: vms-alpha.c:6274
msgid " EXE"
msgstr ""
-#: vms-alpha.c:6252
+#: vms-alpha.c:6276
msgid " RD"
msgstr ""
-#: vms-alpha.c:6254
+#: vms-alpha.c:6278
msgid " WRT"
msgstr ""
-#: vms-alpha.c:6256
+#: vms-alpha.c:6280
msgid " VEC"
msgstr ""
-#: vms-alpha.c:6258
+#: vms-alpha.c:6282
msgid " NOMOD"
msgstr ""
-#: vms-alpha.c:6260
+#: vms-alpha.c:6284
msgid " COM"
msgstr ""
-#: vms-alpha.c:6262
+#: vms-alpha.c:6286
msgid " 64B"
msgstr ""
-#: vms-alpha.c:6271
+#: vms-alpha.c:6295
#, c-format
msgid " EGSD (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6286
+#: vms-alpha.c:6310
#, c-format
msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr ""
-#: vms-alpha.c:6292 vms-alpha.c:6587
+#: vms-alpha.c:6316 vms-alpha.c:6611
#, c-format
msgid " Erroneous length\n"
msgstr ""
-#: vms-alpha.c:6305
+#: vms-alpha.c:6329
#, c-format
msgid "PSC - Program section definition\n"
msgstr ""
-#: vms-alpha.c:6306 vms-alpha.c:6326
+#: vms-alpha.c:6330 vms-alpha.c:6350
#, c-format
msgid " alignment : 2**%u\n"
msgstr ""
-#: vms-alpha.c:6307 vms-alpha.c:6327
+#: vms-alpha.c:6331 vms-alpha.c:6351
#, c-format
msgid " flags : 0x%04x"
msgstr ""
-#: vms-alpha.c:6311
+#: vms-alpha.c:6335
#, c-format
msgid " alloc (len): %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6313 vms-alpha.c:6379 vms-alpha.c:6447
+#: vms-alpha.c:6337 vms-alpha.c:6403 vms-alpha.c:6471
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6325
+#: vms-alpha.c:6349
#, c-format
msgid "SPSC - Shared Image Program section def\n"
msgstr ""
-#: vms-alpha.c:6331
+#: vms-alpha.c:6355
#, c-format
msgid " alloc (len) : %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6332
+#: vms-alpha.c:6356
#, c-format
msgid " image offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6334
+#: vms-alpha.c:6358
#, c-format
msgid " symvec offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6337
+#: vms-alpha.c:6361
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6353
+#: vms-alpha.c:6377
#, c-format
msgid "SYM - Global symbol definition\n"
msgstr ""
-#: vms-alpha.c:6354 vms-alpha.c:6435 vms-alpha.c:6459 vms-alpha.c:6482
+#: vms-alpha.c:6378 vms-alpha.c:6459 vms-alpha.c:6483 vms-alpha.c:6506
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:6357
+#: vms-alpha.c:6381
#, c-format
msgid " psect offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6361
+#: vms-alpha.c:6385
#, c-format
msgid " code address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6363
+#: vms-alpha.c:6387
#, c-format
msgid " psect index for entry point : %u\n"
msgstr ""
-#: vms-alpha.c:6366 vms-alpha.c:6466 vms-alpha.c:6489
+#: vms-alpha.c:6390 vms-alpha.c:6490 vms-alpha.c:6513
#, c-format
msgid " psect index : %u\n"
msgstr ""
-#: vms-alpha.c:6369 vms-alpha.c:6469 vms-alpha.c:6492
+#: vms-alpha.c:6393 vms-alpha.c:6493 vms-alpha.c:6516
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6377
+#: vms-alpha.c:6401
#, c-format
msgid "SYM - Global symbol reference\n"
msgstr ""
-#: vms-alpha.c:6392
+#: vms-alpha.c:6416
#, c-format
msgid "IDC - Ident Consistency check\n"
msgstr ""
-#: vms-alpha.c:6393
+#: vms-alpha.c:6417
#, c-format
msgid " flags : 0x%08x"
msgstr ""
-#: vms-alpha.c:6397
+#: vms-alpha.c:6421
#, c-format
msgid " id match : %x\n"
msgstr ""
-#: vms-alpha.c:6399
+#: vms-alpha.c:6423
#, c-format
msgid " error severity: %x\n"
msgstr ""
-#: vms-alpha.c:6403
+#: vms-alpha.c:6427
#, c-format
msgid " entity name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6409
+#: vms-alpha.c:6433
#, c-format
msgid " object name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6418
+#: vms-alpha.c:6442
#, c-format
msgid " binary ident : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6422
+#: vms-alpha.c:6446
#, c-format
msgid " ascii ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:6434
+#: vms-alpha.c:6458
#, c-format
msgid "SYMG - Universal symbol definition\n"
msgstr ""
-#: vms-alpha.c:6438
+#: vms-alpha.c:6462
#, c-format
msgid " symbol vector offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6440
+#: vms-alpha.c:6464
#, c-format
msgid " entry point: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6442
+#: vms-alpha.c:6466
#, c-format
msgid " proc descr : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6444
+#: vms-alpha.c:6468
#, c-format
msgid " psect index: %u\n"
msgstr ""
-#: vms-alpha.c:6458
+#: vms-alpha.c:6482
#, c-format
msgid "SYMV - Vectored symbol definition\n"
msgstr ""
-#: vms-alpha.c:6462
+#: vms-alpha.c:6486
#, c-format
msgid " vector : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6464 vms-alpha.c:6487
+#: vms-alpha.c:6488 vms-alpha.c:6511
#, c-format
msgid " psect offset: %u\n"
msgstr ""
-#: vms-alpha.c:6481
+#: vms-alpha.c:6505
#, c-format
msgid "SYMM - Global symbol definition with version\n"
msgstr ""
-#: vms-alpha.c:6485
+#: vms-alpha.c:6509
#, c-format
msgid " version mask: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6498
+#: vms-alpha.c:6522
#, c-format
msgid "unhandled egsd entry type %u\n"
msgstr ""
-#: vms-alpha.c:6537
+#: vms-alpha.c:6561
#, c-format
msgid " linkage index: %u, replacement insn: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6541
+#: vms-alpha.c:6565
#, c-format
msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6546
+#: vms-alpha.c:6570
#, c-format
msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6552
+#: vms-alpha.c:6576
#, c-format
msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6557
+#: vms-alpha.c:6581
#, c-format
msgid " global name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6569
+#: vms-alpha.c:6593
#, c-format
msgid " %s (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6592
+#: vms-alpha.c:6616
#, c-format
msgid " (type: %3u, size: %3u): "
msgstr ""
-#: vms-alpha.c:6598
+#: vms-alpha.c:6622
#, c-format
msgid "STA_GBL (stack global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6602
+#: vms-alpha.c:6626
#, c-format
msgid "STA_LW (stack longword)"
msgstr ""
-#: vms-alpha.c:6608
+#: vms-alpha.c:6632
#, c-format
msgid "STA_QW (stack quadword)"
msgstr ""
-#: vms-alpha.c:6615
+#: vms-alpha.c:6639
#, c-format
msgid "STA_PQ (stack psect base + offset)\n"
msgstr ""
-#: vms-alpha.c:6618
+#: vms-alpha.c:6642
#, c-format
msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6624
+#: vms-alpha.c:6648
#, c-format
msgid "STA_LI (stack literal)\n"
msgstr ""
-#: vms-alpha.c:6627
+#: vms-alpha.c:6651
#, c-format
msgid "STA_MOD (stack module)\n"
msgstr ""
-#: vms-alpha.c:6630
+#: vms-alpha.c:6654
#, c-format
msgid "STA_CKARG (compare procedure argument)\n"
msgstr ""
-#: vms-alpha.c:6634
+#: vms-alpha.c:6658
#, c-format
msgid "STO_B (store byte)\n"
msgstr ""
-#: vms-alpha.c:6637
+#: vms-alpha.c:6661
#, c-format
msgid "STO_W (store word)\n"
msgstr ""
-#: vms-alpha.c:6640
+#: vms-alpha.c:6664
#, c-format
msgid "STO_LW (store longword)\n"
msgstr ""
-#: vms-alpha.c:6643
+#: vms-alpha.c:6667
#, c-format
msgid "STO_QW (store quadword)\n"
msgstr ""
-#: vms-alpha.c:6650
+#: vms-alpha.c:6674
#, c-format
msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6659
+#: vms-alpha.c:6683
#, c-format
msgid "STO_GBL (store global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6664
+#: vms-alpha.c:6688
#, c-format
msgid "STO_CA (store code address) %.*s\n"
msgstr ""
-#: vms-alpha.c:6668
+#: vms-alpha.c:6692
#, c-format
msgid "STO_RB (store relative branch)\n"
msgstr ""
-#: vms-alpha.c:6671
+#: vms-alpha.c:6695
#, c-format
msgid "STO_AB (store absolute branch)\n"
msgstr ""
-#: vms-alpha.c:6674
+#: vms-alpha.c:6698
#, c-format
msgid "STO_OFF (store offset to psect)\n"
msgstr ""
-#: vms-alpha.c:6681
+#: vms-alpha.c:6705
#, c-format
msgid "STO_IMM (store immediate) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6690
+#: vms-alpha.c:6714
#, c-format
msgid "STO_GBL_LW (store global longword) %.*s\n"
msgstr ""
-#: vms-alpha.c:6694
+#: vms-alpha.c:6718
#, c-format
msgid "STO_OFF (store LP with procedure signature)\n"
msgstr ""
-#: vms-alpha.c:6697
+#: vms-alpha.c:6721
#, c-format
msgid "STO_BR_GBL (store branch global) *todo*\n"
msgstr ""
-#: vms-alpha.c:6700
+#: vms-alpha.c:6724
#, c-format
msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr ""
-#: vms-alpha.c:6704
+#: vms-alpha.c:6728
#, c-format
msgid "OPR_NOP (no-operation)\n"
msgstr ""
-#: vms-alpha.c:6707
+#: vms-alpha.c:6731
#, c-format
msgid "OPR_ADD (add)\n"
msgstr ""
-#: vms-alpha.c:6710
+#: vms-alpha.c:6734
#, c-format
msgid "OPR_SUB (subtract)\n"
msgstr ""
-#: vms-alpha.c:6713
+#: vms-alpha.c:6737
#, c-format
msgid "OPR_MUL (multiply)\n"
msgstr ""
-#: vms-alpha.c:6716
+#: vms-alpha.c:6740
#, c-format
msgid "OPR_DIV (divide)\n"
msgstr ""
-#: vms-alpha.c:6719
+#: vms-alpha.c:6743
#, c-format
msgid "OPR_AND (logical and)\n"
msgstr ""
-#: vms-alpha.c:6722
+#: vms-alpha.c:6746
#, c-format
msgid "OPR_IOR (logical inclusive or)\n"
msgstr ""
-#: vms-alpha.c:6725
+#: vms-alpha.c:6749
#, c-format
msgid "OPR_EOR (logical exclusive or)\n"
msgstr ""
-#: vms-alpha.c:6728
+#: vms-alpha.c:6752
#, c-format
msgid "OPR_NEG (negate)\n"
msgstr ""
-#: vms-alpha.c:6731
+#: vms-alpha.c:6755
#, c-format
msgid "OPR_COM (complement)\n"
msgstr ""
-#: vms-alpha.c:6734
+#: vms-alpha.c:6758
#, c-format
msgid "OPR_INSV (insert field)\n"
msgstr ""
-#: vms-alpha.c:6737
+#: vms-alpha.c:6761
#, c-format
msgid "OPR_ASH (arithmetic shift)\n"
msgstr ""
-#: vms-alpha.c:6740
+#: vms-alpha.c:6764
#, c-format
msgid "OPR_USH (unsigned shift)\n"
msgstr ""
-#: vms-alpha.c:6743
+#: vms-alpha.c:6767
#, c-format
msgid "OPR_ROT (rotate)\n"
msgstr ""
-#: vms-alpha.c:6746
+#: vms-alpha.c:6770
#, c-format
msgid "OPR_SEL (select)\n"
msgstr ""
-#: vms-alpha.c:6749
+#: vms-alpha.c:6773
#, c-format
msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr ""
-#: vms-alpha.c:6752
+#: vms-alpha.c:6776
#, c-format
msgid "OPR_REDEF (define a literal)\n"
msgstr ""
-#: vms-alpha.c:6756
+#: vms-alpha.c:6780
#, c-format
msgid "STC_LP (store cond linkage pair)\n"
msgstr ""
-#: vms-alpha.c:6760
+#: vms-alpha.c:6784
#, c-format
msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr ""
-#: vms-alpha.c:6764
+#: vms-alpha.c:6788
#, c-format
msgid " linkage index: %u, procedure: %.*s\n"
msgstr ""
-#: vms-alpha.c:6771
+#: vms-alpha.c:6795
#, c-format
msgid " signature: %.*s\n"
msgstr ""
-#: vms-alpha.c:6777
+#: vms-alpha.c:6801
#, c-format
msgid "STC_GBL (store cond global)\n"
msgstr ""
-#: vms-alpha.c:6780
+#: vms-alpha.c:6804
#, c-format
msgid " linkage index: %u, global: %.*s\n"
msgstr ""
-#: vms-alpha.c:6785
+#: vms-alpha.c:6809
#, c-format
msgid "STC_GCA (store cond code address)\n"
msgstr ""
-#: vms-alpha.c:6788
+#: vms-alpha.c:6812
#, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6793
+#: vms-alpha.c:6817
#, c-format
msgid "STC_PS (store cond psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6797
+#: vms-alpha.c:6821
#, c-format
msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6804
+#: vms-alpha.c:6828
#, c-format
msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
msgstr ""
-#: vms-alpha.c:6808
+#: vms-alpha.c:6832
#, c-format
msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6812
+#: vms-alpha.c:6836
#, c-format
msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
msgstr ""
-#: vms-alpha.c:6816
+#: vms-alpha.c:6840
#, c-format
msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6820
+#: vms-alpha.c:6844
#, c-format
msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
msgstr ""
-#: vms-alpha.c:6824
+#: vms-alpha.c:6848
#, c-format
msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6828
+#: vms-alpha.c:6852
#, c-format
msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
msgstr ""
-#: vms-alpha.c:6832
+#: vms-alpha.c:6856
#, c-format
msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6837
+#: vms-alpha.c:6861
#, c-format
msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
msgstr ""
-#: vms-alpha.c:6841
+#: vms-alpha.c:6865
#, c-format
msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6845
+#: vms-alpha.c:6869
#, c-format
msgid "CTL_SETRB (set relocation base)\n"
msgstr ""
-#: vms-alpha.c:6851
+#: vms-alpha.c:6875
#, c-format
msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr ""
-#: vms-alpha.c:6856
+#: vms-alpha.c:6880
#, c-format
msgid "CTL_DFLOC (define location)\n"
msgstr ""
-#: vms-alpha.c:6859
+#: vms-alpha.c:6883
#, c-format
msgid "CTL_STLOC (set location)\n"
msgstr ""
-#: vms-alpha.c:6862
+#: vms-alpha.c:6886
#, c-format
msgid "CTL_STKDL (stack defined location)\n"
msgstr ""
-#: vms-alpha.c:6865 vms-alpha.c:7293 vms-alpha.c:7454
+#: vms-alpha.c:6889 vms-alpha.c:7317 vms-alpha.c:7478
#, c-format
msgid "*unhandled*\n"
msgstr ""
-#: vms-alpha.c:6890
+#: vms-alpha.c:6914
#, c-format
msgid "cannot read GST record header\n"
msgstr ""
#. Ill-formed.
-#: vms-alpha.c:6913
+#: vms-alpha.c:6937
#, c-format
msgid "cannot find EMH in first GST record\n"
msgstr ""
-#: vms-alpha.c:6937
+#: vms-alpha.c:6961
#, c-format
msgid "corrupted GST\n"
msgstr ""
-#: vms-alpha.c:6950
+#: vms-alpha.c:6974
#, c-format
msgid "cannot read GST record\n"
msgstr ""
-#: vms-alpha.c:6977
+#: vms-alpha.c:7001
#, c-format
msgid " unhandled EOBJ record type %u\n"
msgstr ""
-#: vms-alpha.c:7002
+#: vms-alpha.c:7026
#, c-format
msgid " bitcount: %u, base addr: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7016
+#: vms-alpha.c:7040
#, c-format
msgid " bitmap: 0x%08x (count: %u):\n"
msgstr ""
-#: vms-alpha.c:7023
+#: vms-alpha.c:7047
#, c-format
msgid " %08x"
msgstr ""
-#: vms-alpha.c:7050
+#: vms-alpha.c:7074
#, c-format
msgid " image %u (%u entries)\n"
msgstr ""
-#: vms-alpha.c:7056
+#: vms-alpha.c:7080
#, c-format
msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7079
+#: vms-alpha.c:7103
#, c-format
msgid " image %u (%u entries), offsets:\n"
msgstr ""
-#: vms-alpha.c:7086
+#: vms-alpha.c:7110
#, c-format
msgid " 0x%08x"
msgstr ""
#. 64 bits.
-#: vms-alpha.c:7212
+#: vms-alpha.c:7236
#, c-format
msgid "64 bits *unhandled*\n"
msgstr ""
-#: vms-alpha.c:7217
+#: vms-alpha.c:7241
#, c-format
msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7228
+#: vms-alpha.c:7252
#, c-format
msgid "non-contiguous array of %s\n"
msgstr ""
-#: vms-alpha.c:7235
+#: vms-alpha.c:7259
#, c-format
msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
msgstr ""
-#: vms-alpha.c:7240
+#: vms-alpha.c:7264
#, c-format
msgid "arsize: %u, a0: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7244
+#: vms-alpha.c:7268
#, c-format
msgid "Strides:\n"
msgstr ""
-#: vms-alpha.c:7258
+#: vms-alpha.c:7282
#, c-format
msgid "Bounds:\n"
msgstr ""
-#: vms-alpha.c:7265
+#: vms-alpha.c:7289
#, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
msgstr ""
-#: vms-alpha.c:7279
+#: vms-alpha.c:7303
#, c-format
msgid "unaligned bit-string of %s\n"
msgstr ""
-#: vms-alpha.c:7286
+#: vms-alpha.c:7310
#, c-format
msgid "base: %u, pos: %u\n"
msgstr ""
-#: vms-alpha.c:7312
+#: vms-alpha.c:7336
#, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
msgstr ""
-#: vms-alpha.c:7319
+#: vms-alpha.c:7343
#, c-format
msgid "(no value)\n"
msgstr ""
-#: vms-alpha.c:7322
+#: vms-alpha.c:7346
#, c-format
msgid "(not active)\n"
msgstr ""
-#: vms-alpha.c:7325
+#: vms-alpha.c:7349
#, c-format
msgid "(not allocated)\n"
msgstr ""
-#: vms-alpha.c:7328
+#: vms-alpha.c:7352
#, c-format
msgid "(descriptor)\n"
msgstr ""
-#: vms-alpha.c:7333
+#: vms-alpha.c:7357
#, c-format
msgid "(trailing value)\n"
msgstr ""
-#: vms-alpha.c:7336
+#: vms-alpha.c:7360
#, c-format
msgid "(value spec follows)\n"
msgstr ""
-#: vms-alpha.c:7339
+#: vms-alpha.c:7363
#, c-format
msgid "(at bit offset %u)\n"
msgstr ""
-#: vms-alpha.c:7343
+#: vms-alpha.c:7367
#, c-format
msgid "(reg: %u, disp: %u, indir: %u, kind: "
msgstr ""
-#: vms-alpha.c:7350
+#: vms-alpha.c:7374
msgid "literal"
msgstr ""
-#: vms-alpha.c:7353
+#: vms-alpha.c:7377
msgid "address"
msgstr ""
-#: vms-alpha.c:7356
+#: vms-alpha.c:7380
msgid "desc"
msgstr ""
-#: vms-alpha.c:7359
+#: vms-alpha.c:7383
msgid "reg"
msgstr ""
-#: vms-alpha.c:7380
+#: vms-alpha.c:7404
#, c-format
msgid "len: %2u, kind: %2u "
msgstr ""
-#: vms-alpha.c:7388
+#: vms-alpha.c:7412
#, c-format
msgid "atomic, type=0x%02x %s\n"
msgstr ""
-#: vms-alpha.c:7393
+#: vms-alpha.c:7417
#, c-format
msgid "indirect, defined at 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7397
+#: vms-alpha.c:7421
#, c-format
msgid "typed pointer\n"
msgstr ""
-#: vms-alpha.c:7401
+#: vms-alpha.c:7425
#, c-format
msgid "pointer\n"
msgstr ""
-#: vms-alpha.c:7412
+#: vms-alpha.c:7436
#, c-format
msgid "array, dim: %u, bitmap: "
msgstr ""
-#: vms-alpha.c:7427
+#: vms-alpha.c:7451
#, c-format
msgid "array descriptor:\n"
msgstr ""
-#: vms-alpha.c:7438
+#: vms-alpha.c:7462
#, c-format
msgid "type spec for element:\n"
msgstr ""
-#: vms-alpha.c:7440
+#: vms-alpha.c:7464
#, c-format
msgid "type spec for subscript %u:\n"
msgstr ""
-#: vms-alpha.c:7465
+#: vms-alpha.c:7489
#, c-format
msgid "Debug symbol table:\n"
msgstr ""
-#: vms-alpha.c:7476
+#: vms-alpha.c:7500
#, c-format
msgid "cannot read DST header\n"
msgstr ""
-#: vms-alpha.c:7482
+#: vms-alpha.c:7506
#, c-format
msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr ""
-#: vms-alpha.c:7499
+#: vms-alpha.c:7523
#, c-format
msgid "cannot read DST symbol\n"
msgstr ""
-#: vms-alpha.c:7543
+#: vms-alpha.c:7567
#, c-format
msgid "standard data: %s\n"
msgstr ""
-#: vms-alpha.c:7547 vms-alpha.c:7671
+#: vms-alpha.c:7571 vms-alpha.c:7695
#, c-format
msgid " name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7555
+#: vms-alpha.c:7579
#, c-format
msgid "modbeg\n"
msgstr ""
-#: vms-alpha.c:7559
+#: vms-alpha.c:7583
#, c-format
msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr ""
-#: vms-alpha.c:7569 vms-alpha.c:7935
+#: vms-alpha.c:7593 vms-alpha.c:7959
#, c-format
msgid " module name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7576
+#: vms-alpha.c:7600
#, c-format
msgid " compiler : %.*s\n"
msgstr ""
-#: vms-alpha.c:7583
+#: vms-alpha.c:7607
#, c-format
msgid "modend\n"
msgstr ""
-#: vms-alpha.c:7590
+#: vms-alpha.c:7614
msgid "rtnbeg\n"
msgstr ""
-#: vms-alpha.c:7594
+#: vms-alpha.c:7618
#, c-format
msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7603
+#: vms-alpha.c:7627
#, c-format
msgid " routine name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7614
+#: vms-alpha.c:7638
#, c-format
msgid "rtnend: size 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7624
+#: vms-alpha.c:7648
#, c-format
msgid "prolog: bkpt address 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7634
+#: vms-alpha.c:7658
#, c-format
msgid "epilog: flags: %u, count: %u\n"
msgstr ""
-#: vms-alpha.c:7649
+#: vms-alpha.c:7673
#, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7661
+#: vms-alpha.c:7685
#, c-format
msgid "blkend: size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7667
+#: vms-alpha.c:7691
#, c-format
msgid "typspec (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7683
+#: vms-alpha.c:7707
#, c-format
msgid "septyp, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7699
+#: vms-alpha.c:7723
#, c-format
msgid "recbeg: name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7703
+#: vms-alpha.c:7727
#, c-format
msgid " len: %u bits\n"
msgstr ""
-#: vms-alpha.c:7709
+#: vms-alpha.c:7733
#, c-format
msgid "recend\n"
msgstr ""
-#: vms-alpha.c:7714
+#: vms-alpha.c:7738
#, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7720
+#: vms-alpha.c:7744
#, c-format
msgid "enumelt, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7726
+#: vms-alpha.c:7750
#, c-format
msgid "enumend\n"
msgstr ""
-#: vms-alpha.c:7733
+#: vms-alpha.c:7757
#, c-format
msgid "label, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7736
+#: vms-alpha.c:7760
#, c-format
msgid " address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7748
+#: vms-alpha.c:7772
#, c-format
msgid "discontiguous range (nbr: %u)\n"
msgstr ""
-#: vms-alpha.c:7755
+#: vms-alpha.c:7779
#, c-format
msgid " address: 0x%08x, size: %u\n"
msgstr ""
-#: vms-alpha.c:7766
+#: vms-alpha.c:7790
#, c-format
msgid "line num (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7785
+#: vms-alpha.c:7809
#, c-format
msgid "delta_pc_w %u\n"
msgstr ""
-#: vms-alpha.c:7794
+#: vms-alpha.c:7818
#, c-format
msgid "incr_linum(b): +%u\n"
msgstr ""
-#: vms-alpha.c:7802
+#: vms-alpha.c:7826
#, c-format
msgid "incr_linum_w: +%u\n"
msgstr ""
-#: vms-alpha.c:7810
+#: vms-alpha.c:7834
#, c-format
msgid "incr_linum_l: +%u\n"
msgstr ""
-#: vms-alpha.c:7818
+#: vms-alpha.c:7842
#, c-format
msgid "set_line_num(w) %u\n"
msgstr ""
-#: vms-alpha.c:7825
+#: vms-alpha.c:7849
#, c-format
msgid "set_line_num_b %u\n"
msgstr ""
-#: vms-alpha.c:7832
+#: vms-alpha.c:7856
#, c-format
msgid "set_line_num_l %u\n"
msgstr ""
-#: vms-alpha.c:7839
+#: vms-alpha.c:7863
#, c-format
msgid "set_abs_pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7845
+#: vms-alpha.c:7869
#, c-format
msgid "delta_pc_l: +0x%08x\n"
msgstr ""
-#: vms-alpha.c:7852
+#: vms-alpha.c:7876
#, c-format
msgid "term(b): 0x%02x"
msgstr ""
-#: vms-alpha.c:7854
+#: vms-alpha.c:7878
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7861
+#: vms-alpha.c:7885
#, c-format
msgid "term_w: 0x%04x"
msgstr ""
-#: vms-alpha.c:7863
+#: vms-alpha.c:7887
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7869
+#: vms-alpha.c:7893
#, c-format
msgid "delta pc +%-4d"
msgstr ""
-#: vms-alpha.c:7873
+#: vms-alpha.c:7897
#, c-format
msgid " pc: 0x%08x line: %5u\n"
msgstr ""
-#: vms-alpha.c:7878
+#: vms-alpha.c:7902
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:7893
+#: vms-alpha.c:7917
#, c-format
msgid "source (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7912
+#: vms-alpha.c:7936
#, c-format
msgid " declfile: len: %u, flags: %u, fileid: %u\n"
msgstr ""
-#: vms-alpha.c:7917
+#: vms-alpha.c:7941
#, c-format
msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr ""
-#: vms-alpha.c:7929
+#: vms-alpha.c:7953
#, c-format
msgid " filename : %.*s\n"
msgstr ""
-#: vms-alpha.c:7945
+#: vms-alpha.c:7969
#, c-format
msgid " setfile %u\n"
msgstr ""
-#: vms-alpha.c:7952 vms-alpha.c:7959
+#: vms-alpha.c:7976 vms-alpha.c:7983
#, c-format
msgid " setrec %u\n"
msgstr ""
-#: vms-alpha.c:7966 vms-alpha.c:7973
+#: vms-alpha.c:7990 vms-alpha.c:7997
#, c-format
msgid " setlnum %u\n"
msgstr ""
-#: vms-alpha.c:7980 vms-alpha.c:7987
+#: vms-alpha.c:8004 vms-alpha.c:8011
#, c-format
msgid " deflines %u\n"
msgstr ""
-#: vms-alpha.c:7991
+#: vms-alpha.c:8015
#, c-format
msgid " formfeed\n"
msgstr ""
-#: vms-alpha.c:7995
+#: vms-alpha.c:8019
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:8007
+#: vms-alpha.c:8031
#, c-format
msgid "*unhandled* dst type %u\n"
msgstr ""
-#: vms-alpha.c:8039
+#: vms-alpha.c:8063
#, c-format
msgid "cannot read EIHD\n"
msgstr ""
-#: vms-alpha.c:8043
+#: vms-alpha.c:8067
#, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
msgstr ""
-#: vms-alpha.c:8047
+#: vms-alpha.c:8071
#, c-format
msgid " majorid: %u, minorid: %u\n"
msgstr ""
-#: vms-alpha.c:8055
+#: vms-alpha.c:8079
msgid "executable"
msgstr ""
-#: vms-alpha.c:8058
+#: vms-alpha.c:8082
msgid "linkable image"
msgstr ""
-#: vms-alpha.c:8065
+#: vms-alpha.c:8089
#, c-format
msgid " image type: %u (%s)"
msgstr ""
-#: vms-alpha.c:8071
+#: vms-alpha.c:8095
msgid "native"
msgstr ""
-#: vms-alpha.c:8074
+#: vms-alpha.c:8098
msgid "CLI"
msgstr ""
-#: vms-alpha.c:8081
+#: vms-alpha.c:8105
#, c-format
msgid ", subtype: %u (%s)\n"
msgstr ""
-#: vms-alpha.c:8088
+#: vms-alpha.c:8112
#, c-format
msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr ""
-#: vms-alpha.c:8092
+#: vms-alpha.c:8116
#, c-format
msgid " fixup info rva: "
msgstr ""
-#: vms-alpha.c:8094
+#: vms-alpha.c:8118
#, c-format
msgid ", symbol vector rva: "
msgstr ""
-#: vms-alpha.c:8097
+#: vms-alpha.c:8121
#, c-format
msgid ""
"\n"
" version array off: %u\n"
msgstr ""
-#: vms-alpha.c:8102
+#: vms-alpha.c:8126
#, c-format
msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr ""
-#: vms-alpha.c:8108
+#: vms-alpha.c:8132
#, c-format
msgid " linker flags: %08x:"
msgstr ""
-#: vms-alpha.c:8139
+#: vms-alpha.c:8163
#, c-format
msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr ""
-#: vms-alpha.c:8145
+#: vms-alpha.c:8169
#, c-format
msgid " BPAGE: %u"
msgstr ""
-#: vms-alpha.c:8152
+#: vms-alpha.c:8176
#, c-format
msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ""
-#: vms-alpha.c:8155
+#: vms-alpha.c:8179
#, c-format
msgid ", alias: %u\n"
msgstr ""
-#: vms-alpha.c:8163
+#: vms-alpha.c:8187
#, c-format
msgid "system version array information:\n"
msgstr ""
-#: vms-alpha.c:8167
+#: vms-alpha.c:8191
#, c-format
msgid "cannot read EIHVN header\n"
msgstr ""
-#: vms-alpha.c:8177
+#: vms-alpha.c:8201
#, c-format
msgid "cannot read EIHVN version\n"
msgstr ""
-#: vms-alpha.c:8180
+#: vms-alpha.c:8204
#, c-format
msgid " %02u "
msgstr ""
-#: vms-alpha.c:8184
+#: vms-alpha.c:8208
msgid "BASE_IMAGE "
msgstr ""
-#: vms-alpha.c:8187
+#: vms-alpha.c:8211
msgid "MEMORY_MANAGEMENT"
msgstr ""
-#: vms-alpha.c:8190
+#: vms-alpha.c:8214
msgid "IO "
msgstr ""
-#: vms-alpha.c:8193
+#: vms-alpha.c:8217
msgid "FILES_VOLUMES "
msgstr ""
-#: vms-alpha.c:8196
+#: vms-alpha.c:8220
msgid "PROCESS_SCHED "
msgstr ""
-#: vms-alpha.c:8199
+#: vms-alpha.c:8223
msgid "SYSGEN "
msgstr ""
-#: vms-alpha.c:8202
+#: vms-alpha.c:8226
msgid "CLUSTERS_LOCKMGR "
msgstr ""
-#: vms-alpha.c:8205
+#: vms-alpha.c:8229
msgid "LOGICAL_NAMES "
msgstr ""
-#: vms-alpha.c:8208
+#: vms-alpha.c:8232
msgid "SECURITY "
msgstr ""
-#: vms-alpha.c:8211
+#: vms-alpha.c:8235
msgid "IMAGE_ACTIVATOR "
msgstr ""
-#: vms-alpha.c:8214
+#: vms-alpha.c:8238
msgid "NETWORKS "
msgstr ""
-#: vms-alpha.c:8217
+#: vms-alpha.c:8241
msgid "COUNTERS "
msgstr ""
-#: vms-alpha.c:8220
+#: vms-alpha.c:8244
msgid "STABLE "
msgstr ""
-#: vms-alpha.c:8223
+#: vms-alpha.c:8247
msgid "MISC "
msgstr ""
-#: vms-alpha.c:8226
+#: vms-alpha.c:8250
msgid "CPU "
msgstr ""
-#: vms-alpha.c:8229
+#: vms-alpha.c:8253
msgid "VOLATILE "
msgstr ""
-#: vms-alpha.c:8232
+#: vms-alpha.c:8256
msgid "SHELL "
msgstr ""
-#: vms-alpha.c:8235
+#: vms-alpha.c:8259
msgid "POSIX "
msgstr ""
-#: vms-alpha.c:8238
+#: vms-alpha.c:8262
msgid "MULTI_PROCESSING "
msgstr ""
-#: vms-alpha.c:8241
+#: vms-alpha.c:8265
msgid "GALAXY "
msgstr ""
-#: vms-alpha.c:8244
+#: vms-alpha.c:8268
msgid "*unknown* "
msgstr ""
-#: vms-alpha.c:8260 vms-alpha.c:8534
+#: vms-alpha.c:8284 vms-alpha.c:8558
#, c-format
msgid "cannot read EIHA\n"
msgstr ""
-#: vms-alpha.c:8263
+#: vms-alpha.c:8287
#, c-format
msgid "Image activation: (size=%u)\n"
msgstr ""
-#: vms-alpha.c:8266
+#: vms-alpha.c:8290
#, c-format
msgid " First address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8270
+#: vms-alpha.c:8294
#, c-format
msgid " Second address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8274
+#: vms-alpha.c:8298
#, c-format
msgid " Third address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8278
+#: vms-alpha.c:8302
#, c-format
msgid " Fourth address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8282
+#: vms-alpha.c:8306
#, c-format
msgid " Shared image : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8293
+#: vms-alpha.c:8317
#, c-format
msgid "cannot read EIHI\n"
msgstr ""
-#: vms-alpha.c:8297
+#: vms-alpha.c:8321
#, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8300
+#: vms-alpha.c:8324
#, c-format
msgid " image name : %.*s\n"
msgstr ""
-#: vms-alpha.c:8302
+#: vms-alpha.c:8326
#, c-format
msgid " link time : %s\n"
msgstr ""
-#: vms-alpha.c:8304
+#: vms-alpha.c:8328
#, c-format
msgid " image ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8306
+#: vms-alpha.c:8330
#, c-format
msgid " linker ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8308
+#: vms-alpha.c:8332
#, c-format
msgid " image build ident: %.*s\n"
msgstr ""
-#: vms-alpha.c:8318
+#: vms-alpha.c:8342
#, c-format
msgid "cannot read EIHS\n"
msgstr ""
-#: vms-alpha.c:8322
+#: vms-alpha.c:8346
#, c-format
msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8328
+#: vms-alpha.c:8352
#, c-format
msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
msgstr ""
-#: vms-alpha.c:8333
+#: vms-alpha.c:8357
#, c-format
msgid " global symbol table: vbn: %u, records: %u\n"
msgstr ""
-#: vms-alpha.c:8338
+#: vms-alpha.c:8362
#, c-format
msgid " debug module table : vbn: %u, size: %u\n"
msgstr ""
-#: vms-alpha.c:8351
+#: vms-alpha.c:8375
#, c-format
msgid "cannot read EISD\n"
msgstr ""
-#: vms-alpha.c:8362
+#: vms-alpha.c:8386
#, c-format
msgid ""
"Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
msgstr ""
-#: vms-alpha.c:8370
+#: vms-alpha.c:8394
#, c-format
msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8375
+#: vms-alpha.c:8399
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:8413
+#: vms-alpha.c:8437
#, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
msgstr ""
-#: vms-alpha.c:8419
+#: vms-alpha.c:8443
msgid "NORMAL"
msgstr ""
-#: vms-alpha.c:8422
+#: vms-alpha.c:8446
msgid "SHRFXD"
msgstr ""
-#: vms-alpha.c:8425
+#: vms-alpha.c:8449
msgid "PRVFXD"
msgstr ""
-#: vms-alpha.c:8428
+#: vms-alpha.c:8452
msgid "SHRPIC"
msgstr ""
-#: vms-alpha.c:8431
+#: vms-alpha.c:8455
msgid "PRVPIC"
msgstr ""
-#: vms-alpha.c:8434
+#: vms-alpha.c:8458
msgid "USRSTACK"
msgstr ""
-#: vms-alpha.c:8440
+#: vms-alpha.c:8464
msgid ")\n"
msgstr ""
-#: vms-alpha.c:8443
+#: vms-alpha.c:8467
#, c-format
msgid " ident: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8453
+#: vms-alpha.c:8477
#, c-format
msgid "cannot read DMT\n"
msgstr ""
-#: vms-alpha.c:8457
+#: vms-alpha.c:8481
#, c-format
msgid "Debug module table:\n"
msgstr ""
-#: vms-alpha.c:8466
+#: vms-alpha.c:8490
#, c-format
msgid "cannot read DMT header\n"
msgstr ""
-#: vms-alpha.c:8472
+#: vms-alpha.c:8496
#, c-format
msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr ""
-#: vms-alpha.c:8482
+#: vms-alpha.c:8506
#, c-format
msgid "cannot read DMT psect\n"
msgstr ""
-#: vms-alpha.c:8486
+#: vms-alpha.c:8510
#, c-format
msgid " psect start: 0x%08x, length: %u\n"
msgstr ""
-#: vms-alpha.c:8499
+#: vms-alpha.c:8523
#, c-format
msgid "cannot read DST\n"
msgstr ""
-#: vms-alpha.c:8509
+#: vms-alpha.c:8533
#, c-format
msgid "cannot read GST\n"
msgstr ""
-#: vms-alpha.c:8513
+#: vms-alpha.c:8537
#, c-format
msgid "Global symbol table:\n"
msgstr ""
-#: vms-alpha.c:8540
+#: vms-alpha.c:8564
#, c-format
msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8544
+#: vms-alpha.c:8568
#, c-format
msgid " iaflink : 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8548
+#: vms-alpha.c:8572
#, c-format
msgid " fixuplnk: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8551
+#: vms-alpha.c:8575
#, c-format
msgid " size : %u\n"
msgstr ""
-#: vms-alpha.c:8553
+#: vms-alpha.c:8577
#, c-format
msgid " flags: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8558
+#: vms-alpha.c:8582
#, c-format
msgid " qrelfixoff: %5u, lrelfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8563
+#: vms-alpha.c:8587
#, c-format
msgid " qdotadroff: %5u, ldotadroff: %5u\n"
msgstr ""
-#: vms-alpha.c:8568
+#: vms-alpha.c:8592
#, c-format
msgid " codeadroff: %5u, lpfixoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8571
+#: vms-alpha.c:8595
#, c-format
msgid " chgprtoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8575
+#: vms-alpha.c:8599
#, c-format
msgid " shlstoff : %5u, shrimgcnt : %5u\n"
msgstr ""
-#: vms-alpha.c:8578
+#: vms-alpha.c:8602
#, c-format
msgid " shlextra : %5u, permctx : %5u\n"
msgstr ""
-#: vms-alpha.c:8581
+#: vms-alpha.c:8605
#, c-format
msgid " base_va : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8583
+#: vms-alpha.c:8607
#, c-format
msgid " lppsbfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8590
+#: vms-alpha.c:8614
#, c-format
msgid " Shareable images:\n"
msgstr ""
-#: vms-alpha.c:8598
+#: vms-alpha.c:8622
#, c-format
msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8605
+#: vms-alpha.c:8629
#, c-format
msgid " quad-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8611
+#: vms-alpha.c:8635
#, c-format
msgid " long-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8617
+#: vms-alpha.c:8641
#, c-format
msgid " quad-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8622
+#: vms-alpha.c:8646
#, c-format
msgid " long-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8627
+#: vms-alpha.c:8651
#, c-format
msgid " Code Address Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8632
+#: vms-alpha.c:8656
#, c-format
msgid " Linkage Pairs Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8640
+#: vms-alpha.c:8664
#, c-format
msgid " Change Protection (%u entries):\n"
msgstr ""
-#: vms-alpha.c:8649
+#: vms-alpha.c:8673
#, c-format
msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9526
+#: vms-alpha.c:9550
msgid "%P: relocatable link is not supported\n"
msgstr ""
-#: vms-alpha.c:9597
+#: vms-alpha.c:9621
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
@@ -8868,11 +8942,11 @@ msgstr ""
msgid "could not open shared image '%s' from '%s'"
msgstr ""
-#: vms-misc.c:370
+#: vms-misc.c:374
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr ""
-#: vms-misc.c:375
+#: vms-misc.c:379
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr ""
@@ -9011,7 +9085,8 @@ msgid "%s is defined but plugin support is disabled"
msgstr ""
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2893 elfnn-riscv.c:5518
+#: elfnn-aarch64.c:2893
+#: elfnn-riscv.c:5524
#, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr ""
@@ -9047,13 +9122,15 @@ msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr ""
#: elfnn-aarch64.c:6173
+#: elfnn-kvx.c:2384
#, c-format
msgid ""
"%pB: local symbol descriptor table be NULL when applying relocation %s "
"against local symbol"
msgstr ""
-#: elfnn-aarch64.c:6286 elfnn-aarch64.c:6323
+#: elfnn-aarch64.c:6286
+#: elfnn-aarch64.c:6323
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr ""
@@ -9080,12 +9157,87 @@ msgstr ""
msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
msgstr ""
-#: elfnn-loongarch.c:153 elfnn-loongarch.c:205
+#: elfnn-kvx.c:930
+msgid ""
+"%F%P: Could not assign '%pA' to an output section. Retry without --enable-"
+"non-contiguous-regions.\n"
+msgstr ""
+
+#: elfnn-kvx.c:2129
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
+msgstr ""
+
+#: elfnn-kvx.c:2853
+#, c-format
+msgid "%s: Bad ELF id: `%d'"
+msgstr ""
+
+#: elfnn-kvx.c:2908
+#, c-format
+msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgstr ""
+
+#: elfnn-kvx.c:2911
+#, c-format
+msgid "%s: compiled as 64-bit object and %s is 32-bit"
+msgstr ""
+
+#: elfnn-kvx.c:2913
+#, c-format
+msgid "%s: object size does not match that of target %s"
+msgstr ""
+
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elfnn-kvx.c:3001
+#, c-format
+msgid "Private flags = 0x%lx : "
+msgstr ""
+
+#: elfnn-kvx.c:3005
+#, c-format
+msgid "Coolidge (kv3) V1 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3007
+#, c-format
+msgid "Coolidge (kv3) V2 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3009
+#, c-format
+msgid "Coolidge (kv4) V1 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3014
+#, c-format
+msgid "Coolidge (kv3) V1 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3016
+#, c-format
+msgid "Coolidge (kv3) V2 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3018
+#, c-format
+msgid "Coolidge (kv4) V1 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3854
+#, c-format
+msgid "relocation against `%s' has faulty GOT type "
+msgstr ""
+
+#: elfnn-loongarch.c:153
+#: elfnn-loongarch.c:205
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr ""
-#: elfnn-loongarch.c:387 elfnn-riscv.c:4005
+#: elfnn-loongarch.c:387
+#: elfnn-riscv.c:4005
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
@@ -9101,14 +9253,16 @@ msgstr ""
msgid "Internal error: unreachable."
msgstr ""
-#: elfnn-loongarch.c:3809 elfnn-riscv.c:4766
+#: elfnn-loongarch.c:3848
+#: elfnn-riscv.c:4766
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
"byte boundary, but only %<PRId64> present"
msgstr ""
-#: elfnn-riscv.c:329 elfnn-riscv.c:364
+#: elfnn-riscv.c:329
+#: elfnn-riscv.c:364
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr ""
@@ -9286,173 +9440,174 @@ msgstr ""
msgid "%pB: unable to create fake empty section"
msgstr ""
-#: peXXigen.c:920
+#: peXXigen.c:922
#, c-format
msgid "%pB:%.8s: section below image base"
msgstr ""
-#: peXXigen.c:925
+#: peXXigen.c:927
#, c-format
msgid "%pB:%.8s: RVA truncated"
msgstr ""
-#: peXXigen.c:1056
+#: peXXigen.c:1058
#, c-format
msgid "%pB: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: peXXigen.c:1222
+#: peXXigen.c:1224
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
-#: peXXigen.c:1223
+#: peXXigen.c:1225
msgid "Import Directory [parts of .idata]"
msgstr ""
-#: peXXigen.c:1224
+#: peXXigen.c:1226
msgid "Resource Directory [.rsrc]"
msgstr ""
-#: peXXigen.c:1225
+#: peXXigen.c:1227
msgid "Exception Directory [.pdata]"
msgstr ""
-#: peXXigen.c:1226
+#: peXXigen.c:1228
msgid "Security Directory"
msgstr ""
-#: peXXigen.c:1227
+#: peXXigen.c:1229
msgid "Base Relocation Directory [.reloc]"
msgstr ""
-#: peXXigen.c:1228
+#: peXXigen.c:1230
msgid "Debug Directory"
msgstr ""
-#: peXXigen.c:1229
+#: peXXigen.c:1231
msgid "Description Directory"
msgstr ""
-#: peXXigen.c:1230
+#: peXXigen.c:1232
msgid "Special Directory"
msgstr ""
-#: peXXigen.c:1231
+#: peXXigen.c:1233
msgid "Thread Storage Directory [.tls]"
msgstr ""
-#: peXXigen.c:1232
+#: peXXigen.c:1234
msgid "Load Configuration Directory"
msgstr ""
-#: peXXigen.c:1233
+#: peXXigen.c:1235
msgid "Bound Import Directory"
msgstr ""
-#: peXXigen.c:1234
+#: peXXigen.c:1236
msgid "Import Address Table Directory"
msgstr ""
-#: peXXigen.c:1235
+#: peXXigen.c:1237
msgid "Delay Import Directory"
msgstr ""
-#: peXXigen.c:1236
+#: peXXigen.c:1238
msgid "CLR Runtime Header"
msgstr ""
-#: peXXigen.c:1237
+#: peXXigen.c:1239
msgid "Reserved"
msgstr ""
-#: peXXigen.c:1302
+#: peXXigen.c:1304
#, c-format
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1308
+#: peXXigen.c:1310
#, c-format
msgid ""
"\n"
"There is an import table in %s, but that section has no contents\n"
msgstr ""
-#: peXXigen.c:1315
+#: peXXigen.c:1317
#, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
msgstr ""
-#: peXXigen.c:1321
+#: peXXigen.c:1323
#, c-format
msgid ""
"\n"
"The Import Tables (interpreted %s section contents)\n"
msgstr ""
-#: peXXigen.c:1324
+#: peXXigen.c:1326
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
msgstr ""
-#: peXXigen.c:1373
+#: peXXigen.c:1375
#, c-format
msgid ""
"\n"
"\tDLL Name: %.*s\n"
msgstr ""
-#: peXXigen.c:1389
+#: peXXigen.c:1391
#, c-format
msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
msgstr ""
-#: peXXigen.c:1414
+#: peXXigen.c:1416
#, c-format
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1461 peXXigen.c:1500
+#: peXXigen.c:1463
+#: peXXigen.c:1502
#, c-format
msgid "\t<corrupt: 0x%04lx>"
msgstr ""
-#: peXXigen.c:1593
+#: peXXigen.c:1595
#, c-format
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1606
+#: peXXigen.c:1608
#, c-format
msgid ""
"\n"
"There is an export table in %s, but it is too small (%d)\n"
msgstr ""
-#: peXXigen.c:1614
+#: peXXigen.c:1616
#, c-format
msgid ""
"\n"
"There is an export table in %s, but contents cannot be read\n"
msgstr ""
-#: peXXigen.c:1620
+#: peXXigen.c:1622
#, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr ""
-#: peXXigen.c:1651
+#: peXXigen.c:1653
#, c-format
msgid ""
"\n"
@@ -9460,145 +9615,147 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:1655
+#: peXXigen.c:1657
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr ""
-#: peXXigen.c:1658
+#: peXXigen.c:1660
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr ""
-#: peXXigen.c:1662
+#: peXXigen.c:1664
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr ""
-#: peXXigen.c:1665
+#: peXXigen.c:1667
#, c-format
msgid "Name \t\t\t\t"
msgstr ""
-#: peXXigen.c:1676
+#: peXXigen.c:1678
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr ""
-#: peXXigen.c:1679
+#: peXXigen.c:1681
#, c-format
msgid "Number in:\n"
msgstr ""
-#: peXXigen.c:1682
+#: peXXigen.c:1684
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr ""
-#: peXXigen.c:1686
+#: peXXigen.c:1688
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr ""
-#: peXXigen.c:1689
+#: peXXigen.c:1691
#, c-format
msgid "Table Addresses\n"
msgstr ""
-#: peXXigen.c:1692
+#: peXXigen.c:1694
#, c-format
msgid "\tExport Address Table \t\t"
msgstr ""
-#: peXXigen.c:1697
+#: peXXigen.c:1699
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr ""
-#: peXXigen.c:1702
+#: peXXigen.c:1704
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr ""
-#: peXXigen.c:1716
+#: peXXigen.c:1718
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1725
+#: peXXigen.c:1727
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1744
+#: peXXigen.c:1746
msgid "Forwarder RVA"
msgstr ""
-#: peXXigen.c:1756
+#: peXXigen.c:1758
msgid "Export RVA"
msgstr ""
-#: peXXigen.c:1763
+#: peXXigen.c:1765
#, c-format
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
msgstr ""
-#: peXXigen.c:1771
+#: peXXigen.c:1773
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1778
+#: peXXigen.c:1780
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1792
+#: peXXigen.c:1794
#, c-format
msgid "\t[%4ld] <corrupt offset: %lx>\n"
msgstr ""
-#: peXXigen.c:1847 peXXigen.c:2017
+#: peXXigen.c:1849
+#: peXXigen.c:2019
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peXXigen.c:1851 peXXigen.c:2021
+#: peXXigen.c:1853
+#: peXXigen.c:2023
#, c-format
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peXXigen.c:1854
+#: peXXigen.c:1856
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr ""
-#: peXXigen.c:1856
+#: peXXigen.c:1858
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peXXigen.c:1869
+#: peXXigen.c:1871
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr ""
-#: peXXigen.c:2023
+#: peXXigen.c:2025
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
" \t\tAddress Length Length 32b exc Handler Data\n"
msgstr ""
-#: peXXigen.c:2148
+#: peXXigen.c:2150
#, c-format
msgid ""
"\n"
@@ -9606,86 +9763,86 @@ msgid ""
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peXXigen.c:2177
+#: peXXigen.c:2179
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peXXigen.c:2195
+#: peXXigen.c:2197
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
-#: peXXigen.c:2256
+#: peXXigen.c:2258
#, c-format
msgid "%03x %*.s Entry: "
msgstr ""
-#: peXXigen.c:2280
+#: peXXigen.c:2282
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr ""
-#: peXXigen.c:2300
+#: peXXigen.c:2302
#, c-format
msgid "<corrupt string length: %#x>\n"
msgstr ""
-#: peXXigen.c:2310
+#: peXXigen.c:2312
#, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr ""
-#: peXXigen.c:2315
+#: peXXigen.c:2317
#, c-format
msgid "ID: %#08lx"
msgstr ""
-#: peXXigen.c:2318
+#: peXXigen.c:2320
#, c-format
msgid ", Value: %#08lx\n"
msgstr ""
-#: peXXigen.c:2340
+#: peXXigen.c:2342
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
-#: peXXigen.c:2382
+#: peXXigen.c:2384
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr ""
-#: peXXigen.c:2390
+#: peXXigen.c:2392
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
-#: peXXigen.c:2478
+#: peXXigen.c:2480
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr ""
-#: peXXigen.c:2502
+#: peXXigen.c:2504
#, c-format
msgid ""
"\n"
"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
msgstr ""
-#: peXXigen.c:2508
+#: peXXigen.c:2510
#, c-format
msgid " String table starts at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2511
+#: peXXigen.c:2513
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2568
+#: peXXigen.c:2570
#, c-format
msgid ""
"\n"
@@ -9693,14 +9850,14 @@ msgid ""
"found\n"
msgstr ""
-#: peXXigen.c:2574
+#: peXXigen.c:2576
#, c-format
msgid ""
"\n"
"There is a debug directory in %s, but that section has no contents\n"
msgstr ""
-#: peXXigen.c:2581
+#: peXXigen.c:2583
#, c-format
msgid ""
"\n"
@@ -9708,7 +9865,7 @@ msgid ""
"small\n"
msgstr ""
-#: peXXigen.c:2586
+#: peXXigen.c:2588
#, c-format
msgid ""
"\n"
@@ -9716,23 +9873,23 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:2593
+#: peXXigen.c:2595
#, c-format
msgid ""
"The debug data size field in the data directory is too big for the section"
msgstr ""
-#: peXXigen.c:2598
+#: peXXigen.c:2600
#, c-format
msgid "Type Size Rva Offset\n"
msgstr ""
-#: peXXigen.c:2646
+#: peXXigen.c:2648
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr ""
-#: peXXigen.c:2658
+#: peXXigen.c:2660
#, c-format
msgid ""
"The debug directory size is not a multiple of the debug directory entry "
@@ -9742,100 +9899,100 @@ 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:2742
+#: peXXigen.c:2744
#, c-format
msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
-#: peXXigen.c:3027
+#: peXXigen.c:3029
#, c-format
msgid ""
"%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary "
"at %<PRIx64>"
msgstr ""
-#: peXXigen.c:3068
+#: peXXigen.c:3070
msgid "failed to update file offsets in debug directory"
msgstr ""
-#: peXXigen.c:3077
+#: peXXigen.c:3079
#, c-format
msgid "%pB: failed to read debug data section"
msgstr ""
-#: peXXigen.c:3880
+#: peXXigen.c:3882
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ""
-#: peXXigen.c:4015
+#: peXXigen.c:4017
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ""
-#: peXXigen.c:4033
+#: peXXigen.c:4035
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr ""
-#: peXXigen.c:4075
+#: peXXigen.c:4077
msgid ".rsrc merge failure: duplicate leaf"
msgstr ""
-#: peXXigen.c:4080
+#: peXXigen.c:4082
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr ""
-#: peXXigen.c:4147
+#: peXXigen.c:4149
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr ""
-#: peXXigen.c:4154
+#: peXXigen.c:4156
msgid ".rsrc merge failure: differing directory versions"
msgstr ""
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4266
+#: peXXigen.c:4268
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr ""
-#: peXXigen.c:4274
+#: peXXigen.c:4276
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr ""
-#: peXXigen.c:4413
+#: peXXigen.c:4415
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
msgstr ""
-#: peXXigen.c:4433
+#: peXXigen.c:4435
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
msgstr ""
-#: peXXigen.c:4454
+#: peXXigen.c:4456
#, c-format
msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
msgstr ""
-#: peXXigen.c:4474
+#: peXXigen.c:4476
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
"idata$6 is missing"
msgstr ""
-#: peXXigen.c:4516
+#: peXXigen.c:4518
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
"idata$6 is missing"
msgstr ""
-#: peXXigen.c:4541
+#: peXXigen.c:4543
#, c-format
msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
msgstr ""
--
2.41.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Make various error-related globals thread-local
2023-10-26 19:07 [PATCH 0/3] Threads and BFD Tom Tromey
2023-10-26 19:07 ` [PATCH 1/3] Make _bfd_error_buf static Tom Tromey
@ 2023-10-26 19:07 ` Tom Tromey
2023-11-01 12:28 ` Nick Clifton
2023-10-26 19:07 ` [PATCH 3/3] Add minimal thread-safety to BFD Tom Tromey
2023-11-01 12:26 ` [PATCH 0/3] Threads and BFD Nick Clifton
3 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2023-10-26 19:07 UTC (permalink / raw)
To: binutils; +Cc: Tom Tromey
This changes bfd_error et al to be thread-local.
* Makefile.in: Regenerate.
* aclocal.m4: Include ax_tls.m4.
* ax_tls.m4: New file.
* bfd.c: (bfd_error, input_error, input_bfd, _bfd_error_buf):
Now thread-local.
(bfd_asprintf): Update docs.
* config.in, configure: Regenerate.
* configure.ac: Call AX_TLS.
* po/bfd.pot: Regenerate.
---
bfd/Makefile.in | 6 ++--
bfd/aclocal.m4 | 1 +
bfd/ax_tls.m4 | 71 ++++++++++++++++++++++++++++++++++++++++++++++++
bfd/bfd.c | 12 ++++----
bfd/config.in | 3 ++
bfd/configure | 51 ++++++++++++++++++++++++++++++++++
bfd/configure.ac | 2 ++
bfd/po/bfd.pot | 56 +++++++++++++++++++-------------------
8 files changed, 166 insertions(+), 36 deletions(-)
create mode 100644 bfd/ax_tls.m4
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 8d09f6fa4af..cf227d09c27 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -129,9 +129,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/zstd.m4 $(top_srcdir)/../libtool.m4 \
$(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
$(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
- $(top_srcdir)/bfd.m4 $(top_srcdir)/warning.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/version.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/ax_tls.m4 $(top_srcdir)/bfd.m4 \
+ $(top_srcdir)/warning.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/version.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
diff --git a/bfd/aclocal.m4 b/bfd/aclocal.m4
index 09b849dfc87..e0142ae724e 100644
--- a/bfd/aclocal.m4
+++ b/bfd/aclocal.m4
@@ -1187,6 +1187,7 @@ m4_include([../ltoptions.m4])
m4_include([../ltsugar.m4])
m4_include([../ltversion.m4])
m4_include([../lt~obsolete.m4])
+m4_include([ax_tls.m4])
m4_include([bfd.m4])
m4_include([warning.m4])
m4_include([acinclude.m4])
diff --git a/bfd/ax_tls.m4 b/bfd/ax_tls.m4
new file mode 100644
index 00000000000..fb184fe201b
--- /dev/null
+++ b/bfd/ax_tls.m4
@@ -0,0 +1,71 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_tls.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_TLS([action-if-found], [action-if-not-found])
+#
+# DESCRIPTION
+#
+# Provides a test for the compiler support of thread local storage (TLS)
+# extensions. Defines TLS if it is found. Currently knows about C++11,
+# GCC/ICC, and MSVC. I think SunPro uses the same as GCC, and Borland
+# apparently supports either.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Alan Woodland <ajw05@aber.ac.uk>
+# Copyright (c) 2010 Diego Elio Petteno` <flameeyes@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 15
+
+AC_DEFUN([AX_TLS], [
+ AC_MSG_CHECKING([for thread local storage (TLS) class])
+ AC_CACHE_VAL([ac_cv_tls],
+ [for ax_tls_keyword in thread_local _Thread_local __thread '__declspec(thread)' none; do
+ AS_CASE([$ax_tls_keyword],
+ [none], [ac_cv_tls=none ; break],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [#include <stdlib.h>],
+ [static $ax_tls_keyword int bar;]
+ )],
+ [ac_cv_tls=$ax_tls_keyword ; break],
+ [ac_cv_tls=none]
+ )]
+ )
+ done ]
+ )
+ AC_MSG_RESULT([$ac_cv_tls])
+
+ AS_IF([test "$ac_cv_tls" != "none"],
+ [AC_DEFINE_UNQUOTED([TLS],[$ac_cv_tls],[If the compiler supports a TLS storage class, define it to that here])
+ m4_ifnblank([$1],[$1],[[:]])],
+ [m4_ifnblank([$2],[$2],[[:]])])
+])
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 08980ae52b7..2cf8361caa2 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -691,6 +691,8 @@ SECTION
The easiest way to report a BFD error to the user is to
use <<bfd_perror>>.
+ The BFD error is thread-local.
+
SUBSECTION
Type <<bfd_error_type>>
@@ -728,10 +730,10 @@ CODE_FRAGMENT
.
*/
-static bfd_error_type bfd_error;
-static bfd_error_type input_error;
-static bfd *input_bfd;
-static char *_bfd_error_buf;
+static TLS bfd_error_type bfd_error;
+static TLS bfd_error_type input_error;
+static TLS bfd *input_bfd;
+static TLS char *_bfd_error_buf;
const char *const bfd_errmsgs[] =
{
@@ -920,7 +922,7 @@ DESCRIPTION
Primarily for error reporting, this function is like
libiberty's xasprintf except that it can return NULL on no
memory and the returned string should not be freed. Uses a
- single malloc'd buffer managed by libbfd, _bfd_error_buf.
+ thread-local malloc'd buffer managed by libbfd, _bfd_error_buf.
Be aware that a call to this function frees the result of any
previous call. bfd_errmsg (bfd_error_on_input) also calls
this function.
diff --git a/bfd/config.in b/bfd/config.in
index 7ff3eeebf8b..0ba104f4431 100644
--- a/bfd/config.in
+++ b/bfd/config.in
@@ -285,6 +285,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* If the compiler supports a TLS storage class, define it to that here */
+#undef TLS
+
/* Name of host specific header file to include in trad-core.c. */
#undef TRAD_HEADER
diff --git a/bfd/configure b/bfd/configure
index f0a07ff675f..de94019bd9c 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -13283,6 +13283,57 @@ $as_echo "#define USE_BINARY_FOPEN 1" >>confdefs.h
;;
esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5
+$as_echo_n "checking for thread local storage (TLS) class... " >&6; }
+ if ${ac_cv_tls+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for ax_tls_keyword in thread_local _Thread_local __thread '__declspec(thread)' none; do
+ case $ax_tls_keyword in #(
+ none) :
+ ac_cv_tls=none ; break ;; #(
+ *) :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+static $ax_tls_keyword int bar;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_tls=$ax_tls_keyword ; break
+else
+ ac_cv_tls=none
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+esac
+ done
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
+$as_echo "$ac_cv_tls" >&6; }
+
+ if test "$ac_cv_tls" != "none"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define TLS $ac_cv_tls
+_ACEOF
+
+ :
+else
+ :
+fi
+
+
# Link in zlib/zstd if we can. This allows us to read compressed debug sections.
# This is used only by compress.c.
diff --git a/bfd/configure.ac b/bfd/configure.ac
index d1e7e3a4bf3..42678065e57 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -233,6 +233,8 @@ AC_CHECK_DECLS([___lc_codepage_func], [], [], [[#include <locale.h>]])
BFD_BINARY_FOPEN
+AX_TLS
+
# Link in zlib/zstd if we can. This allows us to read compressed debug sections.
# This is used only by compress.c.
AM_ZLIB
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index fa47ba70e91..33d51490482 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-10-26 11:38-0600\n"
+"POT-Creation-Date: 2023-10-26 11:42-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -138,115 +138,115 @@ msgstr ""
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:738
+#: bfd.c:740
msgid "no error"
msgstr ""
-#: bfd.c:739
+#: bfd.c:741
msgid "system call error"
msgstr ""
-#: bfd.c:740
+#: bfd.c:742
msgid "invalid bfd target"
msgstr ""
-#: bfd.c:741
+#: bfd.c:743
msgid "file in wrong format"
msgstr ""
-#: bfd.c:742
+#: bfd.c:744
msgid "archive object file in wrong format"
msgstr ""
-#: bfd.c:743
+#: bfd.c:745
msgid "invalid operation"
msgstr ""
-#: bfd.c:744
+#: bfd.c:746
msgid "memory exhausted"
msgstr ""
-#: bfd.c:745
+#: bfd.c:747
msgid "no symbols"
msgstr ""
-#: bfd.c:746
+#: bfd.c:748
msgid "archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:747
+#: bfd.c:749
msgid "no more archived files"
msgstr ""
-#: bfd.c:748
+#: bfd.c:750
msgid "malformed archive"
msgstr ""
-#: bfd.c:749
+#: bfd.c:751
msgid "DSO missing from command line"
msgstr ""
-#: bfd.c:750
+#: bfd.c:752
msgid "file format not recognized"
msgstr ""
-#: bfd.c:751
+#: bfd.c:753
msgid "file format is ambiguous"
msgstr ""
-#: bfd.c:752
+#: bfd.c:754
msgid "section has no contents"
msgstr ""
-#: bfd.c:753
+#: bfd.c:755
msgid "nonrepresentable section on output"
msgstr ""
-#: bfd.c:754
+#: bfd.c:756
msgid "symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:755
+#: bfd.c:757
msgid "bad value"
msgstr ""
-#: bfd.c:756
+#: bfd.c:758
msgid "file truncated"
msgstr ""
-#: bfd.c:757
+#: bfd.c:759
msgid "file too big"
msgstr ""
-#: bfd.c:758
+#: bfd.c:760
msgid "sorry, cannot handle this file"
msgstr ""
-#: bfd.c:759
+#: bfd.c:761
#, c-format
msgid "error reading %s: %s"
msgstr ""
-#: bfd.c:760
+#: bfd.c:762
msgid "#<invalid error code>"
msgstr ""
-#: bfd.c:1890
+#: bfd.c:1892
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:1903
+#: bfd.c:1905
#, c-format
msgid "BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:1908
+#: bfd.c:1910
#, c-format
msgid "BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfd.c:1910
+#: bfd.c:1912
msgid "Please report this bug.\n"
msgstr ""
--
2.41.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/3] Add minimal thread-safety to BFD
2023-10-26 19:07 [PATCH 0/3] Threads and BFD Tom Tromey
2023-10-26 19:07 ` [PATCH 1/3] Make _bfd_error_buf static Tom Tromey
2023-10-26 19:07 ` [PATCH 2/3] Make various error-related globals thread-local Tom Tromey
@ 2023-10-26 19:07 ` Tom Tromey
2023-11-01 12:45 ` Nick Clifton
2023-11-01 12:26 ` [PATCH 0/3] Threads and BFD Nick Clifton
3 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2023-10-26 19:07 UTC (permalink / raw)
To: binutils; +Cc: Tom Tromey
This patch provides some minimal thread-safety to BFD.
The BFD client can request thread-safety by providing a lock and
unlock function. The globals used during BFD creation (e.g.,
bfd_id_counter) are then locked, and the file descriptor cache is also
locked. A function to clean up any thread-local data is now provided
for BFD clients.
* bfd-in2.h: Regenerate.
* bfd.c (lock_fn, unlock_fn): New globals.
(bfd_thread_init, bfd_thread_cleanup, bfd_lock, bfd_unlock): New
functions.
* cache.c (bfd_cache_lookup_worker): Use _bfd_open_file_unlocked.
(cache_btell, cache_bseek, cache_bread, cache_bwrite): Lock
and unlock.
(cache_bclose): Add comment.
(cache_bflush, cache_bstat, cache_bmmap): Lock and unlock.
(_bfd_cache_init_unlocked): New function.
(bfd_cache_init): Use it. Lock and unlock.
(_bfd_cache_close_unlocked): New function.
(bfd_cache_close, bfd_cache_close_all): Use it. Lock and unlock.
(_bfd_open_file_unlocked): New function.
(bfd_open_file): Use it. Lock and unlock.
* doc/bfd.texi (BFD front end): Add Threading menu item.
* libbfd.h: Regenerate.
* opncls.c (_bfd_new_bfd): Lock and unlock.
* po/bfd.pot: Regenerate.
---
bfd/bfd-in2.h | 6 ++
bfd/bfd.c | 109 +++++++++++++++++++++++++++++-
bfd/cache.c | 170 +++++++++++++++++++++++++++++++++--------------
bfd/doc/bfd.texi | 1 +
bfd/libbfd.h | 4 ++
bfd/opncls.c | 2 +
bfd/po/bfd.pot | 10 +--
7 files changed, 246 insertions(+), 56 deletions(-)
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index e26bc40a9e1..13c4207667a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2572,6 +2572,12 @@ unsigned int bfd_init (void);
/* Value returned by bfd_init. */
#define BFD_INIT_MAGIC (sizeof (struct bfd_section))
+typedef void (*bfd_lock_unlock_fn_type) (void);
+void bfd_thread_init
+ (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock);
+
+void bfd_thread_cleanup (void);
+
long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
long bfd_canonicalize_reloc
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 2cf8361caa2..18aa21884fd 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1716,7 +1716,7 @@ bfd_set_assert_handler (bfd_assert_handler_type pnew)
/*
INODE
-Initialization, Miscellaneous, Error reporting, BFD front end
+Initialization, Threading, Error reporting, BFD front end
FUNCTION
bfd_init
@@ -1749,9 +1749,114 @@ bfd_init (void)
return BFD_INIT_MAGIC;
}
\f
+
+/*
+INODE
+Threading, Miscellaneous, Initialization, BFD front end
+
+SECTION
+ Threading
+
+ BFD has limited support for thread-safety. Most BFD globals
+ are protected by locks, while the error-related globals are
+ thread-local. A given BFD cannot safely be used from two
+ threads at the same time; it is up to the application to do
+ any needed locking. However, it is ok for different threads
+ to work on different BFD objects at the same time.
+
+SUBSECTION
+ Thread functions.
+
+CODE_FRAGMENT
+.typedef void (*bfd_lock_unlock_fn_type) (void);
+*/
+
+/* The lock and unlock functions, if set. */
+static bfd_lock_unlock_fn_type lock_fn;
+static bfd_lock_unlock_fn_type unlock_fn;
+
+/*
+FUNCTION
+ bfd_thread_init
+
+SYNOPSIS
+ void bfd_thread_init
+ (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock);
+
+DESCRIPTION
+
+ Initialize BFD threading. The functions passed in will be
+ used to lock and unlock global data structures.
+*/
+
+void
+bfd_thread_init (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock)
+{
+ lock_fn = lock;
+ unlock_fn = unlock;
+}
+
+/*
+FUNCTION
+ bfd_thread_cleanup
+
+SYNOPSIS
+ void bfd_thread_cleanup (void);
+
+DESCRIPTION
+
+ Clean up any thread-local state. This should be called by a
+ thread that uses any BFD functions, before the thread exits.
+ It is fine to call this multiple times, or to call it and then
+ later call BFD functions on the same thread again.
+*/
+
+void
+bfd_thread_cleanup (void)
+{
+ _bfd_clear_error_data ();
+}
+
+/*
+INTERNAL_FUNCTION
+ bfd_lock
+
+SYNOPSIS
+ void bfd_lock (void);
+
+DESCRIPTION
+ Acquire the global BFD lock, if needed.
+*/
+
+void
+bfd_lock (void)
+{
+ if (lock_fn != NULL)
+ lock_fn ();
+}
+
+/*
+INTERNAL_FUNCTION
+ bfd_unlock
+
+SYNOPSIS
+ void bfd_unlock (void);
+
+DESCRIPTION
+ Release the global BFD lock, if needed.
+*/
+
+void
+bfd_unlock (void)
+{
+ if (unlock_fn != NULL)
+ unlock_fn ();
+}
+
+
/*
INODE
-Miscellaneous, Memory Usage, Initialization, BFD front end
+Miscellaneous, Memory Usage, Threading, BFD front end
SECTION
Miscellaneous
diff --git a/bfd/cache.c b/bfd/cache.c
index 3d26bee0773..ae7ebcdadd6 100644
--- a/bfd/cache.c
+++ b/bfd/cache.c
@@ -49,6 +49,8 @@ SUBSECTION
#include <sys/mman.h>
#endif
+static FILE *_bfd_open_file_unlocked (bfd *abfd);
+
/* In some cases we can optimize cache operation when reopening files.
For instance, a flush is entirely unnecessary if the file is already
closed, so a flush would use CACHE_NO_OPEN. Similarly, a seek using
@@ -259,7 +261,7 @@ bfd_cache_lookup_worker (bfd *abfd, enum cache_flag flag)
if (flag & CACHE_NO_OPEN)
return NULL;
- if (bfd_open_file (abfd) == NULL)
+ if (_bfd_open_file_unlocked (abfd) == NULL)
;
else if (!(flag & CACHE_NO_SEEK)
&& _bfd_real_fseek ((FILE *) abfd->iostream,
@@ -278,19 +280,31 @@ bfd_cache_lookup_worker (bfd *abfd, enum cache_flag flag)
static file_ptr
cache_btell (struct bfd *abfd)
{
+ bfd_lock ();
FILE *f = bfd_cache_lookup (abfd, CACHE_NO_OPEN);
if (f == NULL)
- return abfd->where;
- return _bfd_real_ftell (f);
+ {
+ bfd_unlock ();
+ return abfd->where;
+ }
+ file_ptr result = _bfd_real_ftell (f);
+ bfd_unlock ();
+ return result;
}
static int
cache_bseek (struct bfd *abfd, file_ptr offset, int whence)
{
+ bfd_lock ();
FILE *f = bfd_cache_lookup (abfd, whence != SEEK_CUR ? CACHE_NO_SEEK : CACHE_NORMAL);
if (f == NULL)
- return -1;
- return _bfd_real_fseek (f, offset, whence);
+ {
+ bfd_unlock ();
+ return -1;
+ }
+ int result = _bfd_real_fseek (f, offset, whence);
+ bfd_unlock ();
+ return result;
}
/* Note that archive entries don't have streams; they share their parent's.
@@ -338,12 +352,16 @@ cache_bread_1 (FILE *f, void *buf, file_ptr nbytes)
static file_ptr
cache_bread (struct bfd *abfd, void *buf, file_ptr nbytes)
{
+ bfd_lock ();
file_ptr nread = 0;
FILE *f;
f = bfd_cache_lookup (abfd, CACHE_NORMAL);
if (f == NULL)
- return -1;
+ {
+ bfd_unlock ();
+ return -1;
+ }
/* Some filesystems are unable to handle reads that are too large
(for instance, NetApp shares with oplocks turned off). To avoid
@@ -374,57 +392,75 @@ cache_bread (struct bfd *abfd, void *buf, file_ptr nbytes)
break;
}
+ bfd_unlock ();
return nread;
}
static file_ptr
cache_bwrite (struct bfd *abfd, const void *from, file_ptr nbytes)
{
+ bfd_lock ();
file_ptr nwrite;
FILE *f = bfd_cache_lookup (abfd, CACHE_NORMAL);
if (f == NULL)
- return 0;
+ {
+ bfd_unlock ();
+ return 0;
+ }
nwrite = fwrite (from, 1, nbytes, f);
if (nwrite < nbytes && ferror (f))
{
bfd_set_error (bfd_error_system_call);
+ bfd_unlock ();
return -1;
}
+ bfd_unlock ();
return nwrite;
}
static int
cache_bclose (struct bfd *abfd)
{
+ /* No locking needed here, it's handled by the callee. */
return bfd_cache_close (abfd) - 1;
}
static int
cache_bflush (struct bfd *abfd)
{
+ bfd_lock ();
int sts;
FILE *f = bfd_cache_lookup (abfd, CACHE_NO_OPEN);
if (f == NULL)
- return 0;
+ {
+ bfd_unlock ();
+ return 0;
+ }
sts = fflush (f);
if (sts < 0)
bfd_set_error (bfd_error_system_call);
+ bfd_unlock ();
return sts;
}
static int
cache_bstat (struct bfd *abfd, struct stat *sb)
{
+ bfd_lock ();
int sts;
FILE *f = bfd_cache_lookup (abfd, CACHE_NO_SEEK_ERROR);
if (f == NULL)
- return -1;
+ {
+ bfd_unlock ();
+ return -1;
+ }
sts = fstat (fileno (f), sb);
if (sts < 0)
bfd_set_error (bfd_error_system_call);
+ bfd_unlock ();
return sts;
}
@@ -440,6 +476,7 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_UNUSED,
{
void *ret = (void *) -1;
+ bfd_lock ();
if ((abfd->flags & BFD_IN_MEMORY) != 0)
abort ();
#ifdef HAVE_MMAP
@@ -452,7 +489,10 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_UNUSED,
f = bfd_cache_lookup (abfd, CACHE_NO_SEEK_ERROR);
if (f == NULL)
- return ret;
+ {
+ bfd_unlock ();
+ return ret;
+ }
if (pagesize_m1 == 0)
pagesize_m1 = getpagesize () - 1;
@@ -473,6 +513,7 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_UNUSED,
}
#endif
+ bfd_unlock ();
return ret;
}
@@ -482,6 +523,22 @@ static const struct bfd_iovec cache_iovec =
&cache_bclose, &cache_bflush, &cache_bstat, &cache_bmmap
};
+static bool
+_bfd_cache_init_unlocked (bfd *abfd)
+{
+ BFD_ASSERT (abfd->iostream != NULL);
+ if (open_files >= bfd_cache_max_open ())
+ {
+ if (! close_one ())
+ return false;
+ }
+ abfd->iovec = &cache_iovec;
+ insert (abfd);
+ abfd->flags &= ~BFD_CLOSED_BY_CACHE;
+ ++open_files;
+ return true;
+}
+
/*
INTERNAL_FUNCTION
bfd_cache_init
@@ -496,17 +553,26 @@ DESCRIPTION
bool
bfd_cache_init (bfd *abfd)
{
- BFD_ASSERT (abfd->iostream != NULL);
- if (open_files >= bfd_cache_max_open ())
- {
- if (! close_one ())
- return false;
- }
- abfd->iovec = &cache_iovec;
- insert (abfd);
- abfd->flags &= ~BFD_CLOSED_BY_CACHE;
- ++open_files;
- return true;
+ bfd_lock ();
+ bool result = _bfd_cache_init_unlocked (abfd);
+ bfd_unlock ();
+ return result;
+}
+
+static bool
+_bfd_cache_close_unlocked (bfd *abfd)
+{
+ /* Don't remove this test. bfd_reinit depends on it. */
+ if (abfd->iovec != &cache_iovec)
+ return true;
+
+ if (abfd->iostream == NULL)
+ /* Previously closed. */
+ return true;
+
+ /* Note: no locking needed in this function, as it is handled by
+ bfd_cache_delete. */
+ return bfd_cache_delete (abfd);
}
/*
@@ -527,15 +593,10 @@ DESCRIPTION
bool
bfd_cache_close (bfd *abfd)
{
- /* Don't remove this test. bfd_reinit depends on it. */
- if (abfd->iovec != &cache_iovec)
- return true;
-
- if (abfd->iostream == NULL)
- /* Previously closed. */
- return true;
-
- return bfd_cache_delete (abfd);
+ bfd_lock ();
+ bool result = _bfd_cache_close_unlocked (abfd);
+ bfd_unlock ();
+ return result;
}
/*
@@ -560,11 +621,12 @@ bfd_cache_close_all (void)
{
bool ret = true;
+ bfd_lock ();
while (bfd_last_cache != NULL)
{
bfd *prev_bfd_last_cache = bfd_last_cache;
- ret &= bfd_cache_close (bfd_last_cache);
+ ret &= _bfd_cache_close_unlocked (bfd_last_cache);
/* Stop a potential infinite loop should bfd_cache_close()
not update bfd_last_cache. */
@@ -572,6 +634,7 @@ bfd_cache_close_all (void)
break;
}
+ bfd_unlock ();
return ret;
}
@@ -592,23 +655,8 @@ bfd_cache_size (void)
return open_files;
}
-/*
-INTERNAL_FUNCTION
- bfd_open_file
-
-SYNOPSIS
- FILE* bfd_open_file (bfd *abfd);
-
-DESCRIPTION
- Call the OS to open a file for @var{abfd}. Return the <<FILE *>>
- (possibly <<NULL>>) that results from this operation. Set up the
- BFD so that future accesses know the file is open. If the <<FILE *>>
- returned is <<NULL>>, then it won't have been put in the
- cache, so it won't have to be removed from it.
-*/
-
-FILE *
-bfd_open_file (bfd *abfd)
+static FILE *
+_bfd_open_file_unlocked (bfd *abfd)
{
abfd->cacheable = true; /* Allow it to be closed later. */
@@ -673,9 +721,33 @@ bfd_open_file (bfd *abfd)
bfd_set_error (bfd_error_system_call);
else
{
- if (! bfd_cache_init (abfd))
+ if (! _bfd_cache_init_unlocked (abfd))
return NULL;
}
return (FILE *) abfd->iostream;
}
+
+/*
+INTERNAL_FUNCTION
+ bfd_open_file
+
+SYNOPSIS
+ FILE* bfd_open_file (bfd *abfd);
+
+DESCRIPTION
+ Call the OS to open a file for @var{abfd}. Return the <<FILE *>>
+ (possibly <<NULL>>) that results from this operation. Set up the
+ BFD so that future accesses know the file is open. If the <<FILE *>>
+ returned is <<NULL>>, then it won't have been put in the
+ cache, so it won't have to be removed from it.
+*/
+
+FILE *
+bfd_open_file (bfd *abfd)
+{
+ bfd_lock ();
+ FILE *result = _bfd_open_file_unlocked (abfd);
+ bfd_unlock ();
+ return result;
+}
diff --git a/bfd/doc/bfd.texi b/bfd/doc/bfd.texi
index f348710845f..3f70cb73a1d 100644
--- a/bfd/doc/bfd.texi
+++ b/bfd/doc/bfd.texi
@@ -199,6 +199,7 @@ IEEE-695.
* typedef bfd::
* Error reporting::
* Initialization::
+* Threading::
* Miscellaneous::
* Memory Usage::
* Sections::
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index fea00b6ee45..54b502c2dd7 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -937,6 +937,10 @@ bfd_error_handler_type _bfd_set_error_handler_caching (bfd *) ATTRIBUTE_HIDDEN;
const char *_bfd_get_error_program_name (void) ATTRIBUTE_HIDDEN;
+void bfd_lock (void) ATTRIBUTE_HIDDEN;
+
+void bfd_unlock (void) ATTRIBUTE_HIDDEN;
+
/* Extracted from bfdio.c. */
struct bfd_iovec
{
diff --git a/bfd/opncls.c b/bfd/opncls.c
index cddfd7ec1fb..ae04821405e 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -81,6 +81,7 @@ _bfd_new_bfd (void)
if (nbfd == NULL)
return NULL;
+ bfd_lock ();
if (bfd_use_reserved_id)
{
nbfd->id = --bfd_reserved_id_counter;
@@ -88,6 +89,7 @@ _bfd_new_bfd (void)
}
else
nbfd->id = bfd_id_counter++;
+ bfd_unlock ();
nbfd->memory = objalloc_create ();
if (nbfd->memory == NULL)
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index 33d51490482..ed637fcafe9 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -231,22 +231,22 @@ msgstr ""
msgid "#<invalid error code>"
msgstr ""
-#: bfd.c:1892
+#: bfd.c:1997
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:1905
+#: bfd.c:2010
#, c-format
msgid "BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:1910
+#: bfd.c:2015
#, c-format
msgid "BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfd.c:1912
+#: bfd.c:2017
msgid "Please report this bug.\n"
msgstr ""
@@ -265,7 +265,7 @@ msgstr ""
msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
-#: cache.c:273
+#: cache.c:275
#, c-format
msgid "reopening %pB: %s"
msgstr ""
--
2.41.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/3] Threads and BFD
2023-10-26 19:07 [PATCH 0/3] Threads and BFD Tom Tromey
` (2 preceding siblings ...)
2023-10-26 19:07 ` [PATCH 3/3] Add minimal thread-safety to BFD Tom Tromey
@ 2023-11-01 12:26 ` Nick Clifton
3 siblings, 0 replies; 12+ messages in thread
From: Nick Clifton @ 2023-11-01 12:26 UTC (permalink / raw)
To: Tom Tromey, binutils
Hi Tom,
> gdb started using threads a while ago. So far we've (mostly) avoided
> doing anything BFD-related off the main thread, but I would like to
> change that.
his is definitely a worthy goal.
> The first is BFD error handling. In this series, I chose to make it
> thread-local. This approach seemed simple and straightforward.
> Locking seemed impractical here. Maybe moving the error into a BFD
> would work, but I didn't serious investigate that.
Nah - I am a firm believer in keeping things simple if possible.
> The second set of globals involve opening and closing BFD, and also
> the fd cache. I went back and forth on ways to solve this. In this
> series I let the BFD client provide lock- and unlock-functions, and
> change BFD to use these when needed. I took this approach because it
> means that current BFD clients don't need to be changed in any way.
> (I do have a variant of this patch where BFD implements its own
> locking using a POSIX or Windows mutex; I can send that if you'd
> prefer.)
No, I prefer the approach you have posted here.
Cheers
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] Make _bfd_error_buf static
2023-10-26 19:07 ` [PATCH 1/3] Make _bfd_error_buf static Tom Tromey
@ 2023-11-01 12:27 ` Nick Clifton
0 siblings, 0 replies; 12+ messages in thread
From: Nick Clifton @ 2023-11-01 12:27 UTC (permalink / raw)
To: Tom Tromey, binutils
Hi Tom,
> * bfd.c (_bfd_error_buf): Now static.
> (bfd_set_input_error): Use _bfd_clear_error_data.
> (_bfd_clear_error_data): New function.
> (bfd_init): Use _bfd_clear_error_data.
> * libbfd.h: Regenerate.
> * opncls.c (bfd_close_all_done): Use _bfd_clear_error_data.
> * po/bfd.pot: Regenerate.
Approved - please apply.
Cheers
NIck
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] Make various error-related globals thread-local
2023-10-26 19:07 ` [PATCH 2/3] Make various error-related globals thread-local Tom Tromey
@ 2023-11-01 12:28 ` Nick Clifton
0 siblings, 0 replies; 12+ messages in thread
From: Nick Clifton @ 2023-11-01 12:28 UTC (permalink / raw)
To: Tom Tromey, binutils
Hi Tom,
> * Makefile.in: Regenerate.
> * aclocal.m4: Include ax_tls.m4.
> * ax_tls.m4: New file.
> * bfd.c: (bfd_error, input_error, input_bfd, _bfd_error_buf):
> Now thread-local.
> (bfd_asprintf): Update docs.
> * config.in, configure: Regenerate.
> * configure.ac: Call AX_TLS.
> * po/bfd.pot: Regenerate.
Approved - please apply.
Cheers
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Add minimal thread-safety to BFD
2023-10-26 19:07 ` [PATCH 3/3] Add minimal thread-safety to BFD Tom Tromey
@ 2023-11-01 12:45 ` Nick Clifton
2023-11-01 20:08 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Nick Clifton @ 2023-11-01 12:45 UTC (permalink / raw)
To: Tom Tromey, binutils
Hi Tom,
> This patch provides some minimal thread-safety to BFD.
>
> The BFD client can request thread-safety by providing a lock and
> unlock function. The globals used during BFD creation (e.g.,
> bfd_id_counter) are then locked, and the file descriptor cache is also
> locked. A function to clean up any thread-local data is now provided
> for BFD clients.
>
> * bfd-in2.h: Regenerate.
> * bfd.c (lock_fn, unlock_fn): New globals.
> (bfd_thread_init, bfd_thread_cleanup, bfd_lock, bfd_unlock): New
> functions.
> * cache.c (bfd_cache_lookup_worker): Use _bfd_open_file_unlocked.
> (cache_btell, cache_bseek, cache_bread, cache_bwrite): Lock
> and unlock.
> (cache_bclose): Add comment.
> (cache_bflush, cache_bstat, cache_bmmap): Lock and unlock.
> (_bfd_cache_init_unlocked): New function.
> (bfd_cache_init): Use it. Lock and unlock.
> (_bfd_cache_close_unlocked): New function.
> (bfd_cache_close, bfd_cache_close_all): Use it. Lock and unlock.
> (_bfd_open_file_unlocked): New function.
> (bfd_open_file): Use it. Lock and unlock.
> * doc/bfd.texi (BFD front end): Add Threading menu item.
> * libbfd.h: Regenerate.
> * opncls.c (_bfd_new_bfd): Lock and unlock.
> * po/bfd.pot: Regenerate.
I have one concern about this patch:
> +typedef void (*bfd_lock_unlock_fn_type) (void);
Given that we are dealing with client provided locking and unlocking
functions, I feel that the client might want to be able to reference
a data structure of their own performing these actions. (I am not
hugely familiar with locking and unlocking functions, so maybe I am
mistaken here). I also wonder if the functions might be interested
in the BFD being locked. Thus I think that the typedef might be
better specified as:
typedef void (* bfd_lock_unlock_fn_type) (bfd *, void *);
I also wonder if the functions should be allowed to fail, in which
case the typedef would be:
typedef bool (* bfd_lock_unlock_fn_type) (bfd *, void *);
Given all of that the init function would have to be extended to take
a data pointer:
> +void
> +bfd_thread_init (bfd_lock_unlock_fn_type lock,
bfd_lock_unlock_fn_type unlock,
void * data)
> +{
> + lock_fn = lock;
> + unlock_fn = unlock;
lock_data = data;
> +}
Also - should this function let the caller know if a previous set
of lock/unlock functions had been registered, or if there was a problem
registering them ? (For example is it OK to have a lock function but
not an unlock function ?) ie:
bool
bfd_thread_init (bfd_lock_unlock_fn_type lock,
bfd_lock_unlock_fn_type unlock,
void * data)
{
bool ret = lock_fn == NULL && unlock_fn == NULL;
lock_fn = lock;
unlock_fn = unlock;
lock_data = data;
ret &= (lock_fn != NULL && unlock_fn != NULL) || (lock_fn == NULL && unlock_fn == NULL);
return ret;
}
And of course the bfd_lock and bfd_unlock would need to be updated as well, eg:
> +bool
> +bfd_lock (bfd * abfd)
> +{
> + if (lock_fn != NULL)
> + return lock_fn (abfd, lock_data);
return true;
> +}
What do you think ?
Cheers
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Add minimal thread-safety to BFD
2023-11-01 12:45 ` Nick Clifton
@ 2023-11-01 20:08 ` Tom Tromey
2023-11-01 20:48 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2023-11-01 20:08 UTC (permalink / raw)
To: Nick Clifton; +Cc: Tom Tromey, binutils
>>>>> "Nick" == Nick Clifton <nickc@redhat.com> writes:
>> +typedef void (*bfd_lock_unlock_fn_type) (void);
Nick> Given that we are dealing with client provided locking and unlocking
Nick> functions, I feel that the client might want to be able to reference
Nick> a data structure of their own performing these actions. (I am not
Nick> hugely familiar with locking and unlocking functions, so maybe I am
Nick> mistaken here). I also wonder if the functions might be interested
Nick> in the BFD being locked. Thus I think that the typedef might be
Nick> better specified as:
Nick> typedef void (* bfd_lock_unlock_fn_type) (bfd *, void *);
Seems reasonable.
Nick> I also wonder if the functions should be allowed to fail, in which
Nick> case the typedef would be:
Nick> typedef bool (* bfd_lock_unlock_fn_type) (bfd *, void *);
I suppose the BFD callers can just return if these fail.
Nick> Also - should this function let the caller know if a previous set
Nick> of lock/unlock functions had been registered, or if there was a problem
Nick> registering them ? (For example is it OK to have a lock function but
Nick> not an unlock function ?) ie:
Yeah, I've changed it to fail if (1) it's ever been called before (I
don't think it's really necessary to support this right now) and (2) if
one of the functions is not specified.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Add minimal thread-safety to BFD
2023-11-01 20:08 ` Tom Tromey
@ 2023-11-01 20:48 ` Tom Tromey
2023-11-02 12:14 ` Nick Clifton
0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2023-11-01 20:48 UTC (permalink / raw)
To: Tom Tromey; +Cc: Nick Clifton, binutils
Nick> typedef bool (* bfd_lock_unlock_fn_type) (bfd *, void *);
Tom> I suppose the BFD callers can just return if these fail.
Well, I started on this change, but I am not sure about it now.
cache_btell doesn't seem to have any way to even report an error. So,
I'm not sure what to do there. Ignoring the failure is no good.
Or, consider things like cache_bseek. Handling a failure of bfd_lock is
easy, but there's an unlock at the end:
int result = _bfd_real_fseek (f, offset, whence);
bfd_unlock ();
return result;
If that fails should this really return -1? Similarly for cache_bwrite,
etc.
On the other hand, I don't think these things really can fail. Like,
pthread_mutex_lock/unlock failures modes all are basically programming
errors. So this may argue for just "doing anything". Or we could
declare these to be infallible.
Let me know what you'd prefer.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Add minimal thread-safety to BFD
2023-11-01 20:48 ` Tom Tromey
@ 2023-11-02 12:14 ` Nick Clifton
2023-11-03 23:10 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Nick Clifton @ 2023-11-02 12:14 UTC (permalink / raw)
To: Tom Tromey; +Cc: binutils
Hi Tom,
> Nick> typedef bool (* bfd_lock_unlock_fn_type) (bfd *, void *);
>
> Tom> I suppose the BFD callers can just return if these fail.
>
> Well, I started on this change, but I am not sure about it now.
>
> cache_btell doesn't seem to have any way to even report an error. So,
> I'm not sure what to do there. Ignoring the failure is no good.
It could return "(ufile_ptr) -1". This would be somewhat inline with
how ftell() behaves.
> Or, consider things like cache_bseek. Handling a failure of bfd_lock is
> easy, but there's an unlock at the end:
>
> int result = _bfd_real_fseek (f, offset, whence);
> bfd_unlock ();
> return result;
>
> If that fails should this really return -1?
Yes.
If the unlock has failed then something pretty bad must have happened and
it would not be a good idea to let the code carry on as if everything was
OK.
Similarly for cache_bwrite,
> etc.
Yes - the same for these - if the lock or unlock fail then we should assume
the worst and try to return to the client as cleanly as possible.
> On the other hand, I don't think these things really can fail. Like,
> pthread_mutex_lock/unlock failures modes all are basically programming
> errors. So this may argue for just "doing anything". Or we could
> declare these to be infallible.
I agree that they are unlikely to fail. But being paranoid never hurts.
Since the caller is implementing the locks they can always choose to
just return "true" no matter what. But if we do not support a failure
mode then one day someone, somewhere is bound to complain...
> Let me know what you'd prefer.
Be safe, be paranoid, and let the client decide whether their code can or
cannot fail.
Cheers
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Add minimal thread-safety to BFD
2023-11-02 12:14 ` Nick Clifton
@ 2023-11-03 23:10 ` Tom Tromey
0 siblings, 0 replies; 12+ messages in thread
From: Tom Tromey @ 2023-11-03 23:10 UTC (permalink / raw)
To: Nick Clifton; +Cc: Tom Tromey, binutils
>> Let me know what you'd prefer.
Nick> Be safe, be paranoid, and let the client decide whether their code can or
Nick> cannot fail.
Alright. I'll send v2 shortly.
I didn't check in the 2 patches you approved since I felt they didn't
really make sense in isolation.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-11-03 23:09 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-26 19:07 [PATCH 0/3] Threads and BFD Tom Tromey
2023-10-26 19:07 ` [PATCH 1/3] Make _bfd_error_buf static Tom Tromey
2023-11-01 12:27 ` Nick Clifton
2023-10-26 19:07 ` [PATCH 2/3] Make various error-related globals thread-local Tom Tromey
2023-11-01 12:28 ` Nick Clifton
2023-10-26 19:07 ` [PATCH 3/3] Add minimal thread-safety to BFD Tom Tromey
2023-11-01 12:45 ` Nick Clifton
2023-11-01 20:08 ` Tom Tromey
2023-11-01 20:48 ` Tom Tromey
2023-11-02 12:14 ` Nick Clifton
2023-11-03 23:10 ` Tom Tromey
2023-11-01 12:26 ` [PATCH 0/3] Threads and BFD Nick Clifton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).