aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog13
-rw-r--r--bfd/Makefile.am2
-rw-r--r--bfd/Makefile.in3
-rw-r--r--bfd/config.bfd1
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.ac1
-rw-r--r--bfd/doc/webassembly.texi33
-rw-r--r--bfd/po/SRC-POTFILES.in1
-rw-r--r--bfd/po/bfd.pot1347
-rw-r--r--bfd/targets.c2
-rw-r--r--bfd/wasm-module.c839
-rw-r--r--bfd/wasm-module.h52
12 files changed, 1630 insertions, 665 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index cf0e011..04d84f1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,18 @@
2017-03-27 Pip Cet <pipcet@gmail.com>
+ * wasm-module.c: New file to support WebAssembly modules.
+ * wasm-module.h: New file to support WebAssembly modules.
+ * doc/webassembly.texi: Start documenting wasm-module.c.
+ * config.bfd: Add wasm_vec.
+ * targets.c: Likewise.
+ * configure.ac: Likewise.
+ * Makefile.am: Add entries for wasm-module.c.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
+2017-03-27 Pip Cet <pipcet@gmail.com>
+
* cpu-wasm32.c: New file to support wasm32 architecture.
* elf32-wasm32.c: New file to support wasm32 architecture.
* Makefile.am: Add wasm32 architecture.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 6fa8302..49ab092 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -459,6 +459,7 @@ BFD32_BACKENDS = \
versados.lo \
vms-lib.lo \
vms-misc.lo \
+ wasm-module.lo \
xcofflink.lo \
xsym.lo \
xtensa-isa.lo \
@@ -652,6 +653,7 @@ BFD32_BACKENDS_CFILES = \
versados.c \
vms-lib.c \
vms-misc.c \
+ wasm-module.c \
xcofflink.c \
xsym.c \
xtensa-isa.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 76916b7..fed5117 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -793,6 +793,7 @@ BFD32_BACKENDS = \
versados.lo \
vms-lib.lo \
vms-misc.lo \
+ wasm-module.lo \
xcofflink.lo \
xsym.lo \
xtensa-isa.lo \
@@ -986,6 +987,7 @@ BFD32_BACKENDS_CFILES = \
versados.c \
vms-lib.c \
vms-misc.c \
+ wasm-module.c \
xcofflink.c \
xsym.c \
xtensa-isa.c \
@@ -1671,6 +1673,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-alpha.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-lib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-misc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wasm-module.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcofflink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsym.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xtensa-isa.Plo@am__quote@
diff --git a/bfd/config.bfd b/bfd/config.bfd
index abcb7ae..1235c2c 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1796,6 +1796,7 @@ case "${targ}" in
wasm32-*-*)
targ_defvec=wasm32_elf32_vec
+ targ_selvecs="wasm_vec"
;;
we32k-*-*)
diff --git a/bfd/configure b/bfd/configure
index 57beb64..7cae4ae 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14569,6 +14569,7 @@ do
ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;;
visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;;
w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;;
+ wasm_vec) tb="$tb wasm-module.lo" ;;
wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
we32k_coff_vec) tb="$tb coff-we32k.lo $coffgen" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index 7796194..feb1231 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -700,6 +700,7 @@ do
ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;;
visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;;
w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;;
+ wasm_vec) tb="$tb wasm-module.lo" ;;
wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
we32k_coff_vec) tb="$tb coff-we32k.lo $coffgen" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
diff --git a/bfd/doc/webassembly.texi b/bfd/doc/webassembly.texi
new file mode 100644
index 0000000..ad65094
--- /dev/null
+++ b/bfd/doc/webassembly.texi
@@ -0,0 +1,33 @@
+@section WebAssembly backend
+The WebAssembly module file format, at present, is a very simple
+object file format with up to 11 numbered sections plus named
+``custom'' sections. At present, there is no standard for relocations
+or symbols, though a @code{"name"} subsection can assign names to
+function indices and local variables.
+
+As such, it offers no real advantages over ELF, and intermediate ELF
+files can be used to produce WebAssembly modules. The WebAssembly
+backend aims to enable the opposite: reading a WebAssembly module and
+producing an ELF file containing the same information, which can then
+be manipulated and inspected with standard tools.
+
+When writing WebAssembly modules, the WebAssembly backend attempts to
+determine based on the section name whether to use a numeric section
+id, a named section header, or to include the section verbatim,
+assuming it already contains any necessary header.
+
+Function names are supported as symbols; local names and WebAssembly
+relocation sections are currently unsupported.
+
+There are slight differences in the LEB128 integer implementations
+between the WebAssembly specification and the BFD code; these result
+in some malformed WebAssembly modules being treated as valid.
+
+@menu
+* File layout::
+@end menu
+
+@node File layout, WebAssembly
+@subsection File layout
+For a description of the WebAssembly file format, see
+@url{https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md}.
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index 81f42ea..a4b9e87 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -386,6 +386,7 @@ vms-alpha.c
vms-lib.c
vms-misc.c
vms.h
+wasm-module.c
xcofflink.c
xsym.c
xsym.h
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index a634015..70249f8 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: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2016-12-23 09:23+0100\n"
+"POT-Creation-Date: 2017-03-27 11:46+0100\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"
@@ -69,7 +69,7 @@ msgstr ""
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr ""
-#: archive.c:2405 linker.c:1481
+#: archive.c:2405 linker.c:1408
#, c-format
msgid "%s: plugin needed to handle lto object"
msgstr ""
@@ -82,111 +82,111 @@ msgstr ""
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:453
+#: bfd.c:454
msgid "No error"
msgstr ""
-#: bfd.c:454
+#: bfd.c:455
msgid "System call error"
msgstr ""
-#: bfd.c:455
+#: bfd.c:456
msgid "Invalid bfd target"
msgstr ""
-#: bfd.c:456
+#: bfd.c:457
msgid "File in wrong format"
msgstr ""
-#: bfd.c:457
+#: bfd.c:458
msgid "Archive object file in wrong format"
msgstr ""
-#: bfd.c:458
+#: bfd.c:459
msgid "Invalid operation"
msgstr ""
-#: bfd.c:459
+#: bfd.c:460
msgid "Memory exhausted"
msgstr ""
-#: bfd.c:460
+#: bfd.c:461
msgid "No symbols"
msgstr ""
-#: bfd.c:461
+#: bfd.c:462
msgid "Archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:462
+#: bfd.c:463
msgid "No more archived files"
msgstr ""
-#: bfd.c:463
+#: bfd.c:464
msgid "Malformed archive"
msgstr ""
-#: bfd.c:464
+#: bfd.c:465
msgid "DSO missing from command line"
msgstr ""
-#: bfd.c:465
+#: bfd.c:466
msgid "File format not recognized"
msgstr ""
-#: bfd.c:466
+#: bfd.c:467
msgid "File format is ambiguous"
msgstr ""
-#: bfd.c:467
+#: bfd.c:468
msgid "Section has no contents"
msgstr ""
-#: bfd.c:468
+#: bfd.c:469
msgid "Nonrepresentable section on output"
msgstr ""
-#: bfd.c:469
+#: bfd.c:470
msgid "Symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:470
+#: bfd.c:471
msgid "Bad value"
msgstr ""
-#: bfd.c:471
+#: bfd.c:472
msgid "File truncated"
msgstr ""
-#: bfd.c:472
+#: bfd.c:473
msgid "File too big"
msgstr ""
-#: bfd.c:473
+#: bfd.c:474
#, c-format
msgid "Error reading %s: %s"
msgstr ""
-#: bfd.c:474
+#: bfd.c:475
msgid "#<Invalid error code>"
msgstr ""
-#: bfd.c:1063
+#: bfd.c:1064
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:1076
+#: bfd.c:1077
#, c-format
msgid "BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:1081
+#: bfd.c:1082
#, c-format
msgid "BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfd.c:1083
+#: bfd.c:1084
msgid "Please report this bug.\n"
msgstr ""
@@ -206,12 +206,12 @@ msgid "Warning: Writing section `%s' at huge (ie negative) file offset 0x%lx."
msgstr ""
#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2452 elf32-frv.c:5633
-#: elf64-ia64-vms.c:353 elfxx-sparc.c:2871 reloc.c:7931 reloc16.c:156
+#: elf64-ia64-vms.c:353 elfxx-sparc.c:2876 reloc.c:7981 reloc16.c:156
#: elf32-ia64.c:351 elf64-ia64.c:351
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
-#: cache.c:272
+#: cache.c:273
#, c-format
msgid "reopening %B: %s\n"
msgstr ""
@@ -242,9 +242,8 @@ msgstr ""
msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
msgstr ""
-#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 elf64-alpha.c:4159
-#: elf64-alpha.c:4307 elf64-ia64-vms.c:3432 elf32-ia64.c:3839
-#: elf64-ia64.c:3839
+#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 elf64-alpha.c:4167
+#: elf64-alpha.c:4315 elf64-ia64-vms.c:3432 elf32-ia64.c:3840 elf64-ia64.c:3840
#, c-format
msgid "%B: unknown relocation type %d"
msgstr ""
@@ -259,7 +258,7 @@ msgstr ""
msgid "%B: unable to find ARM glue '%s' for `%s'"
msgstr ""
-#: coff-arm.c:1363 elf32-arm.c:8908
+#: coff-arm.c:1363 elf32-arm.c:8899
#, c-format
msgid ""
"%B(%s): warning: interworking not enabled.\n"
@@ -289,14 +288,14 @@ msgstr ""
msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
msgstr ""
-#: coff-arm.c:2217 elf32-arm.c:19726
+#: coff-arm.c:2217 elf32-arm.c:19724
#, c-format
msgid ""
"error: %B passes floats in float registers, whereas %B passes them in "
"integer registers"
msgstr ""
-#: coff-arm.c:2222 elf32-arm.c:19730
+#: coff-arm.c:2222 elf32-arm.c:19728
#, c-format
msgid ""
"error: %B passes floats in integer registers, whereas %B passes them in "
@@ -317,12 +316,12 @@ msgid ""
"position independent"
msgstr ""
-#: coff-arm.c:2266 elf32-arm.c:19795
+#: coff-arm.c:2266 elf32-arm.c:19793
#, c-format
msgid "Warning: %B supports interworking, whereas %B does not"
msgstr ""
-#: coff-arm.c:2271 elf32-arm.c:19801
+#: coff-arm.c:2271 elf32-arm.c:19799
#, c-format
msgid "Warning: %B does not support interworking, whereas %B does"
msgstr ""
@@ -332,7 +331,7 @@ msgstr ""
msgid "private flags = %x:"
msgstr ""
-#: coff-arm.c:2302 elf32-arm.c:14134
+#: coff-arm.c:2302 elf32-arm.c:14125
#, c-format
msgid " [floats passed in float registers]"
msgstr ""
@@ -342,7 +341,7 @@ msgstr ""
msgid " [floats passed in integer registers]"
msgstr ""
-#: coff-arm.c:2307 elf32-arm.c:14137
+#: coff-arm.c:2307 elf32-arm.c:14128
#, c-format
msgid " [position independent]"
msgstr ""
@@ -367,17 +366,17 @@ msgstr ""
msgid " [interworking not supported]"
msgstr ""
-#: coff-arm.c:2362 elf32-arm.c:13023
+#: coff-arm.c:2362 elf32-arm.c:13014
msgid ""
"Warning: Not setting interworking flag of %B since it has already been "
"specified as non-interworking"
msgstr ""
-#: coff-arm.c:2365 elf32-arm.c:13027
+#: coff-arm.c:2365 elf32-arm.c:13018
msgid "Warning: Clearing the interworking flag of %B due to outside request"
msgstr ""
-#: coff-arm.c:2422 elf32-arm.c:13072
+#: coff-arm.c:2422 elf32-arm.c:13063
#, c-format
msgid ""
"Warning: Clearing the interworking flag of %B because non-interworking code "
@@ -394,7 +393,7 @@ msgstr ""
msgid "relocation `%s' not yet implemented"
msgstr ""
-#: coff-i860.c:608 coff-tic54x.c:365 coffcode.h:5314
+#: coff-i860.c:608 coff-tic54x.c:365 coffcode.h:5317
#, c-format
msgid "%B: warning: illegal symbol index %ld in relocs"
msgstr ""
@@ -549,41 +548,41 @@ msgstr ""
msgid "%B: too many sections (%d)"
msgstr ""
-#: coffcode.h:3768
+#: coffcode.h:3770
#, c-format
msgid "%B: section %s: string table overflow at offset %ld"
msgstr ""
-#: coffcode.h:4585
+#: coffcode.h:4588
msgid "%B: warning: line number table read failed"
msgstr ""
-#: coffcode.h:4619 coffcode.h:4633
+#: coffcode.h:4622 coffcode.h:4636
#, c-format
msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d"
msgstr ""
-#: coffcode.h:4647
+#: coffcode.h:4650
#, c-format
msgid "%B: warning: illegal symbol in line number entry %d"
msgstr ""
-#: coffcode.h:4660
+#: coffcode.h:4663
#, c-format
msgid "%B: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:5074
+#: coffcode.h:5077
#, c-format
msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:5207
+#: coffcode.h:5210
#, c-format
msgid "warning: %B: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:5354
+#: coffcode.h:5357
#, c-format
msgid "%B: illegal relocation type %d at address 0x%lx"
msgstr ""
@@ -598,31 +597,36 @@ msgstr ""
msgid "%B: unable to initialize decompress status for section %s"
msgstr ""
-#: coffgen.c:1711
+#. PR 21013: Provide an error message when the alloc fails.
+#: coffgen.c:1648
+msgid "%B: Not enough memory to allocate space for %lu symbols"
+msgstr ""
+
+#: coffgen.c:1716
#, c-format
msgid "%B: bad string table size %lu"
msgstr ""
-#: coffgen.c:1880 coffgen.c:1940 coffgen.c:1958 cofflink.c:2040
+#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2040
#: xcofflink.c:4507
msgid "<corrupt>"
msgstr ""
-#: coffgen.c:2082
+#: coffgen.c:2087
#, c-format
msgid "<corrupt info> %s"
msgstr ""
-#: coffgen.c:2633 elflink.c:13856 linker.c:3004
+#: coffgen.c:2638 elflink.c:13940 linker.c:2931
msgid "%F%P: already_linked_table: %E\n"
msgstr ""
-#: coffgen.c:2960 elflink.c:12889
+#: coffgen.c:2965 elflink.c:12981
#, c-format
msgid "Removing unused section '%s' in file '%B'"
msgstr ""
-#: coffgen.c:3036 elflink.c:13135
+#: coffgen.c:3041 elflink.c:13219
msgid "Warning: gc-sections option ignored"
msgstr ""
@@ -631,7 +635,7 @@ msgstr ""
msgid "Warning: symbol `%s' is both section and non-section"
msgstr ""
-#: cofflink.c:450 elf64-ia64-vms.c:5187 elflink.c:4688
+#: cofflink.c:450 elf64-ia64-vms.c:5187 elflink.c:4734
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
msgstr ""
@@ -641,7 +645,7 @@ msgstr ""
msgid "%B: relocs in section `%A', but it has no contents"
msgstr ""
-#: cofflink.c:2431 elflink.c:10360
+#: cofflink.c:2431 elflink.c:10470
#, c-format
msgid ""
"%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' "
@@ -673,85 +677,85 @@ msgstr ""
msgid "warning: unable to update contents of %s section in %s"
msgstr ""
-#: dwarf2.c:526
+#: dwarf2.c:532
#, c-format
msgid "Dwarf Error: Can't find %s section."
msgstr ""
-#: dwarf2.c:556
+#: dwarf2.c:562
#, c-format
msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
msgstr ""
-#: dwarf2.c:1015
+#: dwarf2.c:1028
msgid "Dwarf Error: Info pointer extends beyond end of attributes"
msgstr ""
-#: dwarf2.c:1167
+#: dwarf2.c:1185
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %#x."
msgstr ""
-#: dwarf2.c:1473
+#: dwarf2.c:1491
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr ""
-#: dwarf2.c:1761
+#: dwarf2.c:1779
#, c-format
msgid "Dwarf Error: Line info section is too small (%ld)"
msgstr ""
-#: dwarf2.c:1791
+#: dwarf2.c:1809
#, c-format
msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)"
msgstr ""
-#: dwarf2.c:1803
+#: dwarf2.c:1821
#, c-format
msgid "Dwarf Error: Unhandled .debug_line version %d."
msgstr ""
-#: dwarf2.c:1812
+#: dwarf2.c:1830
msgid "Dwarf Error: Ran out of room reading prologue"
msgstr ""
-#: dwarf2.c:1837
+#: dwarf2.c:1855
msgid "Dwarf Error: Invalid maximum operations per instruction."
msgstr ""
-#: dwarf2.c:1856
+#: dwarf2.c:1874
msgid "Dwarf Error: Ran out of room reading opcodes"
msgstr ""
-#: dwarf2.c:2044
+#: dwarf2.c:2069
msgid "Dwarf Error: mangled line number section."
msgstr ""
-#: dwarf2.c:2538
+#: dwarf2.c:2575
#, c-format
msgid "Dwarf Error: Unable to read alt ref %u."
msgstr ""
-#: dwarf2.c:2562 dwarf2.c:2706 dwarf2.c:3023
+#: dwarf2.c:2600 dwarf2.c:2745 dwarf2.c:3063
#, c-format
msgid "Dwarf Error: Could not find abbrev number %u."
msgstr ""
-#: dwarf2.c:2976
+#: dwarf2.c:3015
#, c-format
msgid ""
"Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 "
"and 4 information."
msgstr ""
-#: dwarf2.c:2987
+#: dwarf2.c:3026
#, c-format
msgid ""
"Dwarf Error: found address size '%u', this reader can not handle sizes "
"greater than '%u'."
msgstr ""
-#: dwarf2.c:3089
+#: dwarf2.c:3129
msgid ""
"Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form."
msgstr ""
@@ -834,62 +838,62 @@ msgstr ""
msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr ""
-#: elf-eh-frame.c:928
+#: elf-eh-frame.c:943
#, c-format
msgid "discarding zero address range FDE in %B(%A).\n"
msgstr ""
-#: elf-eh-frame.c:1033
+#: elf-eh-frame.c:1048
#, c-format
msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
msgstr ""
-#: elf-eh-frame.c:1385
+#: elf-eh-frame.c:1400
#, c-format
msgid ""
"%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
msgstr ""
-#: elf-eh-frame.c:1392
+#: elf-eh-frame.c:1407
msgid ""
"%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation "
"dropped.\n"
msgstr ""
-#: elf-eh-frame.c:1680
+#: elf-eh-frame.c:1727
#, c-format
msgid "%B: %s not in order"
msgstr ""
-#: elf-eh-frame.c:1694
+#: elf-eh-frame.c:1741
#, c-format
msgid "%B: %s invalid input section size"
msgstr ""
-#: elf-eh-frame.c:1702
+#: elf-eh-frame.c:1749
#, c-format
msgid "%B: %s points past end of text section"
msgstr ""
-#: elf-eh-frame.c:1951
+#: elf-eh-frame.c:1998
msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
msgstr ""
-#: elf-eh-frame.c:2133
+#: elf-eh-frame.c:2168
#, c-format
msgid "Invalid output section for .eh_frame_entry: %s"
msgstr ""
-#: elf-eh-frame.c:2156
+#: elf-eh-frame.c:2191
#, c-format
msgid "Invalid contents in %s section"
msgstr ""
-#: elf-eh-frame.c:2312
+#: elf-eh-frame.c:2347
msgid "%P: .eh_frame_hdr entry overflow.\n"
msgstr ""
-#: elf-eh-frame.c:2315
+#: elf-eh-frame.c:2350
msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n"
msgstr ""
@@ -906,12 +910,12 @@ msgstr ""
#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041
#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475
#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044
-#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2005
-#: elf32-microblaze.c:1574 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402
-#: elf32-or1k.c:1262 elf32-score.c:2733 elf32-score7.c:2546 elf32-spu.c:5076
-#: elf32-tilepro.c:3674 elf32-v850.c:2287 elf32-visium.c:677
-#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4061
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2256
+#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001
+#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402
+#: elf32-or1k.c:1258 elf32-score.c:2733 elf32-score7.c:2546 elf32-spu.c:5076
+#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677
+#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2267
msgid "internal error: out of range error"
msgstr ""
@@ -920,18 +924,18 @@ msgstr ""
#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338
#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130
#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528
-#: elf32-metag.c:2009 elf32-microblaze.c:1578 elf32-moxie.c:289
-#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1266 elf32-score.c:2737
-#: elf32-score7.c:2550 elf32-spu.c:5080 elf32-tilepro.c:3678 elf32-v850.c:2291
+#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289
+#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2737
+#: elf32-score7.c:2550 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291
#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544
-#: elfxx-mips.c:10398 elfxx-tilegx.c:4065
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2260
+#: elfxx-mips.c:10253 elfxx-tilegx.c:4056
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2271
msgid "internal error: unsupported relocation error"
msgstr ""
#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932
#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052
-#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1582 elf32-nds32.c:5410
+#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410
#: elf32-score.c:2741 elf32-score7.c:2554 elf32-spu.c:5084
msgid "internal error: dangerous error"
msgstr ""
@@ -941,13 +945,12 @@ msgstr ""
#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053
#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490
#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056
-#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2017
-#: elf32-microblaze.c:1586 elf32-moxie.c:297 elf32-msp430.c:1369
-#: elf32-mt.c:408 elf32-nds32.c:5414 elf32-or1k.c:1274 elf32-score.c:2750
-#: elf32-score7.c:2558 elf32-spu.c:5088 elf32-tilepro.c:3686 elf32-v850.c:2311
-#: elf32-visium.c:689 elf32-xstormy16.c:939 elf64-mmix.c:1552
-#: elfxx-tilegx.c:4073
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2268
+#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013
+#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369 elf32-mt.c:408
+#: elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2750 elf32-score7.c:2558
+#: elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311 elf32-visium.c:689
+#: elf32-xstormy16.c:939 elf64-mmix.c:1552 elfxx-tilegx.c:4064
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2279
msgid "internal error: unknown error"
msgstr ""
@@ -966,12 +969,12 @@ msgstr ""
msgid "%B: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2097 elf32-arm.c:12538 elf32-i386.c:5160 elf32-m32r.c:2540
-#: elf32-m68k.c:4084 elf32-s390.c:3380 elf32-sh.c:4127 elf32-tilepro.c:3578
-#: elf32-xtensa.c:3060 elf64-s390.c:3291 elf64-sh64.c:1636 elf64-x86-64.c:5573
-#: elfxx-sparc.c:3913 elfxx-tilegx.c:3985
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6423
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2225
+#: elf-m10300.c:2097 elf32-arm.c:12529 elf32-i386.c:5222 elf32-m32r.c:2540
+#: elf32-m68k.c:4084 elf32-s390.c:3361 elf32-sh.c:4127 elf32-tilepro.c:3569
+#: elf32-xtensa.c:3060 elf64-s390.c:3280 elf64-sh64.c:1636 elf64-x86-64.c:5697
+#: elfxx-sparc.c:3945 elfxx-tilegx.c:3976
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2236
#, c-format
msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -1032,7 +1035,7 @@ msgstr ""
msgid "%B: no group info for section %A"
msgstr ""
-#: elf.c:818 elf.c:3817 elflink.c:10949
+#: elf.c:818 elf.c:3817 elflink.c:11059
#, c-format
msgid "%B: warning: sh_link not set for section `%A'"
msgstr ""
@@ -1189,31 +1192,31 @@ msgstr ""
msgid "\tnon-TLS: %A"
msgstr ""
-#: elf.c:5328
+#: elf.c:5339
msgid ""
"%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:5355
+#: elf.c:5366
msgid "%B: Not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:5442
+#: elf.c:5453
#, c-format
msgid "%B: section %A lma %#lx adjusted to %#lx"
msgstr ""
-#: elf.c:5579
+#: elf.c:5590
#, c-format
msgid "%B: section `%A' can't be allocated in segment %d"
msgstr ""
-#: elf.c:5627
+#: elf.c:5638
#, c-format
msgid "%B: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:5825
+#: elf.c:5836
msgid ""
"%B: error: non-load segment %d includes file header and/or program header"
msgstr ""
@@ -1221,273 +1224,276 @@ 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:6001
+#: elf.c:6012
msgid "%B: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6345
+#: elf.c:6356
#, c-format
msgid "%B: symbol `%s' required but not present"
msgstr ""
-#: elf.c:6683
-msgid "%B: warning: Empty loadable segment detected, is this intentional ?"
+#: elf.c:6699
+#, c-format
+msgid ""
+"%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this "
+"intentional ?"
msgstr ""
-#: elf.c:7297
+#: elf.c:7313
#, c-format
msgid "%B: warning: segment alignment of 0x%llx is too large"
msgstr ""
-#: elf.c:7774
+#: elf.c:7790
#, c-format
msgid ""
"Unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:8106
+#: elf.c:8122
msgid "%B: .gnu.version_r invalid entry"
msgstr ""
-#: elf.c:8233
+#: elf.c:8249
msgid "%B: .gnu.version_d invalid entry"
msgstr ""
-#: elf.c:8785
+#: elf.c:8801
#, c-format
msgid "%B: unsupported relocation type %s"
msgstr ""
-#: elf32-arc.c:464 elf32-frv.c:6625 elf32-iq2000.c:870 elf32-m32c.c:914
+#: elf32-arc.c:426 elf32-frv.c:6625 elf32-iq2000.c:870 elf32-m32c.c:914
#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3176 elf32-visium.c:838
-#: elf64-ppc.c:6072
+#: elf64-ppc.c:6066
#, c-format
msgid "private flags = 0x%lx:"
msgstr ""
-#: elf32-arc.c:605
+#: elf32-arc.c:567
#, c-format
msgid "ERROR: Attempting to link %B with a binary %s of different architecture"
msgstr ""
-#: elf32-arc.c:615 elf32-iq2000.c:846 elf32-m32c.c:890
+#: elf32-arc.c:577 elf32-iq2000.c:846 elf32-m32c.c:890
#, c-format
msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
-#: elf32-arc.c:676
+#: elf32-arc.c:638
msgid "Error: The ARC4 architecture is no longer supported.\n"
msgstr ""
-#: elf32-arc.c:682
+#: elf32-arc.c:644
msgid ""
"Warning: unset or old architecture flags. \n"
"\t Use default machine.\n"
msgstr ""
-#: elf32-arc.c:810
+#: elf32-arc.c:772
#, c-format
msgid ""
"%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x "
"(value is 0x%lx)"
msgstr ""
-#: elf32-arc.c:821
+#: elf32-arc.c:783
#, c-format
msgid ""
"%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x"
"%04x (value is 0x%lx)"
msgstr ""
-#: elf32-arc.c:1510
+#: elf32-arc.c:1472
msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker."
msgstr ""
-#: elf32-arc.c:1534 elf32-rl78.c:1094 elf32-rx.c:1448
+#: elf32-arc.c:1496 elf32-rl78.c:1094 elf32-rx.c:1448
#, c-format
msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
msgstr ""
-#: elf32-arc.c:1539 elf32-rl78.c:1099 elf32-rx.c:1453
+#: elf32-arc.c:1501 elf32-rl78.c:1099 elf32-rx.c:1453
#, c-format
msgid "%B(%A): internal error: out of range error"
msgstr ""
-#: elf32-arc.c:1544 elf32-rl78.c:1104 elf32-rx.c:1458
+#: elf32-arc.c:1506 elf32-rl78.c:1104 elf32-rx.c:1458
#, c-format
msgid "%B(%A): internal error: unsupported relocation error"
msgstr ""
-#: elf32-arc.c:1549 elf32-rl78.c:1109 elf32-rx.c:1463
+#: elf32-arc.c:1511 elf32-rl78.c:1109 elf32-rx.c:1463
#, c-format
msgid "%B(%A): internal error: dangerous relocation"
msgstr ""
-#: elf32-arc.c:1554 elf32-rl78.c:1114 elf32-rx.c:1468
+#: elf32-arc.c:1516 elf32-rl78.c:1114 elf32-rx.c:1468
#, c-format
msgid "%B(%A): internal error: unknown error"
msgstr ""
-#: elf32-arc.c:1737 elf32-arm.c:14692 elf32-metag.c:2279 elfxx-mips.c:8874
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7347
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:488
+#: elf32-arc.c:1608 elf32-arm.c:14683 elf32-metag.c:2272 elfxx-mips.c:8878
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7398
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:488
#, c-format
msgid ""
"%B: relocation %s against `%s' can not be used when making a shared object; "
"recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:4036 elf32-arm.c:4068
+#: elf32-arm.c:4027 elf32-arm.c:4059
msgid ""
"%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE "
"section attribute is only supported for M-profile targets that implement the "
"movw instruction."
msgstr ""
-#: elf32-arm.c:4085 elf32-arm.c:4138
+#: elf32-arm.c:4076 elf32-arm.c:4129
msgid ""
"%B(%s): warning: long branch veneers used in section with SHF_ARM_PURECODE "
"section attribute is only supported for M-profile targets that implement the "
"movw instruction."
msgstr ""
-#: elf32-arm.c:4099 elf32-arm.c:8818
+#: elf32-arm.c:4090 elf32-arm.c:8809
msgid ""
"%B(%s): warning: interworking not enabled.\n"
" first occurrence: %B: Thumb call to ARM"
msgstr ""
-#: elf32-arm.c:4154
+#: elf32-arm.c:4145
msgid ""
"%B(%s): warning: interworking not enabled.\n"
" first occurrence: %B: ARM call to Thumb"
msgstr ""
-#: elf32-arm.c:4428
+#: elf32-arm.c:4419
#, c-format
msgid "No address assigned to the veneers output section %s"
msgstr ""
-#: elf32-arm.c:4503 elf32-arm.c:6640
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2837
+#: elf32-arm.c:4494 elf32-arm.c:6631
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2852
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr ""
-#: elf32-arm.c:5688
+#: elf32-arm.c:5679
msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later."
msgstr ""
-#: elf32-arm.c:5697
+#: elf32-arm.c:5688
msgid "%B: invalid special symbol `%s'."
msgstr ""
-#: elf32-arm.c:5699 elf32-arm.c:5739
+#: elf32-arm.c:5690 elf32-arm.c:5730
msgid "It must be a global or weak function symbol."
msgstr ""
-#: elf32-arm.c:5737
+#: elf32-arm.c:5728
msgid "%B: invalid standard symbol `%s'."
msgstr ""
-#: elf32-arm.c:5743
+#: elf32-arm.c:5734
msgid "%B: absent standard symbol `%s'."
msgstr ""
-#: elf32-arm.c:5755
+#: elf32-arm.c:5746
msgid "%B: `%s' and its special symbol are in different sections."
msgstr ""
-#: elf32-arm.c:5767
+#: elf32-arm.c:5758
msgid "%B: entry function `%s' not output."
msgstr ""
-#: elf32-arm.c:5774
+#: elf32-arm.c:5765
msgid "%B: entry function `%s' is empty."
msgstr ""
-#: elf32-arm.c:5903
+#: elf32-arm.c:5894
msgid "%B: --in-implib only supported for Secure Gateway import libraries."
msgstr ""
-#: elf32-arm.c:5949
+#: elf32-arm.c:5940
msgid "%B: invalid import library entry: `%s'."
msgstr ""
-#: elf32-arm.c:5951
+#: elf32-arm.c:5942
msgid "Symbol should be absolute, global and refer to Thumb functions."
msgstr ""
-#: elf32-arm.c:5971
+#: elf32-arm.c:5962
#, c-format
msgid "Entry function `%s' disappeared from secure code."
msgstr ""
-#: elf32-arm.c:5995
+#: elf32-arm.c:5986
#, c-format
msgid "`%s' refers to a non entry function."
msgstr ""
-#: elf32-arm.c:6010
+#: elf32-arm.c:6001
msgid "%B: visibility of symbol `%s' has changed."
msgstr ""
-#: elf32-arm.c:6019
+#: elf32-arm.c:6010
msgid "%B: incorrect size for symbol `%s'."
msgstr ""
-#: elf32-arm.c:6038
+#: elf32-arm.c:6029
#, c-format
msgid "Offset of veneer for entry function `%s' not a multiple of its size."
msgstr ""
-#: elf32-arm.c:6058
+#: elf32-arm.c:6049
msgid ""
"new entry function(s) introduced but no output import library specified:"
msgstr ""
-#: elf32-arm.c:6066
+#: elf32-arm.c:6057
#, c-format
msgid "Start address of `%s' is different from previous link."
msgstr ""
-#: elf32-arm.c:6773
+#: elf32-arm.c:6764
#, c-format
msgid "unable to find THUMB glue '%s' for '%s'"
msgstr ""
-#: elf32-arm.c:6809
+#: elf32-arm.c:6800
#, c-format
msgid "unable to find ARM glue '%s' for '%s'"
msgstr ""
-#: elf32-arm.c:7524
+#: elf32-arm.c:7515
msgid "%B: BE8 images only valid in big-endian mode."
msgstr ""
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:7755
+#: elf32-arm.c:7746
msgid ""
"%B: warning: selected VFP11 erratum workaround is not necessary for target "
"architecture"
msgstr ""
-#: elf32-arm.c:7782
+#: elf32-arm.c:7773
msgid ""
"%B: warning: selected STM32L4XX erratum workaround is not necessary for "
"target architecture"
msgstr ""
-#: elf32-arm.c:8319 elf32-arm.c:8339
+#: elf32-arm.c:8310 elf32-arm.c:8330
msgid "%B: unable to find VFP11 veneer `%s'"
msgstr ""
-#: elf32-arm.c:8405 elf32-arm.c:8424
+#: elf32-arm.c:8396 elf32-arm.c:8415
msgid "%B: unable to find STM32L4XX veneer `%s'"
msgstr ""
#. Note - overlong line used here to allow for translation.
-#: elf32-arm.c:8632
+#: elf32-arm.c:8623
#, c-format
msgid ""
"%B(%A+0x%lx): error: multiple load detected in non-last IT block "
@@ -1495,177 +1501,177 @@ msgid ""
"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n"
msgstr ""
-#: elf32-arm.c:8728
+#: elf32-arm.c:8719
#, c-format
msgid "Invalid TARGET2 relocation type '%s'."
msgstr ""
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9470
+#: elf32-arm.c:9461
msgid "%B: Warning: thumb-1 mode PLT generation not currently supported"
msgstr ""
-#: elf32-arm.c:9735
+#: elf32-arm.c:9726
#, c-format
msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:9775
+#: elf32-arm.c:9766
#, c-format
msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:10109
+#: elf32-arm.c:10100
msgid "shared object"
msgstr ""
-#: elf32-arm.c:10112
+#: elf32-arm.c:10103
msgid "PIE executable"
msgstr ""
-#: elf32-arm.c:10115
+#: elf32-arm.c:10106
msgid ""
"%B: relocation %s against external or undefined symbol `%s' can not be used "
"when making a %s; recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:10246
-msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
+#: elf32-arm.c:10237
+msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr ""
-#: elf32-arm.c:10666
+#: elf32-arm.c:10657
msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr ""
-#: elf32-arm.c:11533
+#: elf32-arm.c:11524
#, c-format
msgid ""
"%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:11557
+#: elf32-arm.c:11548
#, c-format
msgid ""
"%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:11587
+#: elf32-arm.c:11578
#, c-format
msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:11801
+#: elf32-arm.c:11792
#, c-format
msgid ""
"%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group "
"relocations"
msgstr ""
-#: elf32-arm.c:11842 elf32-arm.c:11933 elf32-arm.c:12019 elf32-arm.c:12107
+#: elf32-arm.c:11833 elf32-arm.c:11924 elf32-arm.c:12010 elf32-arm.c:12098
#, c-format
msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
msgstr ""
-#: elf32-arm.c:12371 elf32-sh.c:4009 elf64-sh64.c:1539
+#: elf32-arm.c:12362 elf32-sh.c:4009 elf64-sh64.c:1539
#, c-format
msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:12483 elf32-m68k.c:4120 elf32-xtensa.c:2802
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6151
+#: elf32-arm.c:12474 elf32-m68k.c:4120 elf32-xtensa.c:2802
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6194
#, c-format
msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:12485 elf32-m68k.c:4122 elf32-xtensa.c:2804
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6153
+#: elf32-arm.c:12476 elf32-m68k.c:4122 elf32-xtensa.c:2804
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6196
#, c-format
msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:12567 elf32-tic6x.c:2737
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6486
+#: elf32-arm.c:12558 elf32-tic6x.c:2739
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6529
msgid "out of range"
msgstr ""
-#: elf32-arm.c:12571 elf32-nios2.c:4507 elf32-tic6x.c:2741
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6490
+#: elf32-arm.c:12562 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6533
msgid "unsupported relocation"
msgstr ""
-#: elf32-arm.c:12579 elf32-nios2.c:4517 elf32-tic6x.c:2749
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6498
+#: elf32-arm.c:12570 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6541
msgid "unknown error"
msgstr ""
-#: elf32-arm.c:13159
+#: elf32-arm.c:13150
msgid "%B: Unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:13167
+#: elf32-arm.c:13158
msgid "Warning: %B: Unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:13415
+#: elf32-arm.c:13406
msgid "error: %B: Unknown CPU architecture"
msgstr ""
-#: elf32-arm.c:13453 elf32-nios2.c:2967
+#: elf32-arm.c:13444 elf32-nios2.c:2965
#, c-format
msgid "error: %B: Conflicting CPU architectures %d/%d"
msgstr ""
-#: elf32-arm.c:13550
+#: elf32-arm.c:13541
msgid ""
"Error: %B has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:13579
+#: elf32-arm.c:13570
msgid "error: %B uses VFP register arguments, %B does not"
msgstr ""
-#: elf32-arm.c:13737
+#: elf32-arm.c:13728
msgid "error: %B: unable to merge virtualization attributes with %B"
msgstr ""
-#: elf32-arm.c:13763
+#: elf32-arm.c:13754
msgid "error: %B: Conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:13893
+#: elf32-arm.c:13884
msgid "Warning: %B: Conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:13902
+#: elf32-arm.c:13893
msgid "error: %B: Conflicting use of R9"
msgstr ""
-#: elf32-arm.c:13914
+#: elf32-arm.c:13905
msgid "error: %B: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:13927
+#: elf32-arm.c:13918
msgid ""
"warning: %B 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:13958
+#: elf32-arm.c:13949
msgid ""
"warning: %B uses %s enums yet the output is to use %s enums; use of enum "
"values across objects may fail"
msgstr ""
-#: elf32-arm.c:13970
+#: elf32-arm.c:13961
msgid "error: %B uses iWMMXt register arguments, %B does not"
msgstr ""
-#: elf32-arm.c:13987
+#: elf32-arm.c:13978
msgid "error: fp16 format mismatch between %B and %B"
msgstr ""
-#: elf32-arm.c:14023
+#: elf32-arm.c:14014
msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
@@ -1674,208 +1680,207 @@ 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-arm.c:14110 elf32-bfin.c:4919 elf32-cris.c:4076 elf32-m68hc1x.c:1413
+#: elf32-arm.c:14101 elf32-bfin.c:4919 elf32-cris.c:4084 elf32-m68hc1x.c:1413
#: elf32-m68k.c:1200 elf32-score.c:4009 elf32-score7.c:3818 elf32-vax.c:536
-#: elf32-xgate.c:669 elfxx-mips.c:15920
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6652
+#: elf32-xgate.c:669 elfxx-mips.c:15782
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6695
#, c-format
msgid "private flags = %lx:"
msgstr ""
-#: elf32-arm.c:14119
+#: elf32-arm.c:14110
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:14127
+#: elf32-arm.c:14118
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:14129
+#: elf32-arm.c:14120
#, c-format
msgid " [Maverick float format]"
msgstr ""
-#: elf32-arm.c:14131
+#: elf32-arm.c:14122
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:14140
+#: elf32-arm.c:14131
#, c-format
msgid " [new ABI]"
msgstr ""
-#: elf32-arm.c:14143
+#: elf32-arm.c:14134
#, c-format
msgid " [old ABI]"
msgstr ""
-#: elf32-arm.c:14146
+#: elf32-arm.c:14137
#, c-format
msgid " [software FP]"
msgstr ""
-#: elf32-arm.c:14155
+#: elf32-arm.c:14146
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:14158 elf32-arm.c:14169
+#: elf32-arm.c:14149 elf32-arm.c:14160
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:14160 elf32-arm.c:14171
+#: elf32-arm.c:14151 elf32-arm.c:14162
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:14166
+#: elf32-arm.c:14157
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:14174
+#: elf32-arm.c:14165
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:14177
+#: elf32-arm.c:14168
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:14184
+#: elf32-arm.c:14175
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:14188
+#: elf32-arm.c:14179
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:14192
+#: elf32-arm.c:14183
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:14195
+#: elf32-arm.c:14186
#, c-format
msgid " [soft-float ABI]"
msgstr ""
-#: elf32-arm.c:14198
+#: elf32-arm.c:14189
#, c-format
msgid " [hard-float ABI]"
msgstr ""
-#: elf32-arm.c:14204
+#: elf32-arm.c:14195
#, c-format
msgid " [BE8]"
msgstr ""
-#: elf32-arm.c:14207
+#: elf32-arm.c:14198
#, c-format
msgid " [LE8]"
msgstr ""
-#: elf32-arm.c:14213
+#: elf32-arm.c:14204
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:14220
+#: elf32-arm.c:14211
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:14225
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6655
+#: elf32-arm.c:14216 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6698
#, c-format
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:14535 elf32-i386.c:1905 elf32-s390.c:984 elf32-tic6x.c:2812
-#: elf32-tilepro.c:1511 elf32-xtensa.c:1004 elf64-s390.c:903
-#: elf64-x86-64.c:2214 elfxx-sparc.c:1415 elfxx-tilegx.c:1728
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7048
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:530
+#: elf32-arm.c:14526 elf32-i386.c:1914 elf32-s390.c:956 elf32-tic6x.c:2814
+#: elf32-tilepro.c:1491 elf32-xtensa.c:1004 elf64-s390.c:871
+#: elf64-x86-64.c:2258 elfxx-sparc.c:1411 elfxx-tilegx.c:1708
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7099
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:530
#, c-format
msgid "%B: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:16029
+#: elf32-arm.c:16024
#, c-format
msgid "Errors encountered processing file %s"
msgstr ""
-#: elf32-arm.c:16466 elflink.c:12085 elflink.c:12132
+#: elf32-arm.c:16463 elflink.c:12197 elflink.c:12244
#, c-format
msgid "could not find section %s"
msgstr ""
-#: elf32-arm.c:17638
+#: elf32-arm.c:17635
msgid "%B: 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:17665
+#: elf32-arm.c:17662
msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:18492 elf32-arm.c:18514
+#: elf32-arm.c:18489 elf32-arm.c:18511
msgid "%B: error: VFP11 veneer out of range"
msgstr ""
-#: elf32-arm.c:18565
+#: elf32-arm.c:18562
msgid ""
"%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld "
"bytes. Cannot encode branch instruction. "
msgstr ""
-#: elf32-arm.c:18603
+#: elf32-arm.c:18600
msgid "%B: error: Cannot create STM32L4XX veneer."
msgstr ""
-#: elf32-arm.c:19623
+#: elf32-arm.c:19621
msgid "error: %B is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:19699
+#: elf32-arm.c:19697
msgid ""
"error: Source object %B has EABI version %d, but target %B has EABI version "
"%d"
msgstr ""
-#: elf32-arm.c:19715
+#: elf32-arm.c:19713
msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
msgstr ""
-#: elf32-arm.c:19740
+#: elf32-arm.c:19738
msgid "error: %B uses VFP instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:19744
+#: elf32-arm.c:19742
msgid "error: %B uses FPA instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:19754
+#: elf32-arm.c:19752
msgid "error: %B uses Maverick instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:19758
+#: elf32-arm.c:19756
msgid "error: %B does not use Maverick instructions, whereas %B does"
msgstr ""
-#: elf32-arm.c:19777
+#: elf32-arm.c:19775
msgid "error: %B uses software FP, whereas %B uses hardware FP"
msgstr ""
-#: elf32-arm.c:19781
+#: elf32-arm.c:19779
msgid "error: %B uses hardware FP, whereas %B uses software FP"
msgstr ""
@@ -1887,15 +1892,15 @@ msgstr ""
#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574
#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218
#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532
-#: elf32-metag.c:2013 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
-#: elf32-or1k.c:1270 elf32-tilepro.c:3682 elf32-v850.c:2295 elf32-visium.c:685
-#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4069
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2264
+#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
+#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685
+#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2275
msgid "internal error: dangerous relocation"
msgstr ""
-#: elf32-avr.c:3287 elf32-hppa.c:591 elf32-m68hc1x.c:165 elf32-metag.c:1202
-#: elf32-nios2.c:2229
+#: elf32-avr.c:3287 elf32-hppa.c:587 elf32-m68hc1x.c:165 elf32-metag.c:1198
+#: elf32-nios2.c:2227
#, c-format
msgid "%B: cannot create stub entry %s"
msgstr ""
@@ -1909,8 +1914,8 @@ msgstr ""
msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1612 elf32-i386.c:5200 elf32-m68k.c:4160 elf32-s390.c:3437
-#: elf64-s390.c:3348 elf64-x86-64.c:5613
+#: elf32-bfin.c:1612 elf32-i386.c:5262 elf32-m68k.c:4160 elf32-s390.c:3418
+#: elf64-s390.c:3337 elf64-x86-64.c:5737
#, c-format
msgid "%B(%A+0x%lx): reloc against `%s': error %d"
msgstr ""
@@ -2009,17 +2014,17 @@ msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
msgstr ""
#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666
-#: elf32-cris.c:1819 elf32-tic6x.c:2649
+#: elf32-cris.c:1819 elf32-tic6x.c:2651
msgid "[whose name is lost]"
msgstr ""
-#: elf32-cris.c:1304 elf32-tic6x.c:2633
+#: elf32-cris.c:1304 elf32-tic6x.c:2635
#, c-format
msgid ""
"%B, section %A: relocation %s with non-zero addend %d against local symbol"
msgstr ""
-#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2642
+#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644
#, c-format
msgid ""
"%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
@@ -2067,14 +2072,14 @@ msgid ""
"-mno-small-tls)"
msgstr ""
-#: elf32-cris.c:3224
+#: elf32-cris.c:3231
#, c-format
msgid ""
"%B, section %A:\n"
" v10/v32 compatible object %s must not contain a PIC relocation"
msgstr ""
-#: elf32-cris.c:3278
+#: elf32-cris.c:3285
#, c-format
msgid ""
"%B, section %A:\n"
@@ -2082,52 +2087,52 @@ msgid ""
"recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3493
+#: elf32-cris.c:3500
#, c-format
msgid ""
"%B, section %A:\n"
" relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3916
+#: elf32-cris.c:3924
#, c-format
msgid ""
"%B, section `%A', to symbol `%s':\n"
" relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:4028
+#: elf32-cris.c:4036
msgid "Unexpected machine number"
msgstr ""
-#: elf32-cris.c:4079
+#: elf32-cris.c:4087
#, c-format
msgid " [symbols have a _ prefix]"
msgstr ""
-#: elf32-cris.c:4082
+#: elf32-cris.c:4090
#, c-format
msgid " [v10 and v32]"
msgstr ""
-#: elf32-cris.c:4085
+#: elf32-cris.c:4093
#, c-format
msgid " [v32]"
msgstr ""
-#: elf32-cris.c:4129
+#: elf32-cris.c:4137
msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr ""
-#: elf32-cris.c:4130
+#: elf32-cris.c:4138
msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr ""
-#: elf32-cris.c:4149
+#: elf32-cris.c:4157
msgid "%B contains CRIS v32 code, incompatible with previous objects"
msgstr ""
-#: elf32-cris.c:4151
+#: elf32-cris.c:4159
msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
@@ -2297,35 +2302,35 @@ msgstr ""
msgid "%B: Relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf32-hppa.c:843 elf32-hppa.c:3606
+#: elf32-hppa.c:839 elf32-hppa.c:3599
#, c-format
msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:1276
+#: elf32-hppa.c:1270
#, c-format
msgid ""
"%B: relocation %s can not be used when making a shared object; recompile "
"with -fPIC"
msgstr ""
-#: elf32-hppa.c:2785
+#: elf32-hppa.c:2778
#, c-format
msgid "%B: duplicate export stub %s"
msgstr ""
-#: elf32-hppa.c:3440
+#: elf32-hppa.c:3433
#, c-format
msgid ""
"%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
msgstr ""
-#: elf32-hppa.c:4297
+#: elf32-hppa.c:4290
#, c-format
msgid "%B(%A+0x%lx): cannot handle %s for %s"
msgstr ""
-#: elf32-hppa.c:4593
+#: elf32-hppa.c:4588
msgid ".got section not immediately after .plt section"
msgstr ""
@@ -2334,8 +2339,8 @@ msgstr ""
msgid "%B: unrecognised I370 reloc number: %d"
msgstr ""
-#: elf32-i370.c:359 elf32-m68hc1x.c:1388 elf32-ppc.c:4883 elf64-sparc.c:711
-#: elfxx-mips.c:15249
+#: elf32-i370.c:359 elf32-m68hc1x.c:1388 elf32-ppc.c:4902 elf64-sparc.c:713
+#: elfxx-mips.c:15111
#, c-format
msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
@@ -2350,106 +2355,103 @@ msgid "%B: Relocation %s is not yet supported for symbol %s."
msgstr ""
#. Unknown relocation.
-#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2058 elf32-s390.c:346
-#: elf32-tic6x.c:2672 elf64-ppc.c:2497 elf64-s390.c:372 elf64-x86-64.c:289
+#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346
+#: elf32-tic6x.c:2674 elf64-ppc.c:2515 elf64-s390.c:372 elf64-x86-64.c:289
#, c-format
msgid "%B: invalid relocation type %d"
msgstr ""
-#: elf32-i386.c:1561 elf64-x86-64.c:1659
+#: elf32-i386.c:1570 elf64-x86-64.c:1703
#, c-format
msgid ""
"%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
msgstr ""
-#: elf32-i386.c:1649
+#: elf32-i386.c:1658
#, c-format
msgid ""
"%B: direct GOT relocation R_386_GOT32X against `%s' without base register "
"can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:2107 elf32-s390.c:1216 elf32-sh.c:6055 elf32-tilepro.c:1628
-#: elf32-xtensa.c:1182 elf64-s390.c:1145 elfxx-sparc.c:1596
-#: elfxx-tilegx.c:1837
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:444
+#: elf32-i386.c:2116 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608
+#: elf32-xtensa.c:1182 elf64-s390.c:1113 elfxx-sparc.c:1592 elfxx-tilegx.c:1817
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:444
#, c-format
msgid "%B: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:2196
+#: elf32-i386.c:2205
#, c-format
msgid "%B: unsupported non-PIC call to IFUNC `%s'"
msgstr ""
-#: elf32-i386.c:3071 elf64-x86-64.c:3468
+#: elf32-i386.c:3106 elf64-x86-64.c:3553
#, c-format
msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n"
msgstr ""
-#: elf32-i386.c:3283 elf64-x86-64.c:3677
+#: elf32-i386.c:3318 elf64-x86-64.c:3763
#, c-format
msgid "%P: %B: warning: relocation in readonly section `%A'\n"
msgstr ""
-#: elf32-i386.c:3542 elf64-x86-64.c:3957
+#: elf32-i386.c:3600 elf64-x86-64.c:4081
msgid ""
"%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"
msgstr ""
-#: elf32-i386.c:3780 elf32-tilepro.c:2877 elf64-x86-64.c:4162
-#: elfxx-tilegx.c:3176
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6068
+#: elf32-i386.c:3838 elf32-tilepro.c:2868 elf64-x86-64.c:4286
+#: elfxx-tilegx.c:3167 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6111
#, c-format
msgid "%B: unrecognized relocation (0x%x) in section `%A'"
msgstr ""
-#: elf32-i386.c:4060 elf64-x86-64.c:4390
+#: elf32-i386.c:4120 elf64-x86-64.c:4514
#, c-format
msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr ""
-#: elf32-i386.c:4308
+#: elf32-i386.c:4370
#, c-format
msgid ""
"%B: direct GOT relocation %s against `%s' without base register can not be "
"used when making a shared object"
msgstr ""
-#: elf32-i386.c:4341 elf64-x86-64.c:4637
+#: elf32-i386.c:4403 elf64-x86-64.c:4761
msgid "hidden symbol"
msgstr ""
-#: elf32-i386.c:4344 elf64-x86-64.c:4640
+#: elf32-i386.c:4406 elf64-x86-64.c:4764
msgid "internal symbol"
msgstr ""
-#: elf32-i386.c:4347 elf64-x86-64.c:4643
+#: elf32-i386.c:4409 elf64-x86-64.c:4767
msgid "protected symbol"
msgstr ""
-#: elf32-i386.c:4350 elf64-x86-64.c:4646
+#: elf32-i386.c:4412 elf64-x86-64.c:4770
msgid "symbol"
msgstr ""
-#: elf32-i386.c:4356
+#: elf32-i386.c:4418
#, c-format
msgid ""
"%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:4368
+#: elf32-i386.c:4430
#, c-format
msgid ""
"%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:5849 elf32-tilepro.c:3928 elf64-x86-64.c:6309
-#: elfxx-tilegx.c:4333
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:9174
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2506
+#: elf32-i386.c:5917 elf32-tilepro.c:3920 elf64-x86-64.c:6439
+#: elfxx-tilegx.c:4327 /work/sources/binutils/current/bfd/elfnn-aarch64.c:9215
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2522
#, c-format
msgid "discarded output section: `%A'"
msgstr ""
@@ -2493,11 +2495,11 @@ msgstr ""
msgid "%B: invalid LM32 reloc number: %d"
msgstr ""
-#: elf32-lm32.c:668 elf32-nios2.c:3155
+#: elf32-lm32.c:668 elf32-nios2.c:3153
msgid "global pointer relative relocation when _gp not defined"
msgstr ""
-#: elf32-lm32.c:723 elf32-nios2.c:3592
+#: elf32-lm32.c:723 elf32-nios2.c:3590
msgid "global pointer relative address out of range"
msgstr ""
@@ -2724,21 +2726,21 @@ msgstr ""
msgid "private flags = 0x%lx"
msgstr ""
-#: elf32-metag.c:897
+#: elf32-metag.c:893
#, c-format
msgid "%B: invalid METAG reloc number: %d"
msgstr ""
-#: elf32-metag.c:1879
+#: elf32-metag.c:1875
msgid "%B(%A): multiple TLS models are not supported"
msgstr ""
-#: elf32-metag.c:1882
+#: elf32-metag.c:1878
msgid ""
"%B(%A): shared library symbol %s encountered whilst performing a static link"
msgstr ""
-#: elf32-metag.c:1935
+#: elf32-metag.c:1931
#, c-format
msgid ""
"%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared "
@@ -2750,18 +2752,18 @@ msgstr ""
msgid "%B: unrecognised MicroBlaze reloc number: %d"
msgstr ""
-#: elf32-microblaze.c:956
+#: elf32-microblaze.c:952
#, c-format
msgid "%s: unknown relocation type %d"
msgstr ""
-#: elf32-microblaze.c:1084 elf32-microblaze.c:1132
+#: elf32-microblaze.c:1080 elf32-microblaze.c:1128
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr ""
-#: elf32-microblaze.c:1500 elf32-or1k.c:1076 elf32-tilepro.c:3326
-#: elfxx-sparc.c:3532 elfxx-tilegx.c:3735
+#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317
+#: elfxx-sparc.c:3564 elfxx-tilegx.c:3726
msgid "%B: probably compiled without -fPIC?"
msgstr ""
@@ -2945,7 +2947,7 @@ msgstr ""
msgid "%B: Unmatched OMIT_FP in %A."
msgstr ""
-#: elf32-nds32.c:13026 reloc.c:8142
+#: elf32-nds32.c:13026 reloc.c:8192
#, c-format
msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n"
msgstr ""
@@ -2969,65 +2971,65 @@ msgstr ""
msgid "%P%F: failed creating ex9.it %s hash table: %E\n"
msgstr ""
-#: elf32-nios2.c:2951
+#: elf32-nios2.c:2949
msgid "error: %B: Big-endian R2 is not supported."
msgstr ""
-#: elf32-nios2.c:3832
+#: elf32-nios2.c:3830
#, c-format
msgid ""
"global pointer relative relocation at address 0x%08x when _gp not defined\n"
msgstr ""
-#: elf32-nios2.c:3852
+#: elf32-nios2.c:3850
#, c-format
msgid ""
"Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because "
"the offset (%d) is out of the allowed range, -32678 to 32767.\n"
msgstr ""
-#: elf32-nios2.c:4374
+#: elf32-nios2.c:4372
#, c-format
msgid ""
"%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object"
msgstr ""
-#: elf32-nios2.c:4502
+#: elf32-nios2.c:4500 elf32-pru.c:816
msgid "relocation out of range"
msgstr ""
-#: elf32-nios2.c:4512 elf32-tic6x.c:2745
+#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747
msgid "dangerous relocation"
msgstr ""
-#: elf32-nios2.c:5526
+#: elf32-nios2.c:5491
#, c-format
msgid "dynamic variable `%s' is zero size"
msgstr ""
-#: elf32-or1k.c:739
+#: elf32-or1k.c:735
#, c-format
msgid "%B: invalid OR1K reloc number: %d"
msgstr ""
-#: elf32-or1k.c:989
+#: elf32-or1k.c:985
msgid "internal error: addend should be zero for R_OR1K_GOT16"
msgstr ""
-#: elf32-or1k.c:1098
+#: elf32-or1k.c:1094
msgid "%B: support for local dynamic not implemented"
msgstr ""
-#: elf32-or1k.c:1233
+#: elf32-or1k.c:1229
msgid "%B: will not resolve runtime TLS relocation"
msgstr ""
-#: elf32-or1k.c:1603
+#: elf32-or1k.c:1599
#, c-format
msgid "%B: bad relocation section name `%s'"
msgstr ""
-#: elf32-or1k.c:2733
+#: elf32-or1k.c:2704
msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules"
msgstr ""
@@ -3036,110 +3038,110 @@ msgstr ""
msgid "%B: unrecognised PicoJava reloc number: %d"
msgstr ""
-#: elf32-ppc.c:2046
+#: elf32-ppc.c:2062
#, c-format
msgid "%B: unrecognised PPC reloc number: %d"
msgstr ""
-#: elf32-ppc.c:2131
+#: elf32-ppc.c:2147
#, c-format
msgid "generic linker can't handle %s"
msgstr ""
-#: elf32-ppc.c:2765
+#: elf32-ppc.c:2781
#, c-format
msgid "corrupt %s section in %B"
msgstr ""
-#: elf32-ppc.c:2785
+#: elf32-ppc.c:2801
#, c-format
msgid "unable to read in %s section from %B"
msgstr ""
-#: elf32-ppc.c:2827
+#: elf32-ppc.c:2843
#, c-format
msgid "warning: unable to set size of %s section in %B"
msgstr ""
-#: elf32-ppc.c:2877
+#: elf32-ppc.c:2893
msgid "failed to allocate space for new APUinfo section."
msgstr ""
-#: elf32-ppc.c:2896
+#: elf32-ppc.c:2912
msgid "failed to compute new APUinfo section."
msgstr ""
-#: elf32-ppc.c:2899
+#: elf32-ppc.c:2915
msgid "failed to install new APUinfo section."
msgstr ""
-#: elf32-ppc.c:3950
+#: elf32-ppc.c:3968
#, c-format
msgid "%B: relocation %s cannot be used when making a shared object"
msgstr ""
-#: elf32-ppc.c:4304 elf64-ppc.c:5585
+#: elf32-ppc.c:4322 elf64-ppc.c:5579
#, c-format
-msgid "%P: %H: %s reloc against local symbol\n"
+msgid "%H: %s reloc against local symbol\n"
msgstr ""
-#: elf32-ppc.c:4665 elf32-ppc.c:4669
+#: elf32-ppc.c:4684 elf32-ppc.c:4688
#, c-format
msgid "Warning: %B uses hard float, %B uses soft float"
msgstr ""
-#: elf32-ppc.c:4673 elf32-ppc.c:4678
+#: elf32-ppc.c:4692 elf32-ppc.c:4697
#, c-format
msgid ""
"Warning: %B uses double-precision hard float, %B uses single-precision hard "
"float"
msgstr ""
-#: elf32-ppc.c:4693 elf32-ppc.c:4698
+#: elf32-ppc.c:4712 elf32-ppc.c:4717
#, c-format
msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double"
msgstr ""
-#: elf32-ppc.c:4703 elf32-ppc.c:4708
+#: elf32-ppc.c:4722 elf32-ppc.c:4727
#, c-format
msgid "Warning: %B uses IBM long double, %B uses IEEE long double"
msgstr ""
-#: elf32-ppc.c:4759 elf32-ppc.c:4764
+#: elf32-ppc.c:4778 elf32-ppc.c:4783
#, c-format
msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"
msgstr ""
-#: elf32-ppc.c:4787 elf32-ppc.c:4792
+#: elf32-ppc.c:4806 elf32-ppc.c:4811
#, c-format
msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
msgstr ""
-#: elf32-ppc.c:4847
+#: elf32-ppc.c:4866
msgid ""
"%B: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:4855
+#: elf32-ppc.c:4874
msgid ""
"%B: compiled normally and linked with modules compiled with -mrelocatable"
msgstr ""
-#: elf32-ppc.c:4924
+#: elf32-ppc.c:4943
#, c-format
msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn"
msgstr ""
-#: elf32-ppc.c:4943
+#: elf32-ppc.c:4962
#, c-format
msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn"
msgstr ""
-#: elf32-ppc.c:5018
+#: elf32-ppc.c:5037
msgid "%P: bss-plt forced due to %B\n"
msgstr ""
-#: elf32-ppc.c:5021
+#: elf32-ppc.c:5040
msgid "%P: bss-plt forced by profiling\n"
msgstr ""
@@ -3147,33 +3149,33 @@ msgstr ""
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:5520 elf64-ppc.c:8746
+#: elf32-ppc.c:5539 elf64-ppc.c:8749
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
-#: elf32-ppc.c:8248
-msgid "%P: %H: fixup branch overflow\n"
+#: elf32-ppc.c:8246
+msgid "%H: fixup branch overflow\n"
msgstr ""
-#: elf32-ppc.c:8288 elf32-ppc.c:8323
+#: elf32-ppc.c:8286 elf32-ppc.c:8321
#, c-format
-msgid "%P: %H: error: %s with unexpected instruction %x\n"
+msgid "%H: error: %s with unexpected instruction %x\n"
msgstr ""
-#: elf32-ppc.c:8379
+#: elf32-ppc.c:8377
#, c-format
-msgid "%X%P: %H: unsupported bss-plt -fPIC ifunc %s\n"
+msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8432
+#: elf32-ppc.c:8431
#, c-format
msgid "%P: %B: unknown relocation type %d for symbol %s\n"
msgstr ""
-#: elf32-ppc.c:8711
+#: elf32-ppc.c:8722
#, c-format
-msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
+msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr ""
#. @local on an ifunc does not really make sense since
@@ -3184,50 +3186,62 @@ 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:8743
+#: elf32-ppc.c:8754
#, c-format
-msgid "%X%P: %H: @local call to ifunc %s\n"
+msgid "%X%H: @local call to ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8933
+#: elf32-ppc.c:8939
#, c-format
-msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
+msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr ""
-#: elf32-ppc.c:9192 elf32-ppc.c:9223 elf32-ppc.c:9314
+#: elf32-ppc.c:9236 elf32-ppc.c:9267 elf32-ppc.c:9358
#, c-format
msgid ""
"%P: %B: the target (%s) of a %s relocation is in the wrong output section "
"(%s)\n"
msgstr ""
-#: elf32-ppc.c:9409
+#: elf32-ppc.c:9446
#, c-format
msgid ""
"%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:9519
+#: elf32-ppc.c:9550
#, c-format
msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
msgstr ""
-#: elf32-ppc.c:9604
+#: elf32-ppc.c:9635
#, c-format
-msgid "%P: %H: error: %s against `%s' not a multiple of %u\n"
+msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr ""
-#: elf32-ppc.c:9633
+#: elf32-ppc.c:9664
#, c-format
-msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
+msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elf32-ppc.c:9714
+#: elf32-ppc.c:9745
#, c-format
-msgid "%P: %H: %s reloc against `%s': error %d\n"
+msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
-#: elf32-ppc.c:10511
+#: elf32-ppc.c:10509 elf64-ppc.c:15641
+msgid ""
+"%X%P: text relocations and GNU indirect functions will result in a segfault "
+"at runtime\n"
+msgstr ""
+
+#: elf32-ppc.c:10513 elf64-ppc.c:15645
+msgid ""
+"%P: warning: text relocations and GNU indirect functions may result in a "
+"segfault at runtime\n"
+msgstr ""
+
+#: elf32-ppc.c:10558
#, c-format
msgid "%P: %s not defined in linker created %s\n"
msgstr ""
@@ -3336,12 +3350,12 @@ msgstr ""
msgid "%B:%A: %s and %s must be in the same input section"
msgstr ""
-#: elf32-s390.c:2329 elf64-s390.c:2276
+#: elf32-s390.c:2310 elf64-s390.c:2253
#, c-format
msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
msgstr ""
-#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3752
+#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756
msgid "not enough GOT space for local GOT entries"
msgstr ""
@@ -3437,44 +3451,44 @@ msgstr ""
msgid "%C: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:6044 elf32-sh.c:6130
+#: elf32-sh.c:6045 elf32-sh.c:6131
#, c-format
msgid "%B: `%s' accessed both as normal and FDPIC symbol"
msgstr ""
-#: elf32-sh.c:6050 elf32-sh.c:6135
+#: elf32-sh.c:6051 elf32-sh.c:6136
#, c-format
msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
msgstr ""
-#: elf32-sh.c:6081
+#: elf32-sh.c:6082
msgid "%B: Function descriptor relocation with non-zero addend"
msgstr ""
-#: elf32-sh.c:6319 elf64-alpha.c:4749
+#: elf32-sh.c:6320 elf64-alpha.c:4757
#, c-format
msgid "%B: TLS local exec code cannot be linked into shared objects"
msgstr ""
-#: elf32-sh.c:6434
+#: elf32-sh.c:6435
#, c-format
msgid "%B: uses %s instructions while previous modules use %s instructions"
msgstr ""
-#: elf32-sh.c:6446
+#: elf32-sh.c:6447
#, c-format
msgid ""
"internal error: merge of architecture '%s' with architecture '%s' produced "
"unknown architecture"
msgstr ""
-#: elf32-sh.c:6483
+#: elf32-sh.c:6484
msgid ""
"%B: uses instructions which are incompatible with instructions used in "
"previous modules"
msgstr ""
-#: elf32-sh.c:6496
+#: elf32-sh.c:6497
msgid "%B: attempt to mix FDPIC and non-FDPIC objects"
msgstr ""
@@ -3679,52 +3693,52 @@ msgstr ""
msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
msgstr ""
-#: elf32-tic6x.c:1600
+#: elf32-tic6x.c:1596
msgid "warning: generating a shared library containing non-PIC code"
msgstr ""
-#: elf32-tic6x.c:1605
+#: elf32-tic6x.c:1601
msgid "warning: generating a shared library containing non-PID code"
msgstr ""
-#: elf32-tic6x.c:2523
+#: elf32-tic6x.c:2525
msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
msgstr ""
-#: elf32-tic6x.c:3648
+#: elf32-tic6x.c:3651
#, c-format
msgid "%B: error: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3657
+#: elf32-tic6x.c:3660
#, c-format
msgid "%B: warning: unknown EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3771 elf32-tic6x.c:3780
+#: elf32-tic6x.c:3774 elf32-tic6x.c:3783
#, c-format
msgid "error: %B requires more stack alignment than %B preserves"
msgstr ""
-#: elf32-tic6x.c:3790 elf32-tic6x.c:3799
+#: elf32-tic6x.c:3793 elf32-tic6x.c:3802
msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
msgstr ""
-#: elf32-tic6x.c:3808 elf32-tic6x.c:3817
+#: elf32-tic6x.c:3811 elf32-tic6x.c:3820
msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
msgstr ""
-#: elf32-tic6x.c:3826 elf32-tic6x.c:3834
+#: elf32-tic6x.c:3829 elf32-tic6x.c:3837
#, c-format
msgid "error: %B requires more array alignment than %B preserves"
msgstr ""
-#: elf32-tic6x.c:3857
+#: elf32-tic6x.c:3860
#, c-format
msgid "warning: %B and %B differ in wchar_t size"
msgstr ""
-#: elf32-tic6x.c:3876
+#: elf32-tic6x.c:3879
#, c-format
msgid "warning: %B and %B differ in whether code is compiled for DSBT"
msgstr ""
@@ -4032,8 +4046,8 @@ msgstr ""
msgid "error reading cpu type from elf private data"
msgstr ""
-#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2073 elf32-ia64.c:2332
-#: elf64-ia64.c:2332
+#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2073 elf32-ia64.c:2333
+#: elf64-ia64.c:2333
msgid "non-zero addend in @fptr reloc"
msgstr ""
@@ -4113,56 +4127,56 @@ msgstr ""
msgid "%B: .got subsegment exceeds 64K (size %d)"
msgstr ""
-#: elf64-alpha.c:3078
+#: elf64-alpha.c:3084
#, c-format
msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn"
msgstr ""
-#: elf64-alpha.c:3272
+#: elf64-alpha.c:3280
#, c-format
msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn"
msgstr ""
-#: elf64-alpha.c:4473 elf64-alpha.c:4486
+#: elf64-alpha.c:4481 elf64-alpha.c:4494
#, c-format
msgid "%B: gp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4513 elf64-alpha.c:4657
+#: elf64-alpha.c:4521 elf64-alpha.c:4665
#, c-format
msgid "%B: pc-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4542
+#: elf64-alpha.c:4550
#, c-format
msgid "%B: change in gp: BRSGP %s"
msgstr ""
-#: elf64-alpha.c:4567
+#: elf64-alpha.c:4575
msgid "<unknown>"
msgstr ""
-#: elf64-alpha.c:4573
+#: elf64-alpha.c:4581
#, c-format
msgid "%B: !samegp reloc against symbol without .prologue: %s"
msgstr ""
-#: elf64-alpha.c:4631
+#: elf64-alpha.c:4639
#, c-format
msgid "%B: unhandled dynamic relocation against %s"
msgstr ""
-#: elf64-alpha.c:4666
+#: elf64-alpha.c:4674
#, c-format
msgid "%B: pc-relative relocation against undefined weak symbol %s"
msgstr ""
-#: elf64-alpha.c:4732
+#: elf64-alpha.c:4740
#, c-format
msgid "%B: dtp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4757
+#: elf64-alpha.c:4765
#, c-format
msgid "%B: tp-relative relocation against dynamic symbol %s"
msgstr ""
@@ -4184,100 +4198,100 @@ msgid ""
"branch."
msgstr ""
-#: elf64-ia64-vms.c:2028 elf32-ia64.c:2280 elf64-ia64.c:2280
+#: elf64-ia64-vms.c:2028 elf32-ia64.c:2281 elf64-ia64.c:2281
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf64-ia64-vms.c:3281 elf32-ia64.c:3686 elf64-ia64.c:3686
+#: elf64-ia64-vms.c:3281 elf32-ia64.c:3687 elf64-ia64.c:3687
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr ""
-#: elf64-ia64-vms.c:3292 elf32-ia64.c:3697 elf64-ia64.c:3697
+#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr ""
-#: elf64-ia64-vms.c:3559 elf32-ia64.c:3966 elf64-ia64.c:3966
+#: elf64-ia64-vms.c:3559 elf32-ia64.c:3967 elf64-ia64.c:3967
#, c-format
msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr ""
-#: elf64-ia64-vms.c:3622 elf32-ia64.c:4034 elf64-ia64.c:4034
+#: elf64-ia64-vms.c:3622 elf32-ia64.c:4035 elf64-ia64.c:4035
#, c-format
msgid "%B: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3681 elf32-ia64.c:4097 elf64-ia64.c:4097
+#: elf64-ia64-vms.c:3681 elf32-ia64.c:4098 elf64-ia64.c:4098
msgid "%B: linking non-pic code in a position independent executable"
msgstr ""
-#: elf64-ia64-vms.c:3783 elf32-ia64.c:4235 elf64-ia64.c:4235
+#: elf64-ia64-vms.c:3783 elf32-ia64.c:4236 elf64-ia64.c:4236
#, c-format
msgid "%B: @internal branch to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3786 elf32-ia64.c:4238 elf64-ia64.c:4238
+#: elf64-ia64-vms.c:3786 elf32-ia64.c:4239 elf64-ia64.c:4239
#, c-format
msgid "%B: speculation fixup to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3789 elf32-ia64.c:4241 elf64-ia64.c:4241
+#: elf64-ia64-vms.c:3789 elf32-ia64.c:4242 elf64-ia64.c:4242
#, c-format
msgid "%B: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3913 elf32-ia64.c:4438 elf64-ia64.c:4438
+#: elf64-ia64-vms.c:3913 elf32-ia64.c:4439 elf64-ia64.c:4439
msgid "unsupported reloc"
msgstr ""
-#: elf64-ia64-vms.c:3950 elf32-ia64.c:4476 elf64-ia64.c:4476
+#: elf64-ia64-vms.c:3950 elf32-ia64.c:4477 elf64-ia64.c:4477
#, c-format
msgid ""
"%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `"
"%A'."
msgstr ""
-#: elf64-ia64-vms.c:3966 elf32-ia64.c:4492 elf64-ia64.c:4492
+#: elf64-ia64-vms.c:3966 elf32-ia64.c:4493 elf64-ia64.c:4493
#, c-format
msgid ""
"%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> "
"0x1000000)."
msgstr ""
-#: elf64-ia64-vms.c:4256 elf32-ia64.c:4748 elf64-ia64.c:4748
+#: elf64-ia64-vms.c:4256 elf32-ia64.c:4749 elf64-ia64.c:4749
msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf64-ia64-vms.c:4265 elf32-ia64.c:4757 elf64-ia64.c:4757
+#: elf64-ia64-vms.c:4265 elf32-ia64.c:4758 elf64-ia64.c:4758
msgid "%B: linking big-endian files with little-endian files"
msgstr ""
-#: elf64-ia64-vms.c:4274 elf32-ia64.c:4766 elf64-ia64.c:4766
+#: elf64-ia64-vms.c:4274 elf32-ia64.c:4767 elf64-ia64.c:4767
msgid "%B: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf64-ia64-vms.c:4283 elf32-ia64.c:4775 elf64-ia64.c:4775
+#: elf64-ia64-vms.c:4283 elf32-ia64.c:4776 elf64-ia64.c:4776
msgid "%B: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf64-ia64-vms.c:4293 elf32-ia64.c:4785 elf64-ia64.c:4785
+#: elf64-ia64-vms.c:4293 elf32-ia64.c:4786 elf64-ia64.c:4786
msgid "%B: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: elf64-ia64-vms.c:5136 elflink.c:4628
+#: elf64-ia64-vms.c:5136 elflink.c:4674
#, c-format
msgid ""
"Warning: alignment %u of common symbol `%s' in %B is greater than the "
"alignment (%u) of its section %A"
msgstr ""
-#: elf64-ia64-vms.c:5143 elflink.c:4635
+#: elf64-ia64-vms.c:5143 elflink.c:4681
#, c-format
msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
msgstr ""
-#: elf64-ia64-vms.c:5159 elflink.c:4652
+#: elf64-ia64-vms.c:5159 elflink.c:4698
#, c-format
msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
msgstr ""
@@ -4365,119 +4379,119 @@ msgid ""
" Please report this bug."
msgstr ""
-#: elf64-ppc.c:4593
+#: elf64-ppc.c:4614
#, c-format
msgid "%P: %B: cannot create stub entry %s\n"
msgstr ""
-#: elf64-ppc.c:4988
+#: elf64-ppc.c:4982
msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n"
msgstr ""
-#: elf64-ppc.c:5157
+#: elf64-ppc.c:5151
#, c-format
msgid "%P: %B .opd not allowed in ABI version %d\n"
msgstr ""
-#: elf64-ppc.c:5633
+#: elf64-ppc.c:5627
#, c-format
-msgid "%P: %H: %s reloc unsupported in shared libraries and PIEs.\n"
+msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n"
msgstr ""
-#: elf64-ppc.c:6040
+#: elf64-ppc.c:6034
#, c-format
msgid "%B uses unknown e_flags 0x%lx"
msgstr ""
-#: elf64-ppc.c:6048
+#: elf64-ppc.c:6042
#, c-format
msgid "%B: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
-#: elf64-ppc.c:6076
+#: elf64-ppc.c:6070
#, c-format
msgid " [abiv%ld]"
msgstr ""
-#: elf64-ppc.c:7373
+#: elf64-ppc.c:7368
msgid ""
"%P: copy reloc against `%T' requires lazy plt linking; avoid setting "
"LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
-#: elf64-ppc.c:7632
+#: elf64-ppc.c:7635
msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr ""
-#: elf64-ppc.c:7862
+#: elf64-ppc.c:7865
#, c-format
msgid "%P: dynreloc miscount for %B, section %A\n"
msgstr ""
-#: elf64-ppc.c:7951
+#: elf64-ppc.c:7954
msgid "%B: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:7961
+#: elf64-ppc.c:7964
#, c-format
msgid "%B: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:7983
+#: elf64-ppc.c:7986
#, c-format
msgid "%B: undefined sym `%s' in .opd section"
msgstr ""
-#: elf64-ppc.c:8548
+#: elf64-ppc.c:8551
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
-#: elf64-ppc.c:8891 elf64-ppc.c:9528
+#: elf64-ppc.c:8894 elf64-ppc.c:9531
#, c-format
msgid "%s defined on removed toc entry"
msgstr ""
-#: elf64-ppc.c:9256
+#: elf64-ppc.c:9259
#, c-format
-msgid "%P: %H: toc optimization is not supported for %s instruction.\n"
+msgid "%H: toc optimization is not supported for %s instruction.\n"
msgstr ""
-#: elf64-ppc.c:9485
+#: elf64-ppc.c:9488
#, c-format
-msgid "%P: %H: %s references optimized away TOC entry\n"
+msgid "%H: %s references optimized away TOC entry\n"
msgstr ""
-#: elf64-ppc.c:10810
+#: elf64-ppc.c:10817
msgid "%P: cannot find opd entry toc for `%T'\n"
msgstr ""
-#: elf64-ppc.c:10901
+#: elf64-ppc.c:10908
msgid "%P: long branch stub `%s' offset overflow\n"
msgstr ""
-#: elf64-ppc.c:10960
+#: elf64-ppc.c:10967
msgid "%P: can't find branch stub `%s'\n"
msgstr ""
-#: elf64-ppc.c:11024 elf64-ppc.c:11175 elf64-ppc.c:12979
+#: elf64-ppc.c:11031 elf64-ppc.c:11183 elf64-ppc.c:12984
#, c-format
msgid "%P: linkage table error against `%T'\n"
msgstr ""
-#: elf64-ppc.c:11385
+#: elf64-ppc.c:11393
msgid "%P: can't build branch stub `%s'\n"
msgstr ""
-#: elf64-ppc.c:12158
+#: elf64-ppc.c:12166
#, c-format
msgid "%B section %A exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:13256
+#: elf64-ppc.c:13261
msgid "%P: stubs don't match calculated size\n"
msgstr ""
-#: elf64-ppc.c:13268
+#: elf64-ppc.c:13273
#, c-format
msgid ""
"linker stubs in %u group%s\n"
@@ -4490,178 +4504,182 @@ msgid ""
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:13590
+#: elf64-ppc.c:13595
#, c-format
-msgid "%P: %H: %s used with TLS symbol `%T'\n"
+msgid "%H: %s used with TLS symbol `%T'\n"
msgstr ""
-#: elf64-ppc.c:13592
+#: elf64-ppc.c:13597
#, c-format
-msgid "%P: %H: %s used with non-TLS symbol `%T'\n"
+msgid "%H: %s used with non-TLS symbol `%T'\n"
msgstr ""
-#: elf64-ppc.c:14222
+#: elf64-ppc.c:14227
#, c-format
-msgid ""
-"%P: %H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
+msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
msgstr ""
-#: elf64-ppc.c:14228
+#: elf64-ppc.c:14233
#, c-format
msgid ""
-"%P: %H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc "
-"adjust stub)\n"
+"%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust "
+"stub)\n"
msgstr ""
-#: elf64-ppc.c:14356
+#: elf64-ppc.c:14361
#, c-format
msgid "%P: %B: unknown relocation type %d for `%T'\n"
msgstr ""
-#: elf64-ppc.c:14899
+#: elf64-ppc.c:14918
#, c-format
-msgid "%P: %H: %s for indirect function `%T' unsupported\n"
+msgid "%H: %s for indirect function `%T' unsupported\n"
msgstr ""
-#: elf64-ppc.c:15007
+#: elf64-ppc.c:15056
#, c-format
msgid "%P: %B: %s is not supported for `%T'\n"
msgstr ""
-#: elf64-ppc.c:15162
+#: elf64-ppc.c:15211
#, c-format
-msgid "%P: %H: error: %s not a multiple of %u\n"
+msgid "%H: error: %s not a multiple of %u\n"
msgstr ""
-#: elf64-ppc.c:15184
+#: elf64-ppc.c:15233
#, c-format
-msgid "%P: %H: unresolvable %s against `%T'\n"
+msgid "%H: unresolvable %s against `%T'\n"
msgstr ""
-#: elf64-ppc.c:15281
+#: elf64-ppc.c:15330
#, c-format
-msgid "%P: %H: %s against `%T': error %d\n"
+msgid "%H: %s against `%T': error %d\n"
msgstr ""
-#: elf64-ppc.c:15650 elf64-ppc.c:15679
+#: elf64-ppc.c:15723 elf64-ppc.c:15752
msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
msgstr ""
+#: elf64-s390.c:2708
+msgid ""
+"%B: `%s' non-PLT reloc for symbol defined in shared library and accessed "
+"from executable (rebuild file with -fPIC ?)"
+msgstr ""
+
#: elf64-sh64.c:1680
#, c-format
msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
msgstr ""
-#: elf64-sparc.c:446
+#: elf64-sparc.c:448
msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr ""
-#: elf64-sparc.c:467
+#: elf64-sparc.c:469
#, c-format
msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
msgstr ""
-#: elf64-sparc.c:491
+#: elf64-sparc.c:493
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
msgstr ""
-#: elf64-sparc.c:537
+#: elf64-sparc.c:539
#, c-format
msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
msgstr ""
-#: elf64-sparc.c:691
+#: elf64-sparc.c:693
msgid "%B: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:1694
+#: elf64-x86-64.c:1738
msgid "hidden symbol "
msgstr ""
-#: elf64-x86-64.c:1697
+#: elf64-x86-64.c:1741
msgid "internal symbol "
msgstr ""
-#: elf64-x86-64.c:1700
+#: elf64-x86-64.c:1744
msgid "protected symbol "
msgstr ""
-#: elf64-x86-64.c:1703
+#: elf64-x86-64.c:1747
msgid "symbol "
msgstr ""
-#: elf64-x86-64.c:1704 elf64-x86-64.c:1714
+#: elf64-x86-64.c:1748 elf64-x86-64.c:1758
msgid "; recompile with -fPIC"
msgstr ""
-#: elf64-x86-64.c:1709
+#: elf64-x86-64.c:1753
msgid "undefined "
msgstr ""
-#: elf64-x86-64.c:1718
+#: elf64-x86-64.c:1762
#, c-format
msgid ""
"%B: relocation %s against %s%s`%s' can not be used when making a shared "
"object%s"
msgstr ""
-#: elf64-x86-64.c:2278
+#: elf64-x86-64.c:2322
#, c-format
msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr ""
-#: elf64-x86-64.c:2468
+#: elf64-x86-64.c:2527
#, c-format
msgid "%B: '%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:4416
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4991
+#: elf64-x86-64.c:4540 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5004
#, c-format
msgid ""
"%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
msgstr ""
-#: elf64-x86-64.c:4652
+#: elf64-x86-64.c:4776
#, c-format
msgid ""
"%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used "
"when making a shared object"
msgstr ""
-#: elf64-x86-64.c:4665
+#: elf64-x86-64.c:4789
#, c-format
msgid ""
"%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used "
"when making a shared object"
msgstr ""
-#: elf64-x86-64.c:4940
+#: elf64-x86-64.c:5064
#, c-format
msgid ""
"%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `"
"%A' is out of range"
msgstr ""
-#: elf64-x86-64.c:4949
+#: elf64-x86-64.c:5073
#, c-format
msgid ""
"%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `"
"%A' is out of range"
msgstr ""
-#: elf64-x86-64.c:5806
+#: elf64-x86-64.c:5930
#, c-format
msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:5865
+#: elf64-x86-64.c:5989
#, c-format
msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:5930
+#: elf64-x86-64.c:6054
#, c-format
msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n"
msgstr ""
@@ -4686,542 +4704,542 @@ msgstr ""
msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
msgstr ""
-#: elflink.c:1266
+#: elflink.c:1296
#, c-format
msgid ""
"%s: TLS definition in %B section %A mismatches non-TLS definition in %B "
"section %A"
msgstr ""
-#: elflink.c:1272
+#: elflink.c:1302
#, c-format
msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
msgstr ""
-#: elflink.c:1278
+#: elflink.c:1308
#, c-format
msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
msgstr ""
-#: elflink.c:1284
+#: elflink.c:1314
#, c-format
msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
msgstr ""
-#: elflink.c:1948
+#: elflink.c:1978
#, c-format
msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
-#: elflink.c:2241
+#: elflink.c:2271
#, c-format
msgid "%B: version node not found for symbol %s"
msgstr ""
-#: elflink.c:2330
+#: elflink.c:2360
#, c-format
msgid ""
"%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
msgstr ""
-#: elflink.c:2342
+#: elflink.c:2372
#, c-format
msgid ""
"%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the "
"object file has no symbol table"
msgstr ""
-#: elflink.c:2533
+#: elflink.c:2563
#, c-format
msgid "%B: relocation size mismatch in %B section %A"
msgstr ""
-#: elflink.c:2826
+#: elflink.c:2856
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.c:2891
+#: elflink.c:2921
msgid "%P: copy reloc against protected `%T' is dangerous\n"
msgstr ""
-#: elflink.c:3692
+#: elflink.c:3722
#, c-format
msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
msgstr ""
-#: elflink.c:4336
+#: elflink.c:4382
#, c-format
msgid "%B: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.c:4373
+#: elflink.c:4419
#, c-format
msgid "%B: %s: invalid needed version %d"
msgstr ""
-#: elflink.c:4790
+#: elflink.c:4836
#, c-format
msgid "%B: undefined reference to symbol '%s'"
msgstr ""
-#: elflink.c:5794
+#: elflink.c:5840
#, c-format
msgid "%B: stack size specified and %s set"
msgstr ""
-#: elflink.c:5798
+#: elflink.c:5844
#, c-format
msgid "%B: %s not absolute"
msgstr ""
-#: elflink.c:6096
+#: elflink.c:6033
#, c-format
msgid "%s: undefined version: %s"
msgstr ""
-#: elflink.c:6164
+#: elflink.c:6609
msgid "%B: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.c:7930
+#: elflink.c:8040
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr ""
-#: elflink.c:8085
+#: elflink.c:8195
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr ""
-#: elflink.c:8648 elflink.c:8666 elflink.c:8705 elflink.c:8723
+#: elflink.c:8758 elflink.c:8776 elflink.c:8815 elflink.c:8833
msgid "%B: 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:8682 elflink.c:8739
+#: elflink.c:8792 elflink.c:8849
msgid "%B: Unable to sort relocs - they are of an unknown size"
msgstr ""
-#: elflink.c:8791
+#: elflink.c:8901
msgid "Not enough memory to sort relocations"
msgstr ""
-#: elflink.c:9059
+#: elflink.c:9169
#, c-format
msgid "%B: Too many sections: %d (>= %d)"
msgstr ""
-#: elflink.c:9339
+#: elflink.c:9449
#, c-format
msgid "%B: internal symbol `%s' in %B is referenced by DSO"
msgstr ""
-#: elflink.c:9342
+#: elflink.c:9452
#, c-format
msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
msgstr ""
-#: elflink.c:9345
+#: elflink.c:9455
#, c-format
msgid "%B: local symbol `%s' in %B is referenced by DSO"
msgstr ""
-#: elflink.c:9431
+#: elflink.c:9541
#, c-format
msgid "%B: could not find output section %A for input section %A"
msgstr ""
-#: elflink.c:9585
+#: elflink.c:9695
#, c-format
msgid "%B: protected symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:9588
+#: elflink.c:9698
#, c-format
msgid "%B: internal symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:9591
+#: elflink.c:9701
#, c-format
msgid "%B: hidden symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:9622
+#: elflink.c:9732
#, c-format
msgid "%B: No symbol version section for versioned symbol `%s'"
msgstr ""
-#: elflink.c:10227
+#: elflink.c:10337
#, c-format
msgid "error: %B: size of section %A is not multiple of address size"
msgstr ""
-#: elflink.c:10275
+#: elflink.c:10385
#, c-format
msgid ""
"error: %B contains a reloc (0x%s) for section %A that references a non-"
"existent global symbol"
msgstr ""
-#: elflink.c:11030
+#: elflink.c:11140
#, c-format
msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
msgstr ""
-#: elflink.c:11037
+#: elflink.c:11147
#, c-format
msgid "%A has both ordered and unordered sections"
msgstr ""
-#: elflink.c:11138
+#: elflink.c:11248
msgid "%B: no symbol found for import library"
msgstr ""
-#: elflink.c:11761
+#: elflink.c:11871
#, c-format
msgid "%B: file class %s incompatible with %s"
msgstr ""
-#: elflink.c:11974
+#: elflink.c:12084
msgid "%B: failed to generate import library"
msgstr ""
-#: elflink.c:12090
+#: elflink.c:12202
#, c-format
msgid "warning: %s section has zero size"
msgstr ""
-#: elflink.c:12138
+#: elflink.c:12250
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr ""
-#: elflink.c:12216
+#: elflink.c:12342
msgid "%P%X: read-only segment has dynamic relocations.\n"
msgstr ""
-#: elflink.c:12219
+#: elflink.c:12345
msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
msgstr ""
-#: elflink.c:12343
+#: elflink.c:12469
msgid "%P%X: can not read symbols: %E\n"
msgstr ""
-#: elflink.c:12541
+#: elflink.c:12667
msgid "%F%P: corrupt input: %B\n"
msgstr ""
-#: elflink.c:13245
+#: elflink.c:13329
#, c-format
msgid "%B: %A+%lu: No symbol found for INHERIT"
msgstr ""
-#: elflink.c:13421
+#: elflink.c:13505
#, c-format
msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
msgstr ""
-#: elfxx-mips.c:1440
+#: elfxx-mips.c:1444
msgid "static procedure (no name)"
msgstr ""
-#: elfxx-mips.c:5621
+#: elfxx-mips.c:5627
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr ""
-#: elfxx-mips.c:6358
+#: elfxx-mips.c:6370
msgid "%X%H: Unsupported JALX to the same ISA mode\n"
msgstr ""
-#: elfxx-mips.c:6391
+#: elfxx-mips.c:6403
msgid ""
"%X%H: Unsupported jump between ISA modes; consider recompiling with "
"interlinking enabled\n"
msgstr ""
-#: elfxx-mips.c:6424
-msgid "%X%H: Unsupported branch between ISA modes\n"
-msgstr ""
-
-#: elfxx-mips.c:6438
+#: elfxx-mips.c:6444
msgid ""
"%X%H: Cannot convert branch between ISA modes to JALX: relocation out of "
"range\n"
msgstr ""
-#: elfxx-mips.c:7117 elfxx-mips.c:7351
+#: elfxx-mips.c:6456
+msgid "%X%H: Unsupported branch between ISA modes\n"
+msgstr ""
+
+#: elfxx-mips.c:7131 elfxx-mips.c:7365
#, c-format
msgid "%B: Warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:8116 elfxx-mips.c:8242
+#: elfxx-mips.c:8120 elfxx-mips.c:8246
#, c-format
msgid "%B: Warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8374
+#: elfxx-mips.c:8378
#, c-format
msgid "%B: Malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8450
+#: elfxx-mips.c:8454
#, c-format
msgid "%B: GOT reloc at 0x%lx not expected in executables"
msgstr ""
-#: elfxx-mips.c:8588
+#: elfxx-mips.c:8592
#, c-format
msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
msgstr ""
-#: elfxx-mips.c:9369
+#: elfxx-mips.c:9213
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr ""
-#: elfxx-mips.c:10280
+#: elfxx-mips.c:10135
#, c-format
msgid ""
"%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `"
"%A'"
msgstr ""
-#: elfxx-mips.c:10419
+#: elfxx-mips.c:10274
msgid ""
"small-data section exceeds 64KB; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10438
+#: elfxx-mips.c:10293
msgid "Cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10441
+#: elfxx-mips.c:10296
msgid "Jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10442
+#: elfxx-mips.c:10297
msgid "Jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10445
+#: elfxx-mips.c:10300
msgid "Cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10447
+#: elfxx-mips.c:10302
msgid "Branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10449
+#: elfxx-mips.c:10304
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:10823 elfxx-mips.c:11387
+#: elfxx-mips.c:10678 elfxx-mips.c:11246
#, c-format
msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:14295
+#: elfxx-mips.c:14157
#, c-format
msgid "%B: Unknown architecture %s"
msgstr ""
-#: elfxx-mips.c:14825
+#: elfxx-mips.c:14687
#, c-format
msgid "%s: illegal section name `%s'"
msgstr ""
-#: elfxx-mips.c:15103
+#: elfxx-mips.c:14965
msgid "%B: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15120
+#: elfxx-mips.c:14982
msgid "%B: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15152 elfxx-mips.c:15218 elfxx-mips.c:15233
+#: elfxx-mips.c:15014 elfxx-mips.c:15080 elfxx-mips.c:15095
#, c-format
msgid "%B: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15176
+#: elfxx-mips.c:15038
#, c-format
msgid "%B: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15201
+#: elfxx-mips.c:15063
#, c-format
msgid "%B: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15336
+#: elfxx-mips.c:15198
msgid ""
"Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown "
"floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15342
+#: elfxx-mips.c:15204
#, c-format
msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s"
msgstr ""
-#: elfxx-mips.c:15348
+#: elfxx-mips.c:15210
#, c-format
msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15362
+#: elfxx-mips.c:15224
#, c-format
msgid "Warning: %B uses %s (set by %B), %B uses %s"
msgstr ""
-#: elfxx-mips.c:15381
+#: elfxx-mips.c:15243
#, c-format
msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15393
+#: elfxx-mips.c:15255
#, c-format
msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s"
msgstr ""
-#: elfxx-mips.c:15402
+#: elfxx-mips.c:15264
#, c-format
msgid ""
"Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15465
+#: elfxx-mips.c:15327
msgid "%B: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15479
+#: elfxx-mips.c:15341
msgid "%B: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15531
+#: elfxx-mips.c:15393
msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15536
+#: elfxx-mips.c:15398
msgid ""
"%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15540
+#: elfxx-mips.c:15402
msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15547
+#: elfxx-mips.c:15409
msgid ""
"%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15551
+#: elfxx-mips.c:15413
msgid ""
"%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:15740
+#: elfxx-mips.c:15602
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:15788 elfxx-mips.c:15799
+#: elfxx-mips.c:15650 elfxx-mips.c:15661
msgid "None"
msgstr ""
-#: elfxx-mips.c:15790 elfxx-mips.c:15859
+#: elfxx-mips.c:15652 elfxx-mips.c:15721
msgid "Unknown"
msgstr ""
-#: elfxx-mips.c:15870
+#: elfxx-mips.c:15732
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: elfxx-mips.c:15873
+#: elfxx-mips.c:15735
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: elfxx-mips.c:15876
+#: elfxx-mips.c:15738
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: elfxx-mips.c:15879
+#: elfxx-mips.c:15741
#, c-format
msgid "Soft float\n"
msgstr ""
-#: elfxx-mips.c:15882
+#: elfxx-mips.c:15744
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:15885
+#: elfxx-mips.c:15747
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:15888
+#: elfxx-mips.c:15750
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:15891
+#: elfxx-mips.c:15753
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:15923
+#: elfxx-mips.c:15785
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:15925
+#: elfxx-mips.c:15787
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:15927
+#: elfxx-mips.c:15789
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:15929
+#: elfxx-mips.c:15791
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:15931
+#: elfxx-mips.c:15793
#, c-format
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:15933
+#: elfxx-mips.c:15795
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:15935
+#: elfxx-mips.c:15797
#, c-format
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:15937
+#: elfxx-mips.c:15799
#, c-format
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:15962
+#: elfxx-mips.c:15824
#, c-format
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:15982
+#: elfxx-mips.c:15844
#, c-format
msgid " [not 32bitmode]"
msgstr ""
@@ -5236,13 +5254,12 @@ msgstr ""
msgid "invalid relocation type %d"
msgstr ""
-#: elfxx-sparc.c:3153
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4975
+#: elfxx-sparc.c:3185 /work/sources/binutils/current/bfd/elfnn-aarch64.c:4988
#, c-format
msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
-#: elfxx-tilegx.c:4442
+#: elfxx-tilegx.c:4436
#, c-format
msgid "%B: Cannot link together %s and %s objects."
msgstr ""
@@ -5354,41 +5371,41 @@ msgstr ""
msgid "Deprecated %s called\n"
msgstr ""
-#: linker.c:1743
+#: linker.c:1670
#, c-format
msgid "%B: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:2612
+#: linker.c:2539
#, c-format
msgid "Attempt to do relocatable link with %s input and %s output"
msgstr ""
-#: linker.c:2898
+#: linker.c:2825
#, c-format
msgid "%B: ignoring duplicate section `%A'\n"
msgstr ""
-#: linker.c:2908 linker.c:2918
+#: linker.c:2835 linker.c:2845
#, c-format
msgid "%B: duplicate section `%A' has different size\n"
msgstr ""
-#: linker.c:2927 linker.c:2933
+#: linker.c:2854 linker.c:2860
#, c-format
msgid "%B: could not read contents of section `%A'\n"
msgstr ""
-#: linker.c:2938
+#: linker.c:2865
#, c-format
msgid "%B: duplicate section `%A' has different contents\n"
msgstr ""
-#: linker.c:3389
+#: linker.c:3316
msgid "%B: compiled for a big endian system and target is little endian"
msgstr ""
-#: linker.c:3392
+#: linker.c:3319
msgid "%B: compiled for a little endian system and target is big endian"
msgstr ""
@@ -5824,21 +5841,21 @@ msgstr ""
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
-#: reloc.c:7978
+#: reloc.c:8028
msgid "INPUT_SECTION_FLAGS are not supported.\n"
msgstr ""
-#: reloc.c:8076
+#: reloc.c:8126
#, c-format
msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n"
msgstr ""
-#: reloc.c:8152
+#: reloc.c:8202
#, c-format
msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n"
msgstr ""
-#: reloc.c:8161
+#: reloc.c:8211
#, c-format
msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"
msgstr ""
@@ -7922,57 +7939,57 @@ msgstr ""
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:1887
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:1890
#, c-format
msgid "Invalid AArch64 reloc number: %d"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2865
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2880
#, c-format
msgid "cannot create stub entry %s"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4764
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:4777
msgid "%B: error: Erratum 835769 stub out of range (input file too large)"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4845
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:4858
msgid "%B: error: Erratum 843419 stub out of range (input file too large)"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5313
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5326
#, c-format
msgid ""
"%B: relocation %s against external symbol `%s' can not be used when making a "
"shared object; recompile with -fPIC"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5381
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5450
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5394
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5463
#, c-format
msgid ""
"%B: Local symbol descriptor table be NULL when applying relocation %s "
"against local symbol"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6445
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6488
msgid "Too many GOT entries for -fpic, please recompile with -fPIC"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6473
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6516
msgid ""
"One possible cause of this error is that the symbol is being referenced in "
"the indicated code as if it had a larger alignment than was declared where "
"it was defined."
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2584
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2600
msgid ""
"%B: ABI is incompatible with that of the selected emulation:\n"
" target emulation `%s' does not match `%s'"
msgstr ""
-#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2604
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2620
msgid "%B: can't link hard-float modules with soft-float modules"
msgstr ""
diff --git a/bfd/targets.c b/bfd/targets.c
index 74559ac..5841e8d 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -893,6 +893,7 @@ extern const bfd_target vax_aout_nbsd_vec;
extern const bfd_target vax_elf32_vec;
extern const bfd_target visium_elf32_vec;
extern const bfd_target w65_coff_vec;
+extern const bfd_target wasm_vec;
extern const bfd_target wasm32_elf32_vec;
extern const bfd_target we32k_coff_vec;
extern const bfd_target x86_64_coff_vec;
@@ -1422,6 +1423,7 @@ static const bfd_target * const _bfd_target_vector[] =
&w65_coff_vec,
+ &wasm_vec,
&wasm32_elf32_vec,
&we32k_coff_vec,
diff --git a/bfd/wasm-module.c b/bfd/wasm-module.c
new file mode 100644
index 0000000..e2af184
--- /dev/null
+++ b/bfd/wasm-module.c
@@ -0,0 +1,839 @@
+/* BFD back-end for WebAssembly modules.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ Based on srec.c, mmo.c, and binary.c
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* The WebAssembly module format is a simple object file format
+ including up to 11 numbered sections, plus any number of named
+ "custom" sections. It is described at:
+ https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md. */
+
+#include "sysdep.h"
+#include "alloca-conf.h"
+#include "bfd.h"
+#include "sysdep.h"
+#include <limits.h>
+#include "bfd_stdint.h"
+#include "libiberty.h"
+#include "libbfd.h"
+#include "wasm-module.h"
+
+typedef struct
+{
+ asymbol * symbols;
+ bfd_size_type symcount;
+} tdata_type;
+
+static const char * const wasm_numbered_sections[] =
+{
+ NULL, /* Custom section, different layout. */
+ WASM_SECTION ( 1, "type"),
+ WASM_SECTION ( 2, "import"),
+ WASM_SECTION ( 3, "function"),
+ WASM_SECTION ( 4, "table"),
+ WASM_SECTION ( 5, "memory"),
+ WASM_SECTION ( 6, "global"),
+ WASM_SECTION ( 7, "export"),
+ WASM_SECTION ( 8, "start"),
+ WASM_SECTION ( 9, "element"),
+ WASM_SECTION (10, "code"),
+ WASM_SECTION (11, "data"),
+};
+
+#define WASM_NUMBERED_SECTIONS ARRAY_SIZE (wasm_numbered_sections)
+
+/* Resolve SECTION_CODE to a section name if there is one, NULL
+ otherwise. */
+
+static const char *
+wasm_section_code_to_name (bfd_byte section_code)
+{
+ if (section_code < WASM_NUMBERED_SECTIONS)
+ return wasm_numbered_sections[section_code];
+
+ return NULL;
+}
+
+/* Translate section name NAME to a section code, or 0 if it's a
+ custom name. */
+
+static unsigned int
+wasm_section_name_to_code (const char *name)
+{
+ unsigned i;
+
+ for (i = 1; i < WASM_NUMBERED_SECTIONS; i++)
+ if (strcmp (name, wasm_numbered_sections[i]) == 0)
+ return i;
+
+ return 0;
+}
+
+/* WebAssembly LEB128 integers are sufficiently like DWARF LEB128
+ integers that we use _bfd_safe_read_leb128, but there are two
+ points of difference:
+
+ - WebAssembly requires a 32-bit value to be encoded in at most 5
+ bytes, etc.
+ - _bfd_safe_read_leb128 accepts incomplete LEB128 encodings at the
+ end of the buffer, while these are invalid in WebAssembly.
+
+ Those differences mean that we will accept some files that are
+ invalid WebAssembly. */
+
+/* Read an LEB128-encoded integer from ABFD's I/O stream, reading one
+ byte at a time. Set ERROR_RETURN if no complete integer could be
+ read, LENGTH_RETURN to the number of bytes read (including bytes in
+ incomplete numbers). SIGN means interpret the number as SLEB128. */
+
+static bfd_vma
+wasm_read_leb128 (bfd * abfd,
+ bfd_boolean * error_return,
+ unsigned int * length_return,
+ bfd_boolean sign)
+{
+ bfd_vma result = 0;
+ unsigned int num_read = 0;
+ unsigned int shift = 0;
+ unsigned char byte = 0;
+ bfd_boolean success = FALSE;
+
+ while (bfd_bread (&byte, 1, abfd) == 1)
+ {
+ num_read++;
+
+ result |= ((bfd_vma) (byte & 0x7f)) << shift;
+
+ shift += 7;
+ if ((byte & 0x80) == 0)
+ {
+ success = TRUE;
+ break;
+ }
+ }
+
+ if (length_return != NULL)
+ *length_return = num_read;
+ if (error_return != NULL)
+ *error_return = ! success;
+
+ if (sign && (shift < 8 * sizeof (result)) && (byte & 0x40))
+ result |= -((bfd_vma) 1 << shift);
+
+ return result;
+}
+
+/* Encode an integer V as LEB128 and write it to ABFD, return TRUE on
+ success. */
+
+static bfd_boolean
+wasm_write_uleb128 (bfd *abfd, bfd_vma v)
+{
+ do
+ {
+ bfd_byte c = v & 0x7f;
+ v >>= 7;
+
+ if (v)
+ c |= 0x80;
+
+ if (bfd_bwrite (&c, 1, abfd) != 1)
+ return FALSE;
+ }
+ while (v);
+
+ return TRUE;
+}
+
+/* Read the LEB128 integer at P, saving it to X; at end of buffer,
+ jump to error_return. */
+#define READ_LEB128(x, p, end) \
+ do \
+ { \
+ unsigned int length_read; \
+ (x) = _bfd_safe_read_leb128 (abfd, (p), &length_read, \
+ FALSE, (end)); \
+ (p) += length_read; \
+ if (length_read == 0) \
+ goto error_return; \
+ } \
+ while (0)
+
+/* Verify the magic number at the beginning of a WebAssembly module
+ ABFD, setting ERRORPTR if there's a mismatch. */
+
+static bfd_boolean
+wasm_read_magic (bfd *abfd, bfd_boolean *errorptr)
+{
+ bfd_byte magic_const[SIZEOF_WASM_MAGIC] = WASM_MAGIC;
+ bfd_byte magic[SIZEOF_WASM_MAGIC];
+
+ if (bfd_bread (magic, sizeof (magic), abfd) == sizeof (magic)
+ && memcmp (magic, magic_const, sizeof (magic)) == 0)
+ return TRUE;
+
+ *errorptr = TRUE;
+ return FALSE;
+}
+
+/* Read the version number from ABFD, returning TRUE if it's a supported
+ version. Set ERRORPTR otherwise. */
+
+static bfd_boolean
+wasm_read_version (bfd *abfd, bfd_boolean *errorptr)
+{
+ bfd_byte vers_const[SIZEOF_WASM_VERSION] = WASM_VERSION;
+ bfd_byte vers[SIZEOF_WASM_VERSION];
+
+ if (bfd_bread (vers, sizeof (vers), abfd) == sizeof (vers)
+ /* Don't attempt to parse newer versions, which are likely to
+ require code changes. */
+ && memcmp (vers, vers_const, sizeof (vers)) == 0)
+ return TRUE;
+
+ *errorptr = TRUE;
+ return FALSE;
+}
+
+/* Read the WebAssembly header (magic number plus version number) from
+ ABFD, setting ERRORPTR to TRUE if there is a mismatch. */
+
+static bfd_boolean
+wasm_read_header (bfd *abfd, bfd_boolean *errorptr)
+{
+ if (! wasm_read_magic (abfd, errorptr))
+ return FALSE;
+
+ if (! wasm_read_version (abfd, errorptr))
+ return FALSE;
+
+ return TRUE;
+}
+
+/* Scan the "function" subsection of the "name" section ASECT in the
+ wasm module ABFD. Create symbols. Return TRUE on success. */
+
+static bfd_boolean
+wasm_scan_name_function_section (bfd *abfd, sec_ptr asect)
+{
+ bfd_byte *p;
+ bfd_byte *end;
+ bfd_vma payload_size;
+ bfd_vma symcount = 0;
+ tdata_type *tdata = abfd->tdata.any;
+ asymbol *symbols = NULL;
+ sec_ptr space_function_index;
+
+ if (! asect)
+ return FALSE;
+
+ if (strcmp (asect->name, WASM_NAME_SECTION) != 0)
+ return FALSE;
+
+ p = asect->contents;
+ end = asect->contents + asect->size;
+
+ if (! p)
+ return FALSE;
+
+ while (p < end)
+ {
+ bfd_byte subsection_code = *p++;
+ if (subsection_code == WASM_FUNCTION_SUBSECTION)
+ break;
+
+ /* subsection_code is documented to be a varuint7, meaning that
+ it has to be a single byte in the 0 - 127 range. If it isn't,
+ the spec must have changed underneath us, so give up. */
+ if (subsection_code & 0x80)
+ return FALSE;
+
+ READ_LEB128 (payload_size, p, end);
+
+ if (p > p + payload_size)
+ return FALSE;
+
+ p += payload_size;
+ }
+
+ if (p >= end)
+ return FALSE;
+
+ READ_LEB128 (payload_size, p, end);
+
+ if (p > p + payload_size)
+ return FALSE;
+
+ if (p + payload_size > end)
+ return FALSE;
+
+ end = p + payload_size;
+
+ READ_LEB128 (symcount, p, end);
+
+ /* Sanity check: each symbol has at least two bytes. */
+ if (symcount > payload_size/2)
+ return FALSE;
+
+ tdata->symcount = symcount;
+
+ space_function_index = bfd_make_section_with_flags
+ (abfd, WASM_SECTION_FUNCTION_INDEX, SEC_READONLY | SEC_CODE);
+
+ if (! space_function_index)
+ space_function_index = bfd_get_section_by_name (abfd, WASM_SECTION_FUNCTION_INDEX);
+
+ if (! space_function_index)
+ return FALSE;
+
+ symbols = bfd_zalloc (abfd, tdata->symcount * sizeof (asymbol));
+ if (! symbols)
+ return FALSE;
+
+ for (symcount = 0; p < end && symcount < tdata->symcount; symcount++)
+ {
+ bfd_vma index;
+ bfd_vma len;
+ char *name;
+ asymbol *sym;
+
+ READ_LEB128 (index, p, end);
+ READ_LEB128 (len, p, end);
+
+ if (p + len < p || p + len > end)
+ goto error_return;
+
+ name = bfd_zalloc (abfd, len + 1);
+ if (! name)
+ goto error_return;
+
+ memcpy (name, p, len);
+ p += len;
+
+ sym = &symbols[symcount];
+ sym->the_bfd = abfd;
+ sym->name = name;
+ sym->value = index;
+ sym->flags = BSF_GLOBAL | BSF_FUNCTION;
+ sym->section = space_function_index;
+ sym->udata.p = NULL;
+ }
+
+ if (symcount < tdata->symcount)
+ goto error_return;
+
+ tdata->symbols = symbols;
+ abfd->symcount = symcount;
+
+ return TRUE;
+
+ error_return:
+ while (symcount)
+ bfd_release (abfd, (void *)symbols[--symcount].name);
+ bfd_release (abfd, symbols);
+ return FALSE;
+}
+
+/* Read a byte from ABFD and return it, or EOF for EOF or error.
+ Set ERRORPTR on non-EOF error. */
+
+static int
+wasm_read_byte (bfd *abfd, bfd_boolean *errorptr)
+{
+ bfd_byte byte;
+
+ if (bfd_bread (&byte, (bfd_size_type) 1, abfd) != 1)
+ {
+ if (bfd_get_error () != bfd_error_file_truncated)
+ *errorptr = TRUE;
+ return EOF;
+ }
+
+ return byte;
+}
+
+/* Scan the wasm module ABFD, creating sections and symbols.
+ Return TRUE on success. */
+
+static bfd_boolean
+wasm_scan (bfd *abfd)
+{
+ bfd_boolean error = FALSE;
+ /* Fake VMAs for now. Choose 0x80000000 as base to avoid clashes
+ with actual data addresses. */
+ bfd_vma vma = 0x80000000;
+ int section_code;
+ unsigned int bytes_read;
+ char *name = NULL;
+ asection *bfdsec;
+
+ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
+ goto error_return;
+
+ if (! wasm_read_header (abfd, &error))
+ goto error_return;
+
+ while ((section_code = wasm_read_byte (abfd, &error)) != EOF)
+ {
+ if (section_code != 0)
+ {
+ const char *sname = wasm_section_code_to_name (section_code);
+
+ if (! sname)
+ goto error_return;
+
+ name = strdup (sname);
+ bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
+ if (bfdsec == NULL)
+ goto error_return;
+ name = NULL;
+
+ bfdsec->vma = vma;
+ bfdsec->lma = vma;
+ bfdsec->size = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+ if (error)
+ goto error_return;
+ bfdsec->filepos = bfd_tell (abfd);
+ bfdsec->alignment_power = 0;
+ }
+ else
+ {
+ bfd_vma payload_len;
+ file_ptr section_start;
+ bfd_vma namelen;
+ char *prefix = WASM_SECTION_PREFIX;
+ char *p;
+ int ret;
+
+ payload_len = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+ if (error)
+ goto error_return;
+ section_start = bfd_tell (abfd);
+ namelen = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+ if (error || namelen > payload_len)
+ goto error_return;
+ name = bfd_zmalloc (namelen + strlen (prefix) + 1);
+ if (! name)
+ goto error_return;
+ p = name;
+ ret = sprintf (p, "%s", prefix);
+ if (ret < 0 || (bfd_vma) ret != strlen (prefix))
+ goto error_return;
+ p += ret;
+ if (bfd_bread (p, namelen, abfd) != namelen)
+ goto error_return;
+
+ bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
+ if (bfdsec == NULL)
+ goto error_return;
+ name = NULL;
+
+ bfdsec->vma = vma;
+ bfdsec->lma = vma;
+ bfdsec->filepos = bfd_tell (abfd);
+ bfdsec->size = section_start + payload_len - bfdsec->filepos;
+ bfdsec->alignment_power = 0;
+ }
+
+ if (bfdsec->size != 0)
+ {
+ bfdsec->contents = bfd_zalloc (abfd, bfdsec->size);
+ if (! bfdsec->contents)
+ goto error_return;
+
+ if (bfd_bread (bfdsec->contents, bfdsec->size, abfd) != bfdsec->size)
+ goto error_return;
+ }
+
+ vma += bfdsec->size;
+ }
+
+ /* Make sure we're at actual EOF. There's no indication in the
+ WebAssembly format of how long the file is supposed to be. */
+ if (error)
+ goto error_return;
+
+ return TRUE;
+
+ error_return:
+ if (name)
+ free (name);
+
+ for (bfdsec = abfd->sections; bfdsec; bfdsec = bfdsec->next)
+ free ((void *) bfdsec->name);
+
+ return FALSE;
+}
+
+/* Put a numbered section ASECT of ABFD into the table of numbered
+ sections pointed to by FSARG. */
+
+static void
+wasm_register_section (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *asect,
+ void *fsarg)
+{
+ sec_ptr *numbered_sections = fsarg;
+ int index = wasm_section_name_to_code (asect->name);
+
+ if (index == 0)
+ return;
+
+ numbered_sections[index] = asect;
+}
+
+struct compute_section_arg
+{
+ bfd_vma pos;
+ bfd_boolean failed;
+};
+
+/* Compute the file position of ABFD's section ASECT. FSARG is a
+ pointer to the current file position.
+
+ We allow section names of the form .wasm.id to encode the numbered
+ section with ID id, if it exists; otherwise, a custom section with
+ ID "id" is produced. Arbitrary section names are for sections that
+ are assumed already to contain a section header; those are appended
+ to the WebAssembly module verbatim. */
+
+static void
+wasm_compute_custom_section_file_position (bfd *abfd,
+ sec_ptr asect,
+ void *fsarg)
+{
+ struct compute_section_arg *fs = fsarg;
+ int index;
+
+ if (fs->failed)
+ return;
+
+ index = wasm_section_name_to_code (asect->name);
+
+ if (index != 0)
+ return;
+
+ if (CONST_STRNEQ (asect->name, WASM_SECTION_PREFIX))
+ {
+ const char *name = asect->name + strlen (WASM_SECTION_PREFIX);
+ bfd_size_type payload_len = asect->size;
+ bfd_size_type name_len = strlen (name);
+ bfd_size_type nl = name_len;
+
+ payload_len += name_len;
+
+ do
+ {
+ payload_len++;
+ nl >>= 7;
+ }
+ while (nl);
+
+ bfd_seek (abfd, fs->pos, SEEK_SET);
+ if (! wasm_write_uleb128 (abfd, 0)
+ || ! wasm_write_uleb128 (abfd, payload_len)
+ || ! wasm_write_uleb128 (abfd, name_len)
+ || bfd_bwrite (name, name_len, abfd) != name_len)
+ goto error_return;
+ fs->pos = asect->filepos = bfd_tell (abfd);
+ }
+ else
+ {
+ asect->filepos = fs->pos;
+ }
+
+
+ fs->pos += asect->size;
+ return;
+
+ error_return:
+ fs->failed = TRUE;
+}
+
+/* Compute the file positions for the sections of ABFD. Currently,
+ this writes all numbered sections first, in order, then all custom
+ sections, in section order.
+
+ The spec says that the numbered sections must appear in order of
+ their ids, but custom sections can appear in any position and any
+ order, and more than once. FIXME: support that. */
+
+static bfd_boolean
+wasm_compute_section_file_positions (bfd *abfd)
+{
+ bfd_byte magic[SIZEOF_WASM_MAGIC] = WASM_MAGIC;
+ bfd_byte vers[SIZEOF_WASM_VERSION] = WASM_VERSION;
+ sec_ptr numbered_sections[WASM_NUMBERED_SECTIONS];
+ struct compute_section_arg fs;
+ unsigned int i;
+
+ bfd_seek (abfd, (bfd_vma) 0, SEEK_SET);
+
+ if (bfd_bwrite (magic, sizeof (magic), abfd) != (sizeof magic)
+ || bfd_bwrite (vers, sizeof (vers), abfd) != sizeof (vers))
+ return FALSE;
+
+ for (i = 0; i < WASM_NUMBERED_SECTIONS; i++)
+ numbered_sections[i] = NULL;
+
+ bfd_map_over_sections (abfd, wasm_register_section, numbered_sections);
+
+ fs.pos = bfd_tell (abfd);
+ for (i = 0; i < WASM_NUMBERED_SECTIONS; i++)
+ {
+ sec_ptr sec = numbered_sections[i];
+ bfd_size_type size;
+
+ if (! sec)
+ continue;
+ size = sec->size;
+ if (bfd_seek (abfd, fs.pos, SEEK_SET) != 0)
+ return FALSE;
+ if (! wasm_write_uleb128 (abfd, i)
+ || ! wasm_write_uleb128 (abfd, size))
+ return FALSE;
+ fs.pos = sec->filepos = bfd_tell (abfd);
+ fs.pos += size;
+ }
+
+ fs.failed = FALSE;
+
+ bfd_map_over_sections (abfd, wasm_compute_custom_section_file_position, &fs);
+
+ if (fs.failed)
+ return FALSE;
+
+ abfd->output_has_begun = TRUE;
+
+ return TRUE;
+}
+
+static bfd_boolean
+wasm_set_section_contents (bfd *abfd,
+ sec_ptr section,
+ const void *location,
+ file_ptr offset,
+ bfd_size_type count)
+{
+ if (count == 0)
+ return TRUE;
+
+ if (! abfd->output_has_begun
+ && ! wasm_compute_section_file_positions (abfd))
+ return FALSE;
+
+ if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
+ || bfd_bwrite (location, count, abfd) != count)
+ return FALSE;
+
+ return TRUE;
+}
+
+static bfd_boolean
+wasm_write_object_contents (bfd* abfd)
+{
+ bfd_byte magic[] = WASM_MAGIC;
+ bfd_byte vers[] = WASM_VERSION;
+
+ if (bfd_seek (abfd, 0, SEEK_SET) != 0)
+ return FALSE;
+
+ if (bfd_bwrite (magic, sizeof (magic), abfd) != sizeof (magic)
+ || bfd_bwrite (vers, sizeof (vers), abfd) != sizeof (vers))
+ return FALSE;
+
+ return TRUE;
+}
+
+static bfd_boolean
+wasm_mkobject (bfd *abfd)
+{
+ tdata_type *tdata = (tdata_type *) bfd_alloc (abfd, sizeof (tdata_type));
+
+ if (! tdata)
+ return FALSE;
+
+ tdata->symbols = NULL;
+ tdata->symcount = 0;
+
+ abfd->tdata.any = tdata;
+
+ return TRUE;
+}
+
+static long
+wasm_get_symtab_upper_bound (bfd *abfd)
+{
+ tdata_type *tdata = abfd->tdata.any;
+
+ return (tdata->symcount + 1) * (sizeof (asymbol *));
+}
+
+static long
+wasm_canonicalize_symtab (bfd *abfd, asymbol **alocation)
+{
+ tdata_type *tdata = abfd->tdata.any;
+ size_t i;
+
+ for (i = 0; i < tdata->symcount; i++)
+ alocation[i] = &tdata->symbols[i];
+ alocation[i] = NULL;
+
+ return tdata->symcount;
+}
+
+static asymbol *
+wasm_make_empty_symbol (bfd *abfd)
+{
+ bfd_size_type amt = sizeof (asymbol);
+ asymbol *new_symbol = (asymbol *) bfd_zalloc (abfd, amt);
+
+ if (! new_symbol)
+ return NULL;
+ new_symbol->the_bfd = abfd;
+ return new_symbol;
+}
+
+static void
+wasm_print_symbol (bfd *abfd,
+ void * filep,
+ asymbol *symbol,
+ bfd_print_symbol_type how)
+{
+ FILE *file = (FILE *) filep;
+
+ switch (how)
+ {
+ case bfd_print_symbol_name:
+ fprintf (file, "%s", symbol->name);
+ break;
+
+ default:
+ bfd_print_symbol_vandf (abfd, filep, symbol);
+ fprintf (file, " %-5s %s", symbol->section->name, symbol->name);
+ }
+}
+
+static void
+wasm_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED,
+ asymbol *symbol,
+ symbol_info *ret)
+{
+ bfd_symbol_info (symbol, ret);
+}
+
+/* Check whether ABFD is a WebAssembly module; if so, scan it. */
+
+static const bfd_target *
+wasm_object_p (bfd *abfd)
+{
+ bfd_boolean error;
+
+ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
+ return NULL;
+
+ if (! wasm_read_header (abfd, &error))
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ if (! wasm_mkobject (abfd) || ! wasm_scan (abfd))
+ return NULL;
+
+ if (! bfd_default_set_arch_mach (abfd, bfd_arch_wasm32, 0))
+ return NULL;
+
+ if (wasm_scan_name_function_section (abfd, bfd_get_section_by_name (abfd, WASM_NAME_SECTION)))
+ abfd->flags |= HAS_SYMS;
+
+ return abfd->xvec;
+}
+
+/* BFD_JUMP_TABLE_WRITE */
+#define wasm_set_arch_mach _bfd_generic_set_arch_mach
+
+/* BFD_JUMP_TABLE_SYMBOLS */
+#define wasm_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string
+#define wasm_bfd_is_local_label_name bfd_generic_is_local_label_name
+#define wasm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define wasm_get_lineno _bfd_nosymbols_get_lineno
+#define wasm_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define wasm_find_line _bfd_nosymbols_find_line
+#define wasm_find_inliner_info _bfd_nosymbols_find_inliner_info
+#define wasm_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
+#define wasm_read_minisymbols _bfd_generic_read_minisymbols
+#define wasm_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
+
+const bfd_target wasm_vec =
+{
+ "wasm", /* Name. */
+ bfd_target_unknown_flavour,
+ BFD_ENDIAN_LITTLE,
+ BFD_ENDIAN_LITTLE,
+ (HAS_SYMS | WP_TEXT), /* Object flags. */
+ (SEC_CODE | SEC_DATA | SEC_HAS_CONTENTS), /* Section flags. */
+ 0, /* Leading underscore. */
+ ' ', /* AR_pad_char. */
+ 255, /* AR_max_namelen. */
+ 0, /* Match priority. */
+ /* Routines to byte-swap various sized integers from the data sections. */
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16,
+
+ /* Routines to byte-swap various sized integers from the file headers. */
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16,
+
+ {
+ _bfd_dummy_target,
+ wasm_object_p, /* bfd_check_format. */
+ _bfd_dummy_target,
+ _bfd_dummy_target,
+ },
+ {
+ bfd_false,
+ wasm_mkobject,
+ _bfd_generic_mkarchive,
+ bfd_false,
+ },
+ { /* bfd_write_contents. */
+ bfd_false,
+ wasm_write_object_contents,
+ _bfd_write_archive_contents,
+ bfd_false,
+ },
+
+ BFD_JUMP_TABLE_GENERIC (_bfd_generic),
+ BFD_JUMP_TABLE_COPY (_bfd_generic),
+ BFD_JUMP_TABLE_CORE (_bfd_nocore),
+ BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
+ BFD_JUMP_TABLE_SYMBOLS (wasm),
+ BFD_JUMP_TABLE_RELOCS (_bfd_norelocs),
+ BFD_JUMP_TABLE_WRITE (wasm),
+ BFD_JUMP_TABLE_LINK (_bfd_nolink),
+ BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+
+ NULL,
+
+ NULL,
+};
diff --git a/bfd/wasm-module.h b/bfd/wasm-module.h
new file mode 100644
index 0000000..a6fd557
--- /dev/null
+++ b/bfd/wasm-module.h
@@ -0,0 +1,52 @@
+/* BFD back-end for WebAssembly modules.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _WASM_MODULE_H
+#define _WASM_MODULE_H
+
+/* WebAssembly module file header. Note that WASM_VERSION is a 32-bit
+ little-endian integer, not an LEB128-encoded integer. */
+#define SIZEOF_WASM_MAGIC 4
+#define WASM_MAGIC { 0x00, 'a', 's', 'm' }
+#define SIZEOF_WASM_VERSION 4
+#define WASM_VERSION { 0x01, 0x00, 0x00, 0x00 }
+
+/* Prefix to use to form section names. */
+#define WASM_SECTION_PREFIX ".wasm."
+
+/* NUMBER is currently unused, but is included for error checking purposes. */
+#define WASM_SECTION(number, name) (WASM_SECTION_PREFIX name)
+
+/* Section names. WASM_NAME_SECTION is the name of the named section
+ named "name". */
+#define WASM_NAME_SECTION WASM_SECTION (0, "name")
+#define WASM_RELOC_SECTION_PREFIX WASM_SECTION (0, "reloc.")
+#define WASM_LINKING_SECTION WASM_SECTION (0, "linking")
+#define WASM_DYLINK_SECTION WASM_SECTION (0, "dylink")
+
+/* Subsection indices. Right now, that's subsections of the "name"
+ section only. */
+#define WASM_FUNCTION_SUBSECTION 1 /* Function names. */
+#define WASM_LOCALS_SUBSECTION 2 /* Names of locals by function. */
+
+/* The section to report wasm symbols in. */
+#define WASM_SECTION_FUNCTION_INDEX ".space.function_index"
+
+#endif /* _WASM_MODULE_H */