[binutils-gdb] Add a plugin for processing static library dependencies.
Nick Clifton
nickc@sourceware.org
Mon Dec 14 14:26:38 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bf6d80378274fa33001f2ca1cef084eabc904178
commit bf6d80378274fa33001f2ca1cef084eabc904178
Author: Howard Chu <hyc@symas.com>
Date: Mon Dec 14 14:26:11 2020 +0000
Add a plugin for processing static library dependencies.
* libdep_plugin.c: New file: Processes archives that contain a
special library dependencies element.
* Makefile.am: Add build rules for libdep_plugin.
* Makefile.in: Regenerate.
* NEWS: Mention the new plugin.
* ld.texi: Document the new plugin.
Diff:
---
ld/ChangeLog | 9 +
ld/Makefile.am | 5 +
ld/Makefile.in | 158 ++-
ld/NEWS | 3 +
ld/ld.texi | 53 +
ld/libdep_plugin.c | 366 ++++++
ld/po/ld.pot | 3112 +++++++++++++++++++++++++++-------------------------
7 files changed, 2181 insertions(+), 1525 deletions(-)
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 8792daf9c19..b649e6870b4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2020-12-14 Howard Chu <hyc@symas.com>
+
+ * libdep_plugin.c: New file: Processes archives that contain a
+ special library dependencies element.
+ * Makefile.am: Add build rules for libdep_plugin.
+ * Makefile.in: Regenerate.
+ * NEWS: Mention the new plugin.
+ * ld.texi: Document the new plugin.
+
2020-12-14 Alan Modra <amodra@gmail.com>
PR 26836
diff --git a/ld/Makefile.am b/ld/Makefile.am
index c9f85e52923..2f59ee61697 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -998,6 +998,11 @@ libldtestplug4_la_SOURCES = testplug4.c
libldtestplug4_la_CFLAGS= -g -O2
libldtestplug4_la_LDFLAGS = -no-undefined -rpath /nowhere
+bfdplugindir = $(libdir)/bfd-plugins
+bfdplugin_LTLIBRARIES = libdep.la
+libdep_la_SOURCES = libdep_plugin.c
+libdep_la_LDFLAGS = -no-undefined -rpath /nowhere
+
# DOCUMENTATION TARGETS
# Manual configuration file; not usually attached to normal configuration,
# because almost all configs use "gen" version of manual.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index e5eea3886ca..c744701e0e4 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -137,14 +137,49 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = po/Makefile.in
CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libldtestplug_la_LIBADD =
-am_libldtestplug_la_OBJECTS = libldtestplug_la-testplug.lo
-libldtestplug_la_OBJECTS = $(am_libldtestplug_la_OBJECTS)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bfdplugindir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
+LTLIBRARIES = $(bfdplugin_LTLIBRARIES) $(noinst_LTLIBRARIES)
+libdep_la_LIBADD =
+am_libdep_la_OBJECTS = libdep_plugin.lo
+libdep_la_OBJECTS = $(am_libdep_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+libdep_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libdep_la_LDFLAGS) $(LDFLAGS) -o $@
+libldtestplug_la_LIBADD =
+am_libldtestplug_la_OBJECTS = libldtestplug_la-testplug.lo
+libldtestplug_la_OBJECTS = $(am_libldtestplug_la_OBJECTS)
libldtestplug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libldtestplug_la_CFLAGS) $(CFLAGS) \
@@ -170,8 +205,6 @@ libldtestplug4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libldtestplug4_la_CFLAGS) $(CFLAGS) \
$(libldtestplug4_la_LDFLAGS) $(LDFLAGS) -o $@
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \
- "$(DESTDIR)$(man1dir)"
PROGRAMS = $(bin_PROGRAMS)
am_ld_new_OBJECTS = ldgram.$(OBJEXT) ldlex-wrapper.$(OBJEXT) \
lexsup.$(OBJEXT) ldlang.$(OBJEXT) mri.$(OBJEXT) \
@@ -235,9 +268,10 @@ AM_V_YACC = $(am__v_YACC_@AM_V@)
am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)
am__v_YACC_0 = @echo " YACC " $@;
am__v_YACC_1 =
-SOURCES = $(libldtestplug_la_SOURCES) $(libldtestplug2_la_SOURCES) \
- $(libldtestplug3_la_SOURCES) $(libldtestplug4_la_SOURCES) \
- $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
+SOURCES = $(libdep_la_SOURCES) $(libldtestplug_la_SOURCES) \
+ $(libldtestplug2_la_SOURCES) $(libldtestplug3_la_SOURCES) \
+ $(libldtestplug4_la_SOURCES) $(ld_new_SOURCES) \
+ $(EXTRA_ld_new_SOURCES)
AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@)
am__v_DVIPS_0 = @echo " DVIPS " $@;
@@ -290,33 +324,6 @@ am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
@@ -1013,6 +1020,10 @@ libldtestplug3_la_LDFLAGS = -no-undefined -rpath /nowhere
libldtestplug4_la_SOURCES = testplug4.c
libldtestplug4_la_CFLAGS = -g -O2
libldtestplug4_la_LDFLAGS = -no-undefined -rpath /nowhere
+bfdplugindir = $(libdir)/bfd-plugins
+bfdplugin_LTLIBRARIES = libdep.la
+libdep_la_SOURCES = libdep_plugin.c
+libdep_la_LDFLAGS = -no-undefined -rpath /nowhere
MAINTAINERCLEANFILES = configdoc.texi ld.1 ld.info
# We want to reconfigure if configure.host or configure.tgt changes.
@@ -1088,6 +1099,41 @@ distclean-hdr:
po/Makefile.in: $(top_builddir)/config.status $(top_srcdir)/po/Make-in
cd $(top_builddir) && $(SHELL) ./config.status $@
+install-bfdpluginLTLIBRARIES: $(bfdplugin_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(bfdplugin_LTLIBRARIES)'; test -n "$(bfdplugindir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bfdplugindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bfdplugindir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(bfdplugindir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(bfdplugindir)"; \
+ }
+
+uninstall-bfdpluginLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bfdplugin_LTLIBRARIES)'; test -n "$(bfdplugindir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(bfdplugindir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(bfdplugindir)/$$f"; \
+ done
+
+clean-bfdpluginLTLIBRARIES:
+ -test -z "$(bfdplugin_LTLIBRARIES)" || rm -f $(bfdplugin_LTLIBRARIES)
+ @list='$(bfdplugin_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@list='$(noinst_LTLIBRARIES)'; \
@@ -1099,6 +1145,9 @@ clean-noinstLTLIBRARIES:
rm -f $${locs}; \
}
+libdep.la: $(libdep_la_OBJECTS) $(libdep_la_DEPENDENCIES) $(EXTRA_libdep_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libdep_la_LINK) -rpath $(bfdplugindir) $(libdep_la_OBJECTS) $(libdep_la_LIBADD) $(LIBS)
+
libldtestplug.la: $(libldtestplug_la_OBJECTS) $(libldtestplug_la_DEPENDENCIES) $(EXTRA_libldtestplug_la_DEPENDENCIES)
$(AM_V_CCLD)$(libldtestplug_la_LINK) $(libldtestplug_la_OBJECTS) $(libldtestplug_la_LIBADD) $(LIBS)
@@ -1492,6 +1541,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldwrite.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexsup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdep_plugin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libldtestplug2_la-testplug2.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libldtestplug3_la-testplug3.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libldtestplug4_la-testplug4.Plo@am__quote@
@@ -1886,7 +1936,7 @@ all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(PROGRAMS) $(MANS) \
config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
+ for dir in "$(DESTDIR)$(bfdplugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -1932,8 +1982,9 @@ maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-recursive
-clean-am: clean-aminfo clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstLTLIBRARIES mostlyclean-am
+clean-am: clean-aminfo clean-bfdpluginLTLIBRARIES clean-binPROGRAMS \
+ clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -1955,7 +2006,8 @@ info: info-recursive
info-am: $(INFO_DEPS)
-install-data-am: install-data-local install-info-am install-man
+install-data-am: install-bfdpluginLTLIBRARIES install-data-local \
+ install-info-am install-man
install-dvi: install-dvi-recursive
@@ -2095,9 +2147,9 @@ ps: ps-recursive
ps-am: $(PSS)
-uninstall-am: uninstall-binPROGRAMS uninstall-dvi-am uninstall-html-am \
- uninstall-info-am uninstall-man uninstall-pdf-am \
- uninstall-ps-am
+uninstall-am: uninstall-bfdpluginLTLIBRARIES uninstall-binPROGRAMS \
+ uninstall-dvi-am uninstall-html-am uninstall-info-am \
+ uninstall-man uninstall-pdf-am uninstall-ps-am
uninstall-man: uninstall-man1
@@ -2106,12 +2158,13 @@ uninstall-man: uninstall-man1
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-DEJAGNU check-am clean clean-aminfo \
- clean-binPROGRAMS clean-cscope clean-generic clean-libtool \
- clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \
- dist-info distclean distclean-DEJAGNU distclean-compile \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-local distclean-tags dvi dvi-am html html-am info \
- info-am install install-am install-binPROGRAMS install-data \
+ clean-bfdpluginLTLIBRARIES clean-binPROGRAMS clean-cscope \
+ clean-generic clean-libtool clean-noinstLTLIBRARIES cscope \
+ cscopelist-am ctags ctags-am dist-info distclean \
+ distclean-DEJAGNU distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-local distclean-tags \
+ dvi dvi-am html html-am info info-am install install-am \
+ install-bfdpluginLTLIBRARIES install-binPROGRAMS install-data \
install-data-am install-data-local install-dvi install-dvi-am \
install-exec install-exec-am install-exec-local install-html \
install-html-am install-info install-info-am install-man \
@@ -2121,9 +2174,10 @@ uninstall-man: uninstall-man1
maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
- tags-am uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-dvi-am uninstall-html-am uninstall-info-am \
- uninstall-man uninstall-man1 uninstall-pdf-am uninstall-ps-am
+ tags-am uninstall uninstall-am uninstall-bfdpluginLTLIBRARIES \
+ uninstall-binPROGRAMS uninstall-dvi-am uninstall-html-am \
+ uninstall-info-am uninstall-man uninstall-man1 \
+ uninstall-pdf-am uninstall-ps-am
.PRECIOUS: Makefile
diff --git a/ld/NEWS b/ld/NEWS
index 607030bddd9..1c3f9c156e4 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,8 @@
-*- text -*-
+* Add libdep plugin, for linking dependencies of static libraries that
+ were recorded by ar in the __.LIBDEP archive member.
+
* Add --error-handling-script=<NAME> command line option to allow a helper
script to be invoked when an undefined symbol or a missing library is
encountered. This option can be suppressed via the configure time
diff --git a/ld/ld.texi b/ld/ld.texi
index 8e3c7da145e..51c51a3ec1f 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -126,6 +126,7 @@ in the section entitled ``GNU Free Documentation License''.
* Overview:: Overview
* Invocation:: Invocation
* Scripts:: Linker Scripts
+* Plugins:: Linker Plugins
@ifset GENERIC
* Machine Dependent:: Machine Dependent Features
@end ifset
@@ -6954,6 +6955,58 @@ Any input files read because of an implicit linker script will be read
at the position in the command line where the implicit linker script was
read. This can affect archive searching.
+@node Plugins
+@chapter Linker Plugins
+
+@cindex plugins
+@cindex linker plugins
+The linker can use dynamically loaded plugins to modify its behavior.
+For example, the link-time optimization feature that some compilers
+support is implemented with a linker plugin.
+
+Currently there is only one plugin shipped by default, but more may
+be added here later.
+
+@menu
+* libdep Plugin:: Static Library Dependencies Plugin
+@end menu
+
+@node libdep Plugin
+@section Static Library Dependencies Plugin
+@cindex static library dependencies
+Originally, static libraries were contained in an archive file consisting
+just of a collection of relocatable object files. Later they evolved to
+optionally include a symbol table, to assist in finding the needed objects
+within a library. There their evolution ended, and dynamic libraries
+rose to ascendance.
+
+One useful feature of dynamic libraries was that, more than just collecting
+multiple objects into a single file, they also included a list of their
+dependencies, such that one could specify just the name of a single dynamic
+library at link time, and all of its dependencies would be implicitly
+referenced as well. But static libraries lacked this feature, so if a
+link invocation was switched from using dynamic libraries to static
+libraries, the link command would usually fail unless it was rewritten to
+explicitly list the dependencies of the static library.
+
+The GNU @command{ar} utility now supports a @option{--record-libdeps} option
+to embed dependency lists into static libraries as well, and the @file{libdep}
+plugin may be used to read this dependency information at link time. The
+dependency information is stored as a single string, carrying @option{-l}
+and @option{-L} arguments as they would normally appear in a linker
+command line. As such, the information can be written with any text
+utility and stored into any archive, even if GNU @command{ar} is not
+being used to create the archive. The information is stored in an
+archive member named @samp{__.LIBDEP}.
+
+For example, given a library @file{libssl.a} that depends on another
+library @file{libcrypto.a} which may be found in @file{/usr/local/lib},
+the @samp{__.LIBDEP} member of @file{libssl.a} would contain
+
+@smallexample
+-L/usr/local/lib -lcrypto
+@end smallexample
+
@ifset GENERIC
@node Machine Dependent
@chapter Machine Dependent Features
diff --git a/ld/libdep_plugin.c b/ld/libdep_plugin.c
new file mode 100644
index 00000000000..2a7fdc4d0bf
--- /dev/null
+++ b/ld/libdep_plugin.c
@@ -0,0 +1,366 @@
+/* libdeps plugin for the GNU linker.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+
+ This file is part of the GNU Binutils.
+
+ 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. */
+
+#include "sysdep.h"
+#include "bfd.h"
+#if BFD_SUPPORTS_PLUGINS
+#include "plugin-api.h"
+
+#include <ctype.h> /* For isspace. */
+
+extern enum ld_plugin_status onload (struct ld_plugin_tv *tv);
+
+/* Helper for calling plugin api message function. */
+#define TV_MESSAGE if (tv_message) (*tv_message)
+
+/* Function pointers to cache hooks passed at onload time. */
+static ld_plugin_register_claim_file tv_register_claim_file = 0;
+static ld_plugin_register_all_symbols_read tv_register_all_symbols_read = 0;
+static ld_plugin_register_cleanup tv_register_cleanup = 0;
+static ld_plugin_message tv_message = 0;
+static ld_plugin_add_input_library tv_add_input_library = 0;
+static ld_plugin_set_extra_library_path tv_set_extra_library_path = 0;
+
+/* Handle/record information received in a transfer vector entry. */
+static enum ld_plugin_status
+parse_tv_tag (struct ld_plugin_tv *tv)
+{
+#define SETVAR(x) x = tv->tv_u.x
+ switch (tv->tv_tag)
+ {
+ case LDPT_REGISTER_CLAIM_FILE_HOOK:
+ SETVAR(tv_register_claim_file);
+ break;
+ case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:
+ SETVAR(tv_register_all_symbols_read);
+ break;
+ case LDPT_REGISTER_CLEANUP_HOOK:
+ SETVAR(tv_register_cleanup);
+ break;
+ case LDPT_MESSAGE:
+ SETVAR(tv_message);
+ break;
+ case LDPT_ADD_INPUT_LIBRARY:
+ SETVAR(tv_add_input_library);
+ break;
+ case LDPT_SET_EXTRA_LIBRARY_PATH:
+ SETVAR(tv_set_extra_library_path);
+ break;
+ default:
+ break;
+ }
+#undef SETVAR
+ return LDPS_OK;
+}
+
+/* Defs for archive parsing. */
+#define ARMAGSIZE 8
+typedef struct arhdr
+{
+ char ar_name[16];
+ char ar_date[12];
+ char ar_uid[6];
+ char ar_gid[6];
+ char ar_mode[8];
+ char ar_size[10];
+ char ar_fmag[2];
+} arhdr;
+
+typedef struct linerec
+{
+ struct linerec *next;
+ char line[];
+} linerec;
+
+#define LIBDEPS "__.LIBDEP/ "
+
+static linerec *line_head, **line_tail = &line_head;
+
+static enum ld_plugin_status
+get_libdeps (int fd)
+{
+ arhdr ah;
+ int len;
+ unsigned long mlen;
+ linerec *lr;
+ enum ld_plugin_status rc = LDPS_NO_SYMS;
+
+ lseek (fd, ARMAGSIZE, SEEK_SET);
+ for (;;)
+ {
+ len = read (fd, (void *) &ah, sizeof (ah));
+ if (len != sizeof (ah))
+ break;
+ mlen = strtoul (ah.ar_size, NULL, 10);
+ if (!mlen || strncmp (ah.ar_name, LIBDEPS, sizeof (LIBDEPS)-1))
+ {
+ lseek (fd, mlen, SEEK_CUR);
+ continue;
+ }
+ lr = malloc (sizeof (linerec) + mlen);
+ if (!lr)
+ return LDPS_ERR;
+ lr->next = NULL;
+ len = read (fd, lr->line, mlen);
+ lr->line[mlen-1] = '\0';
+ *line_tail = lr;
+ line_tail = &lr->next;
+ rc = LDPS_OK;
+ break;
+ }
+ return rc;
+}
+
+/* Turn a string into an argvec. */
+static char **
+str2vec (char *in)
+{
+ char **res;
+ char *s, *first, *end;
+ char *sq, *dq;
+ int i;
+
+ end = in + strlen (in);
+ s = in;
+ while (isspace (*s)) s++;
+ first = s;
+
+ i = 1;
+ while ((s = strchr (s, ' ')))
+ {
+ s++;
+ i++;
+ }
+ res = (char **)malloc ((i+1) * sizeof (char *));
+ if (!res)
+ return res;
+
+ i = 0;
+ sq = NULL;
+ dq = NULL;
+ res[0] = first;
+ for (s = first; *s; s++)
+ {
+ if (*s == '\\')
+ {
+ memmove (s, s+1, end-s-1);
+ end--;
+ }
+ if (isspace (*s))
+ {
+ if (sq || dq)
+ continue;
+ *s++ = '\0';
+ while (isspace (*s)) s++;
+ if (*s)
+ res[++i] = s;
+ }
+ if (*s == '\'' && !dq)
+ {
+ if (sq)
+ {
+ memmove (sq, sq+1, s-sq-1);
+ memmove (s-2, s+1, end-s-1);
+ end -= 2;
+ s--;
+ sq = NULL;
+ }
+ else
+ {
+ sq = s;
+ }
+ }
+ if (*s == '"' && !sq)
+ {
+ if (dq)
+ {
+ memmove (dq, dq+1, s-dq-1);
+ memmove (s-2, s+1, end-s-1);
+ end -= 2;
+ s--;
+ dq = NULL;
+ }
+ else
+ {
+ dq = s;
+ }
+ }
+ }
+ res[++i] = NULL;
+ return res;
+}
+
+static char *prevfile;
+
+/* Standard plugin API registerable hook. */
+static enum ld_plugin_status
+onclaim_file (const struct ld_plugin_input_file *file, int *claimed)
+{
+ enum ld_plugin_status rv;
+
+ *claimed = 0;
+
+ /* If we've already seen this file, ignore it. */
+ if (prevfile && !strcmp (file->name, prevfile))
+ return LDPS_OK;
+
+ /* If it's not an archive member, ignore it. */
+ if (!file->offset)
+ return LDPS_OK;
+
+ if (prevfile)
+ free (prevfile);
+
+ prevfile = strdup (file->name);
+ if (!prevfile)
+ return LDPS_ERR;
+
+ /* This hook only gets called on actual object files.
+ * We have to examine the archive ourselves, to find
+ * our LIBDEPS member. */
+ rv = get_libdeps (file->fd);
+ if (rv == LDPS_ERR)
+ return rv;
+
+ if (rv == LDPS_OK)
+ {
+ linerec *lr = (linerec *)line_tail;
+ /* Inform the user/testsuite. */
+ TV_MESSAGE (LDPL_INFO, "got deps for library %s: %s",
+ file->name, lr->line);
+ fflush (NULL);
+ }
+
+ return LDPS_OK;
+}
+
+/* Standard plugin API registerable hook. */
+static enum ld_plugin_status
+onall_symbols_read (void)
+{
+ linerec *lr;
+ char **vec;
+ enum ld_plugin_status rv = LDPS_OK;
+
+ while ((lr = line_head))
+ {
+ line_head = lr->next;
+ vec = str2vec (lr->line);
+ if (vec)
+ {
+ int i;
+ for (i = 0; vec[i]; i++)
+ {
+ if (vec[i][0] != '-')
+ {
+ TV_MESSAGE (LDPL_WARNING, "ignoring libdep argument %s",
+ vec[i]);
+ fflush (NULL);
+ continue;
+ }
+ if (vec[i][1] == 'l')
+ rv = tv_add_input_library (vec[i]+2);
+ else if (vec[i][1] == 'L')
+ rv = tv_set_extra_library_path (vec[i]+2);
+ else
+ {
+ TV_MESSAGE (LDPL_WARNING, "ignoring libdep argument %s",
+ vec[i]);
+ fflush (NULL);
+ }
+ if (rv != LDPS_OK)
+ break;
+ }
+ free (vec);
+ }
+ free (lr);
+ }
+ line_tail = NULL;
+ return rv;
+}
+
+/* Standard plugin API registerable hook. */
+static enum ld_plugin_status
+oncleanup (void)
+{
+ if (prevfile)
+ {
+ free (prevfile);
+ prevfile = NULL;
+ }
+ if (line_head)
+ {
+ linerec *lr;
+ while ((lr = line_head))
+ {
+ line_head = lr->next;
+ free (lr);
+ }
+ line_tail = NULL;
+ }
+ return LDPS_OK;
+}
+
+/* Standard plugin API entry point. */
+enum ld_plugin_status
+onload (struct ld_plugin_tv *tv)
+{
+ enum ld_plugin_status rv;
+
+ /* This plugin requires a valid tv array. */
+ if (!tv)
+ return LDPS_ERR;
+
+ /* First entry should always be LDPT_MESSAGE, letting us get
+ hold of it easily so we can send output straight away. */
+ if (tv[0].tv_tag == LDPT_MESSAGE)
+ tv_message = tv[0].tv_u.tv_message;
+
+ do
+ if ((rv = parse_tv_tag (tv)) != LDPS_OK)
+ return rv;
+ while ((tv++)->tv_tag != LDPT_NULL);
+
+ /* Register hooks. */
+ if (!tv_register_claim_file)
+ {
+ TV_MESSAGE (LDPL_FATAL, "No register_claim_file hook");
+ fflush (NULL);
+ return LDPS_ERR;
+ }
+ (*tv_register_claim_file) (onclaim_file);
+ if (!tv_register_all_symbols_read)
+ {
+ TV_MESSAGE (LDPL_FATAL, "No register_all_symbols_read hook");
+ fflush (NULL);
+ return LDPS_ERR;
+ }
+ (*tv_register_all_symbols_read) (onall_symbols_read);
+ if (!tv_register_cleanup)
+ {
+ TV_MESSAGE (LDPL_FATAL, "No register_cleanup hook");
+ fflush (NULL);
+ return LDPS_ERR;
+ }
+ (*tv_register_cleanup) (oncleanup);
+ fflush (NULL);
+ return LDPS_OK;
+}
+#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index 1561a3d4ee6..c619dffb23c 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.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: 2020-07-06 10:52+0100\n"
+"POT-Creation-Date: 2020-12-14 14:16+0000\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"
@@ -56,16 +56,15 @@ msgstr ""
msgid "%P: symbol `%pT' missing from main hash table\n"
msgstr ""
-#: ldcref.c:518 ldcref.c:629 ldmain.c:1293 ldmisc.c:335 pe-dll.c:736
-#: pe-dll.c:1314 pe-dll.c:1435 pe-dll.c:1558 earm_wince_pe.c:1437
-#: earm_wince_pe.c:1644 earmpe.c:1437 earmpe.c:1644 ei386pe.c:1437
-#: ei386pe.c:1644 ei386pe_posix.c:1437 ei386pe_posix.c:1644 ei386pep.c:1422
-#: emcorepe.c:1437 emcorepe.c:1644 eppcpe.c:1437 eppcpe.c:1644 eshpe.c:1437
-#: eshpe.c:1644
+#: ldcref.c:518 ldcref.c:629 ldmain.c:1295 ldmisc.c:336 pe-dll.c:737
+#: pe-dll.c:1315 pe-dll.c:1436 pe-dll.c:1562 earm_wince_pe.c:1486
+#: earm_wince_pe.c:1693 earmpe.c:1486 earmpe.c:1693 ei386pe.c:1486
+#: ei386pe.c:1693 ei386pe_posix.c:1486 ei386pe_posix.c:1693 ei386pep.c:1475
+#: emcorepe.c:1486 emcorepe.c:1693 eshpe.c:1486 eshpe.c:1693
msgid "%F%P: %pB: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:691 ldcref.c:698 ldmain.c:1355 ldmain.c:1362
+#: ldcref.c:691 ldcref.c:698 ldmain.c:1357 ldmain.c:1364
msgid "%F%P: %pB: could not read relocs: %E\n"
msgstr ""
@@ -138,7 +137,7 @@ msgstr ""
msgid "found %s at %s\n"
msgstr ""
-#: ldelf.c:385 ldlang.c:3146 ldlang.c:3160
+#: ldelf.c:385 ldlang.c:3143 ldlang.c:3157
msgid "%F%P: %pB: error adding symbols: %E\n"
msgstr ""
@@ -154,88 +153,95 @@ msgstr ""
msgid "%F%P: %s: can't open for writing: %E\n"
msgstr ""
-#: ldelf.c:1050 ldelf.c:1084
+#: ldelf.c:1052
msgid "%F%P: cannot use executable file '%pB' as input to a link\n"
msgstr ""
-#: ldelf.c:1111
+#: ldelf.c:1106
msgid ""
"%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from "
"%pB\n"
msgstr ""
-#: ldelf.c:1147
+#: ldelf.c:1142
msgid ""
"%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
msgstr ""
-#: ldelf.c:1203
+#: ldelf.c:1198
#, c-format
msgid "%s needed by %pB\n"
msgstr ""
-#: ldelf.c:1312
+#: ldelf.c:1307
msgid ""
"%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"
msgstr ""
-#: ldelf.c:1325
+#: ldelf.c:1320
msgid "%F%P: failed to add DT_NEEDED dynamic tag\n"
msgstr ""
-#: ldelf.c:1333
+#: ldelf.c:1328
msgid "%F%P: failed to parse EH frame entries\n"
msgstr ""
-#: ldelf.c:1372
+#: ldelf.c:1367
msgid "%P: warning: .note.gnu.build-id section discarded, --build-id ignored\n"
msgstr ""
-#: ldelf.c:1418 earm_wince_pe.c:1228 earmpe.c:1228 ei386pe.c:1228
-#: ei386pe_posix.c:1228 ei386pep.c:1231 emcorepe.c:1228 eppcpe.c:1228
-#: eshpe.c:1228
+#: ldelf.c:1413 earm_wince_pe.c:1277 earmpe.c:1277 ei386pe.c:1277
+#: ei386pe_posix.c:1277 ei386pep.c:1284 emcorepe.c:1277 eshpe.c:1277
msgid "%P: warning: unrecognized --build-id style ignored\n"
msgstr ""
-#: ldelf.c:1436
+#: ldelf.c:1431
msgid ""
"%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"
msgstr ""
-#: ldelf.c:1468 eaix5ppc.c:1370 eaix5rs6.c:1370 eaixppc.c:1370 eaixrs6.c:1370
-#: eppcmacos.c:1370
+#: ldelf.c:1463 eaix5ppc.c:1371 eaix5rs6.c:1371 eaixppc.c:1371 eaixrs6.c:1371
+#: eppcmacos.c:1371
msgid "%F%P: failed to record assignment to %s: %E\n"
msgstr ""
-#: ldelf.c:1650 ldelf.c:1715 eaix5ppc.c:832 eaix5rs6.c:832 eaixppc.c:832
+#: ldelf.c:1647 ldelf.c:1712 eaix5ppc.c:832 eaix5rs6.c:832 eaixppc.c:832
#: eaixrs6.c:832 eelf64_ia64_vms.c:209 eppcmacos.c:832
msgid "%F%P: failed to set dynamic section sizes: %E\n"
msgstr ""
-#: ldelf.c:1687
+#: ldelf.c:1684
msgid "%F%P: %pB: can't read contents of section .gnu.warning: %E\n"
msgstr ""
-#: ldelfgen.c:55
+#: ldelfgen.c:56
msgid "%F%P: map sections to segments failed: %E\n"
msgstr ""
-#: ldelfgen.c:75
+#: ldelfgen.c:76
msgid "%F%P: looping in map_segments"
msgstr ""
-#: ldelfgen.c:87
+#: ldelfgen.c:88
msgid "%F%P: failed to strip zero-sized dynamic sections"
msgstr ""
-#: ldelfgen.c:191
+#: ldelfgen.c:159
msgid ""
"%F%P: warning: CTF strtab association failed; strings will not be shared: "
"%s\n"
msgstr ""
-#: ldelfgen.c:197
-msgid "%F%P: warning: CTF symbol shuffling failed; slight space cost: %s\n"
+#: ldelfgen.c:186
+msgid ""
+"%F%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: "
+"%s\n"
+msgstr ""
+
+#: ldelfgen.c:196
+msgid ""
+"%F%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: "
+"%s\n"
msgstr ""
#: ldemul.c:314
@@ -281,9 +287,9 @@ msgstr ""
msgid "%F%P:%pS / by zero\n"
msgstr ""
-#: ldexp.c:736 ldlang.c:3922 ldmain.c:1260 earm_wince_pe.c:1772 earmpe.c:1772
-#: ei386pe.c:1772 ei386pe_posix.c:1772 ei386pep.c:1646 emcorepe.c:1772
-#: eppcpe.c:1772 eshpe.c:1772
+#: ldexp.c:736 ldlang.c:3977 ldmain.c:1262 earm_wince_pe.c:1804 earmpe.c:1804
+#: ei386pe.c:1804 ei386pe_posix.c:1804 ei386pep.c:1699 emcorepe.c:1804
+#: eshpe.c:1804
msgid "%F%P: bfd_link_hash_lookup failed: %E\n"
msgstr ""
@@ -331,7 +337,7 @@ msgstr ""
msgid "%F%P:%pS: nonconstant expression for %s\n"
msgstr ""
-#: ldexp.c:1666 ldlang.c:1281 ldlang.c:3464 ldlang.c:7848
+#: ldexp.c:1666 ldlang.c:1280 ldlang.c:3461 ldlang.c:7913
msgid "%F%P: can not create hash table: %E\n"
msgstr ""
@@ -364,68 +370,82 @@ msgstr ""
msgid "%P: cannot find %s inside %s\n"
msgstr ""
-#: ldfile.c:465
+#: ldfile.c:477 ldmain.c:1442
+msgid "%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"
+msgstr ""
+
+#: ldfile.c:481 ldmain.c:1446
+msgid "error handling script"
+msgstr ""
+
+#: ldfile.c:487 ldmain.c:1452
+msgid "%P: Failed to run error handling script '%s', reason: "
+msgstr ""
+
+#. We ignore the return status of the script
+#. and always print the error message.
+#: ldfile.c:494 ldfile.c:498
msgid "%P: cannot find %s\n"
msgstr ""
-#: ldfile.c:475
+#: ldfile.c:508
msgid "%P: note to link with %s use -l:%s or rename it to lib%s\n"
msgstr ""
-#: ldfile.c:503
+#: ldfile.c:537
#, c-format
msgid "cannot find script file %s\n"
msgstr ""
-#: ldfile.c:505
+#: ldfile.c:539
#, c-format
msgid "opened script file %s\n"
msgstr ""
-#: ldfile.c:654
+#: ldfile.c:688
msgid "%F%P: error: linker script file '%s' appears multiple times\n"
msgstr ""
-#: ldfile.c:676
+#: ldfile.c:710
msgid "%F%P: cannot open linker script file %s: %E\n"
msgstr ""
-#: ldfile.c:749
+#: ldfile.c:783
msgid "%F%P: cannot represent machine `%s'\n"
msgstr ""
-#: ldlang.c:1365
+#: ldlang.c:1364
msgid "%P:%pS: warning: redeclaration of memory region `%s'\n"
msgstr ""
-#: ldlang.c:1371
+#: ldlang.c:1370
msgid "%P:%pS: warning: memory region `%s' not declared\n"
msgstr ""
-#: ldlang.c:1407
+#: ldlang.c:1406
msgid "%F%P:%pS: error: alias for default memory region\n"
msgstr ""
-#: ldlang.c:1418
+#: ldlang.c:1417
msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
msgstr ""
-#: ldlang.c:1425
+#: ldlang.c:1424
msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
msgstr ""
-#: ldlang.c:1484 ldlang.c:1523
+#: ldlang.c:1485 ldlang.c:1520
msgid "%F%P: failed creating section `%s': %E\n"
msgstr ""
-#: ldlang.c:2221
+#: ldlang.c:2218
msgid ""
"\n"
"As-needed library included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldlang.c:2288
+#: ldlang.c:2285
#, c-format
msgid ""
"\n"
@@ -433,30 +453,30 @@ msgid ""
"\n"
msgstr ""
-#: ldlang.c:2296
+#: ldlang.c:2293
msgid ""
"\n"
"Memory Configuration\n"
"\n"
msgstr ""
-#: ldlang.c:2298
+#: ldlang.c:2295
msgid "Name"
msgstr ""
-#: ldlang.c:2298
+#: ldlang.c:2295
msgid "Origin"
msgstr ""
-#: ldlang.c:2298
+#: ldlang.c:2295
msgid "Length"
msgstr ""
-#: ldlang.c:2298
+#: ldlang.c:2295
msgid "Attributes"
msgstr ""
-#: ldlang.c:2338
+#: ldlang.c:2335
#, c-format
msgid ""
"\n"
@@ -464,598 +484,617 @@ msgid ""
"\n"
msgstr ""
-#: ldlang.c:2391
+#: ldlang.c:2388
msgid "%F%P: illegal use of `%s' section\n"
msgstr ""
-#: ldlang.c:2400
+#: ldlang.c:2397
msgid "%F%P: output format %s cannot represent section called %s: %E\n"
msgstr ""
-#: ldlang.c:2567
+#: ldlang.c:2564
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from "
"'%pB' match /DISCARD/ clause.\n"
msgstr ""
-#: ldlang.c:2600
+#: ldlang.c:2597
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions may change behaviour for "
"section `%pA' from '%pB' (assigned to %pA, but additional match: %pA)\n"
msgstr ""
-#: ldlang.c:3050
+#: ldlang.c:3047
msgid "%P: %pB: file not recognized: %E; matching formats:"
msgstr ""
-#: ldlang.c:3058
+#: ldlang.c:3055
msgid "%F%P: %pB: file not recognized: %E\n"
msgstr ""
-#: ldlang.c:3131
+#: ldlang.c:3128
msgid "%F%P: %pB: member %pB in archive is not an object\n"
msgstr ""
-#: ldlang.c:3434
+#: ldlang.c:3431
msgid ""
"%P: warning: could not find any targets that match endianness requirement\n"
msgstr ""
-#: ldlang.c:3448
+#: ldlang.c:3445
msgid "%F%P: target %s not found\n"
msgstr ""
-#: ldlang.c:3450
+#: ldlang.c:3447
msgid "%F%P: cannot open output file %s: %E\n"
msgstr ""
-#: ldlang.c:3456
+#: ldlang.c:3453
msgid "%F%P: %s: can not make object file: %E\n"
msgstr ""
-#: ldlang.c:3460
+#: ldlang.c:3457
msgid "%F%P: %s: can not set architecture: %E\n"
msgstr ""
-#: ldlang.c:3640
+#: ldlang.c:3637
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr ""
-#: ldlang.c:3697
+#: ldlang.c:3684
+#, c-format
+msgid "%s: %s\n"
+msgstr ""
+
+#: ldlang.c:3684
+msgid "CTF warning"
+msgstr ""
+
+#: ldlang.c:3684
+msgid "CTF error"
+msgstr ""
+
+#: ldlang.c:3690
+#, c-format
+msgid "CTF error: cannot get CTF errors: `%s'\n"
+msgstr ""
+
+#: ldlang.c:3724
msgid ""
-"%P: warning: CTF section in `%pI' not loaded: its types will be discarded: `"
-"%s'\n"
+"%P: warning: CTF section in %pB not loaded; its types will be discarded: %s\n"
msgstr ""
-#: ldlang.c:3722
+#: ldlang.c:3753
msgid "%P: warning: CTF output not created: `%s'\n"
msgstr ""
-#: ldlang.c:3764
-msgid "%F%P: cannot link with CTF in %pB: %s\n"
+#: ldlang.c:3796
+msgid "%P: warning: CTF section in %pB cannot be linked: `%s'\n"
msgstr ""
-#: ldlang.c:3774
-msgid "%F%P: CTF linking failed; output will have no CTF section: %s\n"
+#: ldlang.c:3814
+msgid "%P: warning: CTF linking failed; output will have no CTF section: %s\n"
msgstr ""
-#: ldlang.c:3830
+#: ldlang.c:3885
msgid ""
-"%F%P: CTF section emission failed; output will have no CTF section: %s\n"
+"%P: warning: CTF section emission failed; output will have no CTF section: "
+"%s\n"
msgstr ""
-#: ldlang.c:3868
+#: ldlang.c:3924
msgid ""
-"%P: warning: CTF section in `%pI' not linkable: %P was built without support "
+"%P: warning: CTF section in %pB not linkable: %P was built without support "
"for CTF\n"
msgstr ""
-#: ldlang.c:3992
+#: ldlang.c:4047
msgid "%X%P: required symbol `%s' not defined\n"
msgstr ""
-#: ldlang.c:4291
+#: ldlang.c:4342
msgid ""
"warning: INSERT statement in linker script is incompatible with --enable-non-"
"contiguous-regions.\n"
msgstr ""
-#: ldlang.c:4304
+#: ldlang.c:4355
msgid "%F%P: %s not found for insert\n"
msgstr ""
-#: ldlang.c:4544
+#: ldlang.c:4595
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:4777
+#: ldlang.c:4828
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:4870
+#: ldlang.c:4921
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:5068
+#: ldlang.c:5119
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:5281
+#: ldlang.c:5332
msgid ""
"%F%P: Output section '%s' not large enough for the linker-created stubs "
"section '%s'.\n"
msgstr ""
-#: ldlang.c:5286
+#: ldlang.c:5337
msgid ""
"%F%P: Relaxation not supported with --enable-non-contiguous-regions (section "
"'%s' would overflow '%s' after it changed size).\n"
msgstr ""
-#: ldlang.c:5395
+#: ldlang.c:5446
msgid "%X%P: section %s VMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5401
+#: ldlang.c:5452
msgid "%X%P: section %s LMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5453
+#: ldlang.c:5504
msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5497
+#: ldlang.c:5548
msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5520
+#: ldlang.c:5571
msgid "%X%P: region `%s' overflowed by %lu byte\n"
msgid_plural "%X%P: region `%s' overflowed by %lu bytes\n"
msgstr[0] ""
msgstr[1] ""
-#: ldlang.c:5545
+#: ldlang.c:5596
msgid "%X%P: address 0x%v of %pB section `%s' is not within region `%s'\n"
msgstr ""
-#: ldlang.c:5556
+#: ldlang.c:5607
msgid "%X%P: %pB section `%s' will not fit in region `%s'\n"
msgstr ""
-#: ldlang.c:5642
+#: ldlang.c:5693
msgid ""
"%F%P:%pS: non constant or forward reference address expression for section "
"%s\n"
msgstr ""
-#: ldlang.c:5667
+#: ldlang.c:5718
msgid "%X%P: internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:5725
+#: ldlang.c:5776
msgid "%F%P: error: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:5729
+#: ldlang.c:5780
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:5763
+#: ldlang.c:5814
msgid "%P: warning: start of section %s changed by %ld\n"
msgstr ""
-#: ldlang.c:5855
+#: ldlang.c:5906
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr ""
-#: ldlang.c:6036
+#: ldlang.c:6087
msgid "%F%P: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:6457
+#: ldlang.c:6508
msgid "%F%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:6490
+#: ldlang.c:6541
msgid "%F%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:6844
-msgid "%F%P: gc-sections requires either an entry or an undefined symbol\n"
+#: ldlang.c:6908
+msgid ""
+"%F%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
msgstr ""
-#: ldlang.c:6868
+#: ldlang.c:6933
msgid "%F%P: %s: can't set start address\n"
msgstr ""
-#: ldlang.c:6881 ldlang.c:6899
+#: ldlang.c:6946 ldlang.c:6964
msgid "%F%P: can't set start address\n"
msgstr ""
-#: ldlang.c:6893
+#: ldlang.c:6958
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:6904
+#: ldlang.c:6969
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:6960
+#: ldlang.c:7026
msgid ""
"%F%P: relocatable linking with relocations from format %s (%pB) to format %s "
"(%pB) is not supported\n"
msgstr ""
-#: ldlang.c:6970
+#: ldlang.c:7036
msgid ""
"%X%P: %s architecture of input file `%pB' is incompatible with %s output\n"
msgstr ""
-#: ldlang.c:6993
+#: ldlang.c:7060
msgid "%X%P: failed to merge target specific data of file %pB\n"
msgstr ""
-#: ldlang.c:7064
+#: ldlang.c:7131
msgid "%F%P: could not define common symbol `%pT': %E\n"
msgstr ""
-#: ldlang.c:7076
+#: ldlang.c:7143
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:7077
+#: ldlang.c:7144
msgid ""
"Common symbol size file\n"
"\n"
msgstr ""
-#: ldlang.c:7151
+#: ldlang.c:7217
msgid "%X%P: error: unplaced orphan section `%pA' from `%pB'\n"
msgstr ""
-#: ldlang.c:7169
+#: ldlang.c:7235
msgid ""
"%P: warning: orphan section `%pA' from `%pB' being placed in section `%s'\n"
msgstr ""
-#: ldlang.c:7260
+#: ldlang.c:7325
msgid "%F%P: invalid character %c (%d) in flags\n"
msgstr ""
-#: ldlang.c:7369
+#: ldlang.c:7434
msgid "%F%P:%pS: error: align with input and explicit align specified\n"
msgstr ""
-#: ldlang.c:7875
+#: ldlang.c:7949
msgid "%F%P: %s: plugin reported error after all symbols read\n"
msgstr ""
-#: ldlang.c:8312
+#: ldlang.c:8387
msgid "%F%P: multiple STARTUP files\n"
msgstr ""
-#: ldlang.c:8358
+#: ldlang.c:8433
msgid "%X%P:%pS: section has both a load address and a load region\n"
msgstr ""
-#: ldlang.c:8464
+#: ldlang.c:8539
msgid ""
"%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers "
"lack them\n"
msgstr ""
-#: ldlang.c:8537
+#: ldlang.c:8612
msgid "%F%P: no sections assigned to phdrs\n"
msgstr ""
-#: ldlang.c:8575
+#: ldlang.c:8650
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:8595
+#: ldlang.c:8670
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:9018
+#: ldlang.c:9093
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:9163
+#: ldlang.c:9238
msgid ""
"%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr ""
-#: ldlang.c:9172
+#: ldlang.c:9247
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:9193 ldlang.c:9202 ldlang.c:9220 ldlang.c:9230
+#: ldlang.c:9268 ldlang.c:9277 ldlang.c:9295 ldlang.c:9305
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:9270
+#: ldlang.c:9345
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:9293
+#: ldlang.c:9368
msgid "%X%P: unable to read .exports section contents\n"
msgstr ""
-#: ldlang.c:9331
-msgid "%F%P: invalid origin for memory region %s\n"
+#: ldlang.c:9414
+msgid "%P: invalid origin for memory region %s\n"
msgstr ""
-#: ldlang.c:9340
-msgid "%F%P: invalid length for memory region %s\n"
+#: ldlang.c:9426
+msgid "%P: invalid length for memory region %s\n"
msgstr ""
-#: ldlang.c:9451
+#: ldlang.c:9538
msgid "%X%P: unknown feature `%s'\n"
msgstr ""
-#: ldmain.c:194
+#: ldmain.c:196
msgid "%F%P: cannot open dependency file %s: %E\n"
msgstr ""
-#: ldmain.c:264
+#: ldmain.c:266
msgid "%F%P: fatal error: libbfd ABI mismatch\n"
msgstr ""
-#: ldmain.c:300
+#: ldmain.c:302
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:402
+#: ldmain.c:404
msgid "built in linker script"
msgstr ""
-#: ldmain.c:412
+#: ldmain.c:414
msgid "using external linker script:"
msgstr ""
-#: ldmain.c:414
+#: ldmain.c:416
msgid "using internal linker script:"
msgstr ""
-#: ldmain.c:461
+#: ldmain.c:463
msgid "%F%P: --no-define-common may not be used without -shared\n"
msgstr ""
-#: ldmain.c:467
+#: ldmain.c:469
msgid "%F%P: no input files\n"
msgstr ""
-#: ldmain.c:471
+#: ldmain.c:473
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:487 ends32belf.c:418 ends32belf16m.c:418 ends32belf_linux.c:547
-#: ends32elf.c:418 ends32elf16m.c:418 ends32elf_linux.c:547
+#: ldmain.c:489 ends32belf.c:422 ends32belf16m.c:422 ends32belf_linux.c:551
+#: ends32elf.c:422 ends32elf16m.c:422 ends32elf_linux.c:551
msgid "%F%P: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:540
+#: ldmain.c:542
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:549
+#: ldmain.c:551
msgid "%F%P: %pB: final close failed: %E\n"
msgstr ""
-#: ldmain.c:576
+#: ldmain.c:578
msgid "%F%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:579
+#: ldmain.c:581
msgid "%F%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:586
+#: ldmain.c:588
msgid "%P: error writing file `%s'\n"
msgstr ""
-#: ldmain.c:591 pe-dll.c:1949
+#: ldmain.c:593 pe-dll.c:1953
#, c-format
msgid "%P: error closing file `%s'\n"
msgstr ""
-#: ldmain.c:605
+#: ldmain.c:607
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:692
+#: ldmain.c:694
msgid "%F%P: missing argument to -m\n"
msgstr ""
-#: ldmain.c:742 ldmain.c:759 ldmain.c:779 ldmain.c:811 pe-dll.c:1395
+#: ldmain.c:744 ldmain.c:761 ldmain.c:781 ldmain.c:813 pe-dll.c:1396
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:746 ldmain.c:763 ldmain.c:783
+#: ldmain.c:748 ldmain.c:765 ldmain.c:785
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:797
+#: ldmain.c:799
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:841
+#: ldmain.c:843
msgid "%F%P: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:846
+#: ldmain.c:848
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:962
+#: ldmain.c:964
msgid ""
"Archive member included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldmain.c:1071
+#: ldmain.c:1073
msgid "%X%P: %C: multiple definition of `%pT'"
msgstr ""
-#: ldmain.c:1074
+#: ldmain.c:1076
msgid "; %D: first defined here"
msgstr ""
-#: ldmain.c:1079
+#: ldmain.c:1081
msgid "%P: disabling relaxation; it will not work with multiple definitions\n"
msgstr ""
-#: ldmain.c:1132
+#: ldmain.c:1134
msgid "%P: %pB: warning: definition of `%pT' overriding common from %pB\n"
msgstr ""
-#: ldmain.c:1136
+#: ldmain.c:1138
msgid "%P: %pB: warning: definition of `%pT' overriding common\n"
msgstr ""
-#: ldmain.c:1145
+#: ldmain.c:1147
msgid "%P: %pB: warning: common of `%pT' overridden by definition from %pB\n"
msgstr ""
-#: ldmain.c:1149
+#: ldmain.c:1151
msgid "%P: %pB: warning: common of `%pT' overridden by definition\n"
msgstr ""
-#: ldmain.c:1158
+#: ldmain.c:1160
msgid ""
"%P: %pB: warning: common of `%pT' overridden by larger common from %pB\n"
msgstr ""
-#: ldmain.c:1162
+#: ldmain.c:1164
msgid "%P: %pB: warning: common of `%pT' overridden by larger common\n"
msgstr ""
-#: ldmain.c:1169
+#: ldmain.c:1171
msgid "%P: %pB: warning: common of `%pT' overriding smaller common from %pB\n"
msgstr ""
-#: ldmain.c:1173
+#: ldmain.c:1175
msgid "%P: %pB: warning: common of `%pT' overriding smaller common\n"
msgstr ""
-#: ldmain.c:1180
+#: ldmain.c:1182
msgid "%P: %pB and %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1183
+#: ldmain.c:1185
msgid "%P: %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1202 ldmain.c:1238
+#: ldmain.c:1204 ldmain.c:1240
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:1248
+#: ldmain.c:1250
msgid "%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1320 ldmain.c:1322 ldmain.c:1324 ldmain.c:1332 ldmain.c:1375
+#: ldmain.c:1322 ldmain.c:1324 ldmain.c:1326 ldmain.c:1334 ldmain.c:1377
msgid "warning: "
msgstr ""
-#: ldmain.c:1427
+#: ldmain.c:1467
msgid "%X%P: %C: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1430
+#: ldmain.c:1470
msgid "%P: %C: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1436
+#: ldmain.c:1476
msgid "%X%P: %D: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1439
+#: ldmain.c:1479
msgid "%P: %D: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1450
+#: ldmain.c:1490
msgid "%X%P: %pB: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1453
+#: ldmain.c:1493
msgid "%P: %pB: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1459
+#: ldmain.c:1499
msgid "%X%P: %pB: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1462
+#: ldmain.c:1502
msgid "%P: %pB: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1499
+#: ldmain.c:1539
msgid " additional relocation overflows omitted from the output\n"
msgstr ""
-#: ldmain.c:1512
+#: ldmain.c:1552
#, c-format
msgid " relocation truncated to fit: %s against undefined symbol `%pT'"
msgstr ""
-#: ldmain.c:1518
+#: ldmain.c:1558
#, c-format
msgid ""
" relocation truncated to fit: %s against symbol `%pT' defined in %pA section "
"in %pB"
msgstr ""
-#: ldmain.c:1531
+#: ldmain.c:1571
#, c-format
msgid " relocation truncated to fit: %s against `%pT'"
msgstr ""
-#: ldmain.c:1547
+#: ldmain.c:1587
msgid "%X%H: dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1561
+#: ldmain.c:1601
msgid "%X%H: reloc refers to symbol `%pT' which is not being output\n"
msgstr ""
-#: ldmain.c:1595
+#: ldmain.c:1635
msgid "%P: %pB: reference to %s\n"
msgstr ""
-#: ldmain.c:1597
+#: ldmain.c:1637
msgid "%P: %pB: definition of %s\n"
msgstr ""
-#: ldmisc.c:374
+#: ldmisc.c:375
#, c-format
msgid "%pB: in function `%pT':\n"
msgstr ""
-#: ldmisc.c:512
+#: ldmisc.c:515
#, c-format
msgid "no symbol"
msgstr ""
-#: ldmisc.c:619
+#: ldmisc.c:622
msgid "%F%P: internal error %s %d\n"
msgstr ""
-#: ldmisc.c:683
+#: ldmisc.c:686
msgid "%P: internal error: aborting at %s:%d in %s\n"
msgstr ""
-#: ldmisc.c:686
+#: ldmisc.c:689
msgid "%P: internal error: aborting at %s:%d\n"
msgstr ""
-#: ldmisc.c:688
+#: ldmisc.c:691
msgid "%F%P: please report this bug\n"
msgstr ""
@@ -1105,667 +1144,675 @@ msgstr ""
msgid "%F%P: final link failed: %E\n"
msgstr ""
-#: lexsup.c:103 lexsup.c:288
+#: lexsup.c:105 lexsup.c:290
msgid "KEYWORD"
msgstr ""
-#: lexsup.c:103
+#: lexsup.c:105
msgid "Shared library control for HP/UX compatibility"
msgstr ""
-#: lexsup.c:106
+#: lexsup.c:108
msgid "ARCH"
msgstr ""
-#: lexsup.c:106
+#: lexsup.c:108
msgid "Set architecture"
msgstr ""
-#: lexsup.c:108 lexsup.c:415
+#: lexsup.c:110 lexsup.c:422
msgid "TARGET"
msgstr ""
-#: lexsup.c:108
+#: lexsup.c:110
msgid "Specify target for following input files"
msgstr ""
-#: lexsup.c:111 lexsup.c:117 lexsup.c:174 lexsup.c:178 lexsup.c:214
-#: lexsup.c:227 lexsup.c:229 lexsup.c:433 lexsup.c:500 lexsup.c:513
-#: lexsup.c:517
+#: lexsup.c:113 lexsup.c:119 lexsup.c:176 lexsup.c:180 lexsup.c:216
+#: lexsup.c:229 lexsup.c:231 lexsup.c:440 lexsup.c:507 lexsup.c:520
+#: lexsup.c:524
msgid "FILE"
msgstr ""
-#: lexsup.c:111
+#: lexsup.c:113
msgid "Read MRI format linker script"
msgstr ""
-#: lexsup.c:113
+#: lexsup.c:115
msgid "Force common symbols to be defined"
msgstr ""
-#: lexsup.c:117
+#: lexsup.c:119
msgid "Write dependency file"
msgstr ""
-#: lexsup.c:120
+#: lexsup.c:122
msgid "Force group members out of groups"
msgstr ""
-#: lexsup.c:122 lexsup.c:477 lexsup.c:479 lexsup.c:481 lexsup.c:483
-#: lexsup.c:485 lexsup.c:487
+#: lexsup.c:124 lexsup.c:484 lexsup.c:486 lexsup.c:488 lexsup.c:490
+#: lexsup.c:492 lexsup.c:494
msgid "ADDRESS"
msgstr ""
-#: lexsup.c:122
+#: lexsup.c:124
msgid "Set start address"
msgstr ""
-#: lexsup.c:124
+#: lexsup.c:126
msgid "Export all dynamic symbols"
msgstr ""
-#: lexsup.c:126
+#: lexsup.c:128
msgid "Undo the effect of --export-dynamic"
msgstr ""
-#: lexsup.c:128
+#: lexsup.c:130
msgid "Enable support of non-contiguous memory regions"
msgstr ""
-#: lexsup.c:130
+#: lexsup.c:132
msgid ""
"Enable warnings when --enable-non-contiguous-regions may cause unexpected "
"behaviour"
msgstr ""
-#: lexsup.c:132
+#: lexsup.c:134
msgid "Link big-endian objects"
msgstr ""
-#: lexsup.c:134
+#: lexsup.c:136
msgid "Link little-endian objects"
msgstr ""
-#: lexsup.c:136 lexsup.c:139
+#: lexsup.c:138 lexsup.c:141
msgid "SHLIB"
msgstr ""
-#: lexsup.c:136
+#: lexsup.c:138
msgid "Auxiliary filter for shared object symbol table"
msgstr ""
-#: lexsup.c:139
+#: lexsup.c:141
msgid "Filter for shared object symbol table"
msgstr ""
-#: lexsup.c:142
+#: lexsup.c:144
msgid "Ignored"
msgstr ""
-#: lexsup.c:144
+#: lexsup.c:146
msgid "SIZE"
msgstr ""
-#: lexsup.c:144
+#: lexsup.c:146
msgid "Small data size (if no size, same as --shared)"
msgstr ""
-#: lexsup.c:147
+#: lexsup.c:149
msgid "FILENAME"
msgstr ""
-#: lexsup.c:147
+#: lexsup.c:149
msgid "Set internal name of shared library"
msgstr ""
-#: lexsup.c:149
+#: lexsup.c:151
msgid "PROGRAM"
msgstr ""
-#: lexsup.c:149
+#: lexsup.c:151
msgid "Set PROGRAM as the dynamic linker to use"
msgstr ""
-#: lexsup.c:152
+#: lexsup.c:154
msgid "Produce an executable with no program interpreter header"
msgstr ""
-#: lexsup.c:155
+#: lexsup.c:157
msgid "LIBNAME"
msgstr ""
-#: lexsup.c:155
+#: lexsup.c:157
msgid "Search for library LIBNAME"
msgstr ""
-#: lexsup.c:157
+#: lexsup.c:159
msgid "DIRECTORY"
msgstr ""
-#: lexsup.c:157
+#: lexsup.c:159
msgid "Add DIRECTORY to library search path"
msgstr ""
-#: lexsup.c:160
+#: lexsup.c:162
msgid "Override the default sysroot location"
msgstr ""
-#: lexsup.c:162
+#: lexsup.c:164
msgid "EMULATION"
msgstr ""
-#: lexsup.c:162
+#: lexsup.c:164
msgid "Set emulation"
msgstr ""
-#: lexsup.c:164
+#: lexsup.c:166
msgid "Print map file on standard output"
msgstr ""
-#: lexsup.c:166
+#: lexsup.c:168
msgid "Do not page align data"
msgstr ""
-#: lexsup.c:168
+#: lexsup.c:170
msgid "Do not page align data, do not make text readonly"
msgstr ""
-#: lexsup.c:171
+#: lexsup.c:173
msgid "Page align data, make text readonly"
msgstr ""
-#: lexsup.c:174
+#: lexsup.c:176
msgid "Set output file name"
msgstr ""
-#: lexsup.c:176
+#: lexsup.c:178
msgid "Optimize output file"
msgstr ""
-#: lexsup.c:178
+#: lexsup.c:180
msgid "Generate import library"
msgstr ""
-#: lexsup.c:181 lexsup.c:192
+#: lexsup.c:183 lexsup.c:194
msgid "PLUGIN"
msgstr ""
-#: lexsup.c:181
+#: lexsup.c:183
msgid "Load named plugin"
msgstr ""
-#: lexsup.c:183 lexsup.c:194
+#: lexsup.c:185 lexsup.c:196
msgid "ARG"
msgstr ""
-#: lexsup.c:183
+#: lexsup.c:185
msgid "Send arg to last-loaded plugin"
msgstr ""
-#: lexsup.c:185 lexsup.c:188
+#: lexsup.c:187 lexsup.c:190
msgid "Ignored for GCC LTO option compatibility"
msgstr ""
-#: lexsup.c:192
+#: lexsup.c:194
msgid "Load named plugin (ignored)"
msgstr ""
-#: lexsup.c:194
+#: lexsup.c:196
msgid "Send arg to last-loaded plugin (ignored)"
msgstr ""
-#: lexsup.c:197
+#: lexsup.c:199
msgid "Ignored for GCC linker option compatibility"
msgstr ""
-#: lexsup.c:200 lexsup.c:203
+#: lexsup.c:202 lexsup.c:205
msgid "Ignored for gold option compatibility"
msgstr ""
-#: lexsup.c:206
+#: lexsup.c:208
msgid "Ignored for SVR4 compatibility"
msgstr ""
-#: lexsup.c:210
+#: lexsup.c:212
msgid "Generate relocatable output"
msgstr ""
-#: lexsup.c:214
+#: lexsup.c:216
msgid "Just link symbols (if directory, same as --rpath)"
msgstr ""
-#: lexsup.c:217
+#: lexsup.c:219
msgid "Strip all symbols"
msgstr ""
-#: lexsup.c:219
+#: lexsup.c:221
msgid "Strip debugging symbols"
msgstr ""
-#: lexsup.c:221
+#: lexsup.c:223
msgid "Strip symbols in discarded sections"
msgstr ""
-#: lexsup.c:223
+#: lexsup.c:225
msgid "Do not strip symbols in discarded sections"
msgstr ""
-#: lexsup.c:225
+#: lexsup.c:227
msgid "Trace file opens"
msgstr ""
-#: lexsup.c:227
+#: lexsup.c:229
msgid "Read linker script"
msgstr ""
-#: lexsup.c:229
+#: lexsup.c:231
msgid "Read default linker script"
msgstr ""
-#: lexsup.c:233 lexsup.c:236 lexsup.c:254 lexsup.c:343 lexsup.c:367
-#: lexsup.c:470 lexsup.c:503 lexsup.c:515 lexsup.c:553 lexsup.c:556
+#: lexsup.c:235 lexsup.c:238 lexsup.c:256 lexsup.c:345 lexsup.c:369
+#: lexsup.c:477 lexsup.c:510 lexsup.c:522 lexsup.c:560 lexsup.c:563
msgid "SYMBOL"
msgstr ""
-#: lexsup.c:233
+#: lexsup.c:235
msgid "Start with undefined reference to SYMBOL"
msgstr ""
-#: lexsup.c:236
+#: lexsup.c:238
msgid "Require SYMBOL be defined in the final output"
msgstr ""
-#: lexsup.c:239
+#: lexsup.c:241
msgid "[=SECTION]"
msgstr ""
-#: lexsup.c:240
+#: lexsup.c:242
msgid "Don't merge input [SECTION | orphan] sections"
msgstr ""
-#: lexsup.c:242
+#: lexsup.c:244
msgid "Build global constructor/destructor tables"
msgstr ""
-#: lexsup.c:244
+#: lexsup.c:246
msgid "Print version information"
msgstr ""
-#: lexsup.c:246
+#: lexsup.c:248
msgid "Print version and emulation information"
msgstr ""
-#: lexsup.c:248
+#: lexsup.c:250
msgid "Discard all local symbols"
msgstr ""
-#: lexsup.c:250
+#: lexsup.c:252
msgid "Discard temporary local symbols (default)"
msgstr ""
-#: lexsup.c:252
+#: lexsup.c:254
msgid "Don't discard any local symbols"
msgstr ""
-#: lexsup.c:254
+#: lexsup.c:256
msgid "Trace mentions of SYMBOL"
msgstr ""
-#: lexsup.c:256 lexsup.c:435 lexsup.c:437
+#: lexsup.c:258 lexsup.c:442 lexsup.c:444
msgid "PATH"
msgstr ""
-#: lexsup.c:256
+#: lexsup.c:258
msgid "Default search path for Solaris compatibility"
msgstr ""
-#: lexsup.c:259
+#: lexsup.c:261
msgid "Start a group"
msgstr ""
-#: lexsup.c:261
+#: lexsup.c:263
msgid "End a group"
msgstr ""
-#: lexsup.c:265
+#: lexsup.c:267
msgid "Accept input files whose architecture cannot be determined"
msgstr ""
-#: lexsup.c:269
+#: lexsup.c:271
msgid "Reject input files whose architecture is unknown"
msgstr ""
-#: lexsup.c:281
+#: lexsup.c:283
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr ""
-#: lexsup.c:284
+#: lexsup.c:286
msgid ""
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
msgstr ""
-#: lexsup.c:288
+#: lexsup.c:290
msgid "Ignored for SunOS compatibility"
msgstr ""
-#: lexsup.c:290
+#: lexsup.c:292
msgid "Link against shared libraries"
msgstr ""
-#: lexsup.c:296
+#: lexsup.c:298
msgid "Do not link against shared libraries"
msgstr ""
-#: lexsup.c:304
+#: lexsup.c:306
msgid "Bind global references locally"
msgstr ""
-#: lexsup.c:306
+#: lexsup.c:308
msgid "Bind global function references locally"
msgstr ""
-#: lexsup.c:308
+#: lexsup.c:310
msgid "Check section addresses for overlaps (default)"
msgstr ""
-#: lexsup.c:311
+#: lexsup.c:313
msgid "Do not check section addresses for overlaps"
msgstr ""
-#: lexsup.c:315
+#: lexsup.c:317
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-#: lexsup.c:319
+#: lexsup.c:321
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-#: lexsup.c:323
+#: lexsup.c:325
msgid "Output cross reference table"
msgstr ""
-#: lexsup.c:325
+#: lexsup.c:327
msgid "SYMBOL=EXPRESSION"
msgstr ""
-#: lexsup.c:325
+#: lexsup.c:327
msgid "Define a symbol"
msgstr ""
-#: lexsup.c:327
+#: lexsup.c:329
msgid "[=STYLE]"
msgstr ""
-#: lexsup.c:327
+#: lexsup.c:329
msgid "Demangle symbol names [using STYLE]"
msgstr ""
-#: lexsup.c:331
+#: lexsup.c:333
msgid ""
"Do not allow multiple definitions with symbols included\n"
" in filename invoked by -R or --just-symbols"
msgstr ""
-#: lexsup.c:335
+#: lexsup.c:337
msgid "Generate embedded relocs"
msgstr ""
-#: lexsup.c:337
+#: lexsup.c:339
msgid "Treat warnings as errors"
msgstr ""
-#: lexsup.c:340
+#: lexsup.c:342
msgid "Do not treat warnings as errors (default)"
msgstr ""
-#: lexsup.c:343
+#: lexsup.c:345
msgid "Call SYMBOL at unload-time"
msgstr ""
-#: lexsup.c:345
+#: lexsup.c:347
msgid "Force generation of file with .exe suffix"
msgstr ""
-#: lexsup.c:347
+#: lexsup.c:349
msgid "Remove unused sections (on some targets)"
msgstr ""
-#: lexsup.c:350
+#: lexsup.c:352
msgid "Don't remove unused sections (default)"
msgstr ""
-#: lexsup.c:353
+#: lexsup.c:355
msgid "List removed unused sections on stderr"
msgstr ""
-#: lexsup.c:356
+#: lexsup.c:358
msgid "Do not list removed unused sections"
msgstr ""
-#: lexsup.c:359
+#: lexsup.c:361
msgid "Keep exported symbols when removing unused sections"
msgstr ""
-#: lexsup.c:362
+#: lexsup.c:364
msgid "Set default hash table size close to <NUMBER>"
msgstr ""
-#: lexsup.c:365
+#: lexsup.c:367
msgid "Print option help"
msgstr ""
-#: lexsup.c:367
+#: lexsup.c:369
msgid "Call SYMBOL at load-time"
msgstr ""
-#: lexsup.c:369
+#: lexsup.c:371
msgid "FILE/DIR"
msgstr ""
-#: lexsup.c:369
+#: lexsup.c:371
msgid "Write a linker map to FILE or DIR/<outputname>.map"
msgstr ""
-#: lexsup.c:371
+#: lexsup.c:373
msgid "Do not define Common storage"
msgstr ""
-#: lexsup.c:373
+#: lexsup.c:375
msgid "Do not demangle symbol names"
msgstr ""
-#: lexsup.c:375
+#: lexsup.c:377
msgid "Use less memory and more disk I/O"
msgstr ""
-#: lexsup.c:377
+#: lexsup.c:379
msgid "Do not allow unresolved references in object files"
msgstr ""
-#: lexsup.c:380
+#: lexsup.c:382
msgid "Allow unresolved references in shared libraries"
msgstr ""
-#: lexsup.c:384
+#: lexsup.c:386
msgid "Do not allow unresolved references in shared libs"
msgstr ""
-#: lexsup.c:388
+#: lexsup.c:390
msgid "Allow multiple definitions"
msgstr ""
-#: lexsup.c:390
+#: lexsup.c:394
+msgid "SCRIPT"
+msgstr ""
+
+#: lexsup.c:394
+msgid "Provide a script to help with undefined symbol errors"
+msgstr ""
+
+#: lexsup.c:397
msgid "Disallow undefined version"
msgstr ""
-#: lexsup.c:392
+#: lexsup.c:399
msgid "Create default symbol version"
msgstr ""
-#: lexsup.c:395
+#: lexsup.c:402
msgid "Create default symbol version for imported symbols"
msgstr ""
-#: lexsup.c:398
+#: lexsup.c:405
msgid "Don't warn about mismatched input files"
msgstr ""
-#: lexsup.c:401
+#: lexsup.c:408
msgid "Don't warn on finding an incompatible library"
msgstr ""
-#: lexsup.c:404
+#: lexsup.c:411
msgid "Turn off --whole-archive"
msgstr ""
-#: lexsup.c:406
+#: lexsup.c:413
msgid "Create an output file even if errors occur"
msgstr ""
-#: lexsup.c:411
+#: lexsup.c:418
msgid ""
"Only use library directories specified on\n"
" the command line"
msgstr ""
-#: lexsup.c:415
+#: lexsup.c:422
msgid "Specify target of output file"
msgstr ""
-#: lexsup.c:418
+#: lexsup.c:425
msgid "Print default output format"
msgstr ""
-#: lexsup.c:420
+#: lexsup.c:427
msgid "Print current sysroot"
msgstr ""
-#: lexsup.c:422
+#: lexsup.c:429
msgid "Ignored for Linux compatibility"
msgstr ""
-#: lexsup.c:425
+#: lexsup.c:432
msgid "Reduce memory overheads, possibly taking much longer"
msgstr ""
-#: lexsup.c:428
+#: lexsup.c:435
msgid "Reduce code size by using target specific optimizations"
msgstr ""
-#: lexsup.c:430
+#: lexsup.c:437
msgid "Do not use relaxation techniques to reduce code size"
msgstr ""
-#: lexsup.c:433
+#: lexsup.c:440
msgid "Keep only symbols listed in FILE"
msgstr ""
-#: lexsup.c:435
+#: lexsup.c:442
msgid "Set runtime shared library search path"
msgstr ""
-#: lexsup.c:437
+#: lexsup.c:444
msgid "Set link time shared library search path"
msgstr ""
-#: lexsup.c:440
+#: lexsup.c:447
msgid "Create a shared library"
msgstr ""
-#: lexsup.c:444
+#: lexsup.c:451
msgid "Create a position independent executable"
msgstr ""
-#: lexsup.c:448
+#: lexsup.c:455
msgid "[=ascending|descending]"
msgstr ""
-#: lexsup.c:449
+#: lexsup.c:456
msgid "Sort common symbols by alignment [in specified order]"
msgstr ""
-#: lexsup.c:454
+#: lexsup.c:461
msgid "name|alignment"
msgstr ""
-#: lexsup.c:455
+#: lexsup.c:462
msgid "Sort sections by name or maximum alignment"
msgstr ""
-#: lexsup.c:457
+#: lexsup.c:464
msgid "COUNT"
msgstr ""
-#: lexsup.c:457
+#: lexsup.c:464
msgid "How many tags to reserve in .dynamic section"
msgstr ""
-#: lexsup.c:460
+#: lexsup.c:467
msgid "[=SIZE]"
msgstr ""
-#: lexsup.c:460
+#: lexsup.c:467
msgid "Split output sections every SIZE octets"
msgstr ""
-#: lexsup.c:463
+#: lexsup.c:470
msgid "[=COUNT]"
msgstr ""
-#: lexsup.c:463
+#: lexsup.c:470
msgid "Split output sections every COUNT relocs"
msgstr ""
-#: lexsup.c:466
+#: lexsup.c:473
msgid "Print memory usage statistics"
msgstr ""
-#: lexsup.c:468
+#: lexsup.c:475
msgid "Display target specific options"
msgstr ""
-#: lexsup.c:470
+#: lexsup.c:477
msgid "Do task level linking"
msgstr ""
-#: lexsup.c:472
+#: lexsup.c:479
msgid "Use same format as native linker"
msgstr ""
-#: lexsup.c:474
+#: lexsup.c:481
msgid "SECTION=ADDRESS"
msgstr ""
-#: lexsup.c:474
+#: lexsup.c:481
msgid "Set address of named section"
msgstr ""
-#: lexsup.c:477
+#: lexsup.c:484
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:479
+#: lexsup.c:486
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:481
+#: lexsup.c:488
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:483
+#: lexsup.c:490
msgid "Set address of text segment"
msgstr ""
-#: lexsup.c:485
+#: lexsup.c:492
msgid "Set address of rodata segment"
msgstr ""
-#: lexsup.c:487
+#: lexsup.c:494
msgid "Set address of ldata segment"
msgstr ""
-#: lexsup.c:490
+#: lexsup.c:497
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-"
@@ -1773,174 +1820,197 @@ msgid ""
" ignore-in-shared-libs"
msgstr ""
-#: lexsup.c:495
+#: lexsup.c:502
msgid "[=NUMBER]"
msgstr ""
-#: lexsup.c:496
+#: lexsup.c:503
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:500
+#: lexsup.c:507
msgid "Read version information script"
msgstr ""
-#: lexsup.c:503
+#: lexsup.c:510
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
-#: lexsup.c:507
+#: lexsup.c:514
msgid "Add data symbols to dynamic list"
msgstr ""
-#: lexsup.c:509
+#: lexsup.c:516
msgid "Use C++ operator new/delete dynamic list"
msgstr ""
-#: lexsup.c:511
+#: lexsup.c:518
msgid "Use C++ typeinfo dynamic list"
msgstr ""
-#: lexsup.c:513
+#: lexsup.c:520
msgid "Read dynamic list"
msgstr ""
-#: lexsup.c:515
+#: lexsup.c:522
msgid "Export the specified symbol"
msgstr ""
-#: lexsup.c:517
+#: lexsup.c:524
msgid "Read export dynamic symbol list"
msgstr ""
-#: lexsup.c:519
+#: lexsup.c:526
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:521
+#: lexsup.c:528
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:524
+#: lexsup.c:531
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:526
+#: lexsup.c:533
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:528
+#: lexsup.c:535
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:533
+#: lexsup.c:540
msgid "Warn if output has DT_TEXTREL (default)"
msgstr ""
-#: lexsup.c:535
+#: lexsup.c:542
msgid "Warn if output has DT_TEXTREL"
msgstr ""
-#: lexsup.c:541
+#: lexsup.c:548
msgid "Warn if an object has alternate ELF machine code"
msgstr ""
-#: lexsup.c:545
+#: lexsup.c:552
msgid "Report unresolved symbols as warnings"
msgstr ""
-#: lexsup.c:548
+#: lexsup.c:555
msgid "Report unresolved symbols as errors"
msgstr ""
-#: lexsup.c:550
+#: lexsup.c:557
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:553
+#: lexsup.c:560
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:557
+#: lexsup.c:564
msgid "Unresolved SYMBOL will not cause an error or warning"
msgstr ""
-#: lexsup.c:559
+#: lexsup.c:566
msgid "Push state of flags governing input file handling"
msgstr ""
-#: lexsup.c:562
+#: lexsup.c:569
msgid "Pop state of flags governing input file handling"
msgstr ""
-#: lexsup.c:565
+#: lexsup.c:572
msgid "Report target memory usage"
msgstr ""
-#: lexsup.c:567
+#: lexsup.c:574
msgid "=MODE"
msgstr ""
-#: lexsup.c:567
+#: lexsup.c:574
msgid "Control how orphan sections are handled."
msgstr ""
-#: lexsup.c:570
+#: lexsup.c:577
msgid "Show discarded sections in map file output (default)"
msgstr ""
-#: lexsup.c:573
+#: lexsup.c:580
msgid "Do not show discarded sections in map file output"
msgstr ""
-#: lexsup.c:751
+#: lexsup.c:583
+msgid "Emit names and types of static variables in CTF"
+msgstr ""
+
+#: lexsup.c:586
+msgid "Do not emit names and types of static variables in CTF"
+msgstr ""
+
+#: lexsup.c:590
+msgid ""
+"How to share CTF types between translation units.\n"
+" <method> is: share-unconflicted (default),\n"
+" share-duplicated"
+msgstr ""
+
+#: lexsup.c:754
+msgid "%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
+msgstr ""
+
+#: lexsup.c:757
+msgid "%P: Warning: grouped short command line options are deprecated: %s\n"
+msgstr ""
+
+#: lexsup.c:784
msgid "%P: %s: missing argument\n"
msgstr ""
-#: lexsup.c:756
+#: lexsup.c:789
msgid "%P: unrecognized option '%s'\n"
msgstr ""
-#: lexsup.c:761
+#: lexsup.c:794
msgid "%F%P: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:780
+#: lexsup.c:813
msgid "%F%P: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:793
+#: lexsup.c:826
msgid "%F%P: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:837
+#: lexsup.c:870
msgid "%F%P: unknown demangling style `%s'\n"
msgstr ""
-#: lexsup.c:913 lexsup.c:1372 eaarch64cloudabi.c:803 eaarch64cloudabib.c:803
-#: eaarch64elf.c:798 eaarch64elf32.c:798 eaarch64elf32b.c:798
-#: eaarch64elfb.c:798 eaarch64fbsd.c:803 eaarch64fbsdb.c:803
-#: eaarch64linux.c:803 eaarch64linux32.c:803 eaarch64linux32b.c:803
-#: eaarch64linuxb.c:803 earmelf.c:1064 earmelf_fbsd.c:1064
-#: earmelf_fuchsia.c:1069 earmelf_linux.c:1069 earmelf_linux_eabi.c:1069
-#: earmelf_linux_fdpiceabi.c:1069 earmelf_nacl.c:1069 earmelf_nbsd.c:1064
-#: earmelf_phoenix.c:1069 earmelf_vxworks.c:1100 earmelfb.c:1064
-#: earmelfb_fbsd.c:1064 earmelfb_fuchsia.c:1069 earmelfb_linux.c:1069
-#: earmelfb_linux_eabi.c:1069 earmelfb_linux_fdpiceabi.c:1069
-#: earmelfb_nacl.c:1069 earmelfb_nbsd.c:1064 earmnto.c:1039 earmsymbian.c:1064
-#: ecskyelf.c:530 ecskyelf_linux.c:693 eelf32metag.c:690 eelf64lppc.c:1149
-#: eelf64ppc.c:1149 eelf64ppc_fbsd.c:1149 ehppaelf.c:550 ehppalinux.c:728
-#: ehppanbsd.c:728 ehppaobsd.c:728
+#: lexsup.c:946 lexsup.c:1414 eaarch64cloudabi.c:807 eaarch64cloudabib.c:807
+#: eaarch64elf.c:802 eaarch64elf32.c:802 eaarch64elf32b.c:802
+#: eaarch64elfb.c:802 eaarch64fbsd.c:807 eaarch64fbsdb.c:807
+#: eaarch64linux.c:807 eaarch64linux32.c:807 eaarch64linux32b.c:807
+#: eaarch64linuxb.c:807 earmelf.c:1068 earmelf_fbsd.c:1068
+#: earmelf_fuchsia.c:1073 earmelf_linux.c:1073 earmelf_linux_eabi.c:1073
+#: earmelf_linux_fdpiceabi.c:1073 earmelf_nacl.c:1073 earmelf_nbsd.c:1068
+#: earmelf_phoenix.c:1073 earmelf_vxworks.c:1104 earmelfb.c:1068
+#: earmelfb_fbsd.c:1068 earmelfb_fuchsia.c:1073 earmelfb_linux.c:1073
+#: earmelfb_linux_eabi.c:1073 earmelfb_linux_fdpiceabi.c:1073
+#: earmelfb_nacl.c:1073 earmelfb_nbsd.c:1068 earmnto.c:1043 earmsymbian.c:1068
+#: ecskyelf.c:534 ecskyelf_linux.c:697 eelf32metag.c:694 eelf64lppc.c:1171
+#: eelf64lppc_fbsd.c:1171 eelf64ppc.c:1171 eelf64ppc_fbsd.c:1171 ehppaelf.c:554
+#: ehppalinux.c:732 ehppanbsd.c:732 ehppaobsd.c:732
msgid "%F%P: invalid number `%s'\n"
msgstr ""
-#: lexsup.c:1009
+#: lexsup.c:1042
msgid "%F%P: bad --unresolved-symbols option: %s\n"
msgstr ""
-#: lexsup.c:1077
+#: lexsup.c:1119
msgid "%F%P: bad -plugin-opt option\n"
msgstr ""
@@ -1952,147 +2022,159 @@ msgstr ""
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:1094
+#: lexsup.c:1136
msgid "%F%P: unrecognised option: %s\n"
msgstr ""
-#: lexsup.c:1097 lexsup.c:1207 lexsup.c:1225 lexsup.c:1341
+#: lexsup.c:1139 lexsup.c:1249 lexsup.c:1267 lexsup.c:1383
msgid "%F%P: -r and %s may not be used together\n"
msgstr ""
-#: lexsup.c:1219
+#: lexsup.c:1261
msgid "%F%P: -shared not supported\n"
msgstr ""
-#: lexsup.c:1230
+#: lexsup.c:1272
msgid "%F%P: -pie not supported\n"
msgstr ""
-#: lexsup.c:1236
+#: lexsup.c:1278
msgid "%P: SONAME must not be empty string; keeping previous one\n"
msgstr ""
-#: lexsup.c:1242
+#: lexsup.c:1284
msgid "descending"
msgstr ""
-#: lexsup.c:1244
+#: lexsup.c:1286
msgid "ascending"
msgstr ""
-#: lexsup.c:1247
+#: lexsup.c:1289
msgid "%F%P: invalid common section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1251
+#: lexsup.c:1293
msgid "name"
msgstr ""
-#: lexsup.c:1253
+#: lexsup.c:1295
msgid "alignment"
msgstr ""
-#: lexsup.c:1256
+#: lexsup.c:1298
msgid "%F%P: invalid section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1290
+#: lexsup.c:1332
msgid "%F%P: invalid argument to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1297
+#: lexsup.c:1339
msgid "%F%P: missing argument(s) to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1562
+#: lexsup.c:1604
msgid "%F%P: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1590
+#: lexsup.c:1632
msgid "%X%P: --hash-size needs a numeric argument\n"
msgstr ""
-#: lexsup.c:1602
+#: lexsup.c:1644
msgid "%F%P: no state pushed before popping\n"
msgstr ""
-#: lexsup.c:1625
+#: lexsup.c:1667
msgid "%F%P: invalid argument to option \"--orphan-handling\"\n"
msgstr ""
-#: lexsup.c:1648
+#: lexsup.c:1697
+msgid "%F%P: bad --ctf-share-types option: %s\n"
+msgstr ""
+
+#: lexsup.c:1715
msgid "%P: no file/directory name provided for map output; ignored\n"
msgstr ""
-#. If this alloc fails then something is probably very
+#: lexsup.c:1743
+msgid "%P: cannot stat linker map file: %E\n"
+msgstr ""
+
+#: lexsup.c:1755
+msgid "%P: linker map file is not a regular file\n"
+msgstr ""
+
+#. If the asprintf failed then something is probably very
#. wrong. Better to halt now rather than continue on
#. into more problems.
-#: lexsup.c:1669
+#: lexsup.c:1766
msgid "%P%F: cannot create name for linker map file: %E\n"
msgstr ""
-#: lexsup.c:1680
+#: lexsup.c:1777
msgid "%P: SONAME must not be empty string; ignored\n"
msgstr ""
-#: lexsup.c:1686
+#: lexsup.c:1783
msgid "%P: missing --end-group; added as last command line option\n"
msgstr ""
-#: lexsup.c:1794
+#: lexsup.c:1891
msgid "%F%P: -F may not be used without -shared\n"
msgstr ""
-#: lexsup.c:1796
+#: lexsup.c:1893
msgid "%F%P: -f may not be used without -shared\n"
msgstr ""
-#: lexsup.c:1837 lexsup.c:1850
+#: lexsup.c:1934 lexsup.c:1947
msgid "%F%P: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:1880
+#: lexsup.c:1977
#, c-format
msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
msgstr ""
-#: lexsup.c:1882
+#: lexsup.c:1979
#, c-format
msgid " -Bgroup Selects group name lookup rules for DSO\n"
msgstr ""
-#: lexsup.c:1884
+#: lexsup.c:1981
#, c-format
msgid " --disable-new-dtags Disable new dynamic tags\n"
msgstr ""
-#: lexsup.c:1886
+#: lexsup.c:1983
#, c-format
msgid " --enable-new-dtags Enable new dynamic tags\n"
msgstr ""
-#: lexsup.c:1888
+#: lexsup.c:1985
#, c-format
msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:1890
+#: lexsup.c:1987
#, c-format
msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:1892
+#: lexsup.c:1989
#, c-format
msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
msgstr ""
-#: lexsup.c:1894
+#: lexsup.c:1991
#, c-format
msgid ""
" --hash-style=STYLE Set hash style to sysv/gnu/both. Default: "
msgstr ""
-#: lexsup.c:1913
+#: lexsup.c:2010
#, c-format
msgid ""
" -P AUDITLIB, --depaudit=AUDITLIB\n"
@@ -2100,20 +2182,20 @@ msgid ""
"dependencies\n"
msgstr ""
-#: lexsup.c:1916
+#: lexsup.c:2013
#, c-format
msgid ""
" -z combreloc Merge dynamic relocs into one section and "
"sort\n"
msgstr ""
-#: lexsup.c:1918
+#: lexsup.c:2015
#, c-format
msgid ""
" -z nocombreloc Don't merge dynamic relocs into one section\n"
msgstr ""
-#: lexsup.c:1920
+#: lexsup.c:2017
#, c-format
msgid ""
" -z global Make symbols in DSO available for "
@@ -2121,236 +2203,247 @@ msgid ""
" loaded objects\n"
msgstr ""
-#: lexsup.c:1923
+#: lexsup.c:2020
#, c-format
msgid ""
" -z initfirst Mark DSO to be initialized first at runtime\n"
msgstr ""
-#: lexsup.c:1925
+#: lexsup.c:2022
#, c-format
msgid ""
" -z interpose Mark object to interpose all DSOs but "
"executable\n"
msgstr ""
-#: lexsup.c:1927
+#: lexsup.c:2024
#, c-format
msgid ""
" -z lazy Mark object lazy runtime binding (default)\n"
msgstr ""
-#: lexsup.c:1929
+#: lexsup.c:2026
#, c-format
msgid " -z loadfltr Mark object requiring immediate process\n"
msgstr ""
-#: lexsup.c:1931
+#: lexsup.c:2028
#, c-format
msgid " -z nocopyreloc Don't create copy relocs\n"
msgstr ""
-#: lexsup.c:1933
+#: lexsup.c:2030
#, c-format
msgid ""
" -z nodefaultlib Mark object not to use default search paths\n"
msgstr ""
-#: lexsup.c:1935
+#: lexsup.c:2032
#, c-format
msgid " -z nodelete Mark DSO non-deletable at runtime\n"
msgstr ""
-#: lexsup.c:1937
+#: lexsup.c:2034
#, c-format
msgid " -z nodlopen Mark DSO not available to dlopen\n"
msgstr ""
-#: lexsup.c:1939
+#: lexsup.c:2036
#, c-format
msgid " -z nodump Mark DSO not available to dldump\n"
msgstr ""
-#: lexsup.c:1941
+#: lexsup.c:2038
#, c-format
msgid " -z now Mark object non-lazy runtime binding\n"
msgstr ""
-#: lexsup.c:1943
+#: lexsup.c:2040
#, c-format
msgid ""
" -z origin Mark object requiring immediate $ORIGIN\n"
" processing at runtime\n"
msgstr ""
-#: lexsup.c:1947
+#: lexsup.c:2044
#, c-format
msgid " -z relro Create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:1949
+#: lexsup.c:2046
#, c-format
msgid " -z norelro Don't create RELRO program header\n"
msgstr ""
-#: lexsup.c:1952
+#: lexsup.c:2049
#, c-format
msgid " -z relro Create RELRO program header\n"
msgstr ""
-#: lexsup.c:1954
+#: lexsup.c:2051
#, c-format
msgid ""
" -z norelro Don't create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:1958
+#: lexsup.c:2055
#, c-format
msgid ""
" -z separate-code Create separate code program header (default)\n"
msgstr ""
-#: lexsup.c:1960
+#: lexsup.c:2057
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header\n"
msgstr ""
-#: lexsup.c:1963
+#: lexsup.c:2060
#, c-format
msgid " -z separate-code Create separate code program header\n"
msgstr ""
-#: lexsup.c:1965
+#: lexsup.c:2062
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header "
"(default)\n"
msgstr ""
-#: lexsup.c:1968
+#: lexsup.c:2065
#, c-format
msgid ""
" -z common Generate common symbols with STT_COMMON type\n"
msgstr ""
-#: lexsup.c:1970
+#: lexsup.c:2067
#, c-format
msgid ""
" -z nocommon Generate common symbols with STT_OBJECT type\n"
msgstr ""
-#: lexsup.c:1972
+#: lexsup.c:2069
#, c-format
msgid " -z stack-size=SIZE Set size of stack segment\n"
msgstr ""
-#: lexsup.c:1975
+#: lexsup.c:2072
#, c-format
msgid ""
" -z text Treat DT_TEXTREL in output as error (default)\n"
msgstr ""
-#: lexsup.c:1978
+#: lexsup.c:2075
#, c-format
msgid " -z text Treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:1982
+#: lexsup.c:2079
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:1984
+#: lexsup.c:2081
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:1989
+#: lexsup.c:2086
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:1991
+#: lexsup.c:2088
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:1999
+#: lexsup.c:2096
#, c-format
msgid " --build-id[=STYLE] Generate build ID note\n"
msgstr ""
-#: lexsup.c:2001
+#: lexsup.c:2098
#, c-format
msgid ""
" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
" Compress DWARF debug sections using zlib\n"
msgstr ""
-#: lexsup.c:2005
+#: lexsup.c:2102
#, c-format
msgid " Default: zlib-gabi\n"
msgstr ""
-#: lexsup.c:2008
+#: lexsup.c:2105
#, c-format
msgid " Default: none\n"
msgstr ""
-#: lexsup.c:2011
+#: lexsup.c:2108
#, c-format
msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
msgstr ""
-#: lexsup.c:2013
+#: lexsup.c:2110
#, c-format
msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
msgstr ""
-#: lexsup.c:2015
+#: lexsup.c:2112
#, c-format
msgid ""
" -z defs Report unresolved symbols in object files\n"
msgstr ""
-#: lexsup.c:2017
+#: lexsup.c:2114
#, c-format
msgid " -z muldefs Allow multiple definitions\n"
msgstr ""
-#: lexsup.c:2019
+#: lexsup.c:2116
#, c-format
msgid ""
" -z execstack Mark executable as requiring executable stack\n"
msgstr ""
-#: lexsup.c:2021
+#: lexsup.c:2118
#, c-format
msgid ""
" -z noexecstack Mark executable as not requiring executable "
"stack\n"
msgstr ""
-#: lexsup.c:2023
+#: lexsup.c:2120
+#, c-format
+msgid " -z unique-symbol Avoid duplicated local symbol names\n"
+msgstr ""
+
+#: lexsup.c:2122
+#, c-format
+msgid ""
+" -z nounique-symbol Keep duplicated local symbol names (default)\n"
+msgstr ""
+
+#: lexsup.c:2124
#, c-format
msgid ""
" -z globalaudit Mark executable requiring global auditing\n"
msgstr ""
-#: lexsup.c:2030
+#: lexsup.c:2131
#, c-format
msgid ""
" --ld-generated-unwind-info Generate exception handling info for PLT\n"
msgstr ""
-#: lexsup.c:2032
+#: lexsup.c:2133
#, c-format
msgid ""
" --no-ld-generated-unwind-info\n"
@@ -2358,49 +2451,49 @@ msgid ""
"PLT\n"
msgstr ""
-#: lexsup.c:2043
+#: lexsup.c:2144
#, c-format
msgid "ELF emulations:\n"
msgstr ""
-#: lexsup.c:2061
+#: lexsup.c:2162
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:2063
+#: lexsup.c:2164
#, c-format
msgid "Options:\n"
msgstr ""
-#: lexsup.c:2141
+#: lexsup.c:2242
#, c-format
msgid " @FILE"
msgstr ""
-#: lexsup.c:2144
+#: lexsup.c:2245
#, c-format
msgid "Read options from FILE\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:2149
+#: lexsup.c:2250
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:2157
+#: lexsup.c:2258
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:2162
+#: lexsup.c:2263
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:2169
+#: lexsup.c:2270
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -2413,41 +2506,41 @@ msgstr ""
msgid "%X%P: unsupported PEI architecture: %s\n"
msgstr ""
-#: pe-dll.c:825
+#: pe-dll.c:826
msgid "%X%P: cannot export %s: invalid export name\n"
msgstr ""
-#: pe-dll.c:877
+#: pe-dll.c:878
#, c-format
msgid "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:884
+#: pe-dll.c:885
#, c-format
msgid "%P: warning, duplicate EXPORT: %s\n"
msgstr ""
-#: pe-dll.c:991
+#: pe-dll.c:992
#, c-format
msgid "%X%P: cannot export %s: symbol not defined\n"
msgstr ""
-#: pe-dll.c:997
+#: pe-dll.c:998
#, c-format
msgid "%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:1004
+#: pe-dll.c:1005
#, c-format
msgid "%X%P: cannot export %s: symbol not found\n"
msgstr ""
-#: pe-dll.c:1027 eaarch64cloudabi.c:360 eaarch64cloudabib.c:360
+#: pe-dll.c:1028 eaarch64cloudabi.c:360 eaarch64cloudabib.c:360
#: eaarch64elf.c:359 eaarch64elf32.c:359 eaarch64elf32b.c:359
#: eaarch64elfb.c:359 eaarch64fbsd.c:360 eaarch64fbsdb.c:360
#: eaarch64linux.c:360 eaarch64linux32.c:360 eaarch64linux32b.c:360
-#: eaarch64linuxb.c:360 eaix5ppc.c:1432 eaix5ppc.c:1442 eaix5rs6.c:1432
-#: eaix5rs6.c:1442 eaixppc.c:1432 eaixppc.c:1442 eaixrs6.c:1432 eaixrs6.c:1442
+#: eaarch64linuxb.c:360 eaix5ppc.c:1433 eaix5ppc.c:1443 eaix5rs6.c:1433
+#: eaix5rs6.c:1443 eaixppc.c:1433 eaixppc.c:1443 eaixrs6.c:1433 eaixrs6.c:1443
#: earmelf.c:568 earmelf_fbsd.c:568 earmelf_fuchsia.c:569 earmelf_linux.c:569
#: earmelf_linux_eabi.c:569 earmelf_linux_fdpiceabi.c:569 earmelf_nacl.c:569
#: earmelf_nbsd.c:568 earmelf_phoenix.c:569 earmelf_vxworks.c:568
@@ -2462,106 +2555,105 @@ msgstr ""
#: eelf32lmip.c:172 eelf32lr5900.c:172 eelf32lr5900n32.c:172 eelf32lsmip.c:172
#: eelf32ltsmip.c:172 eelf32ltsmip_fbsd.c:172 eelf32ltsmipn32.c:172
#: eelf32ltsmipn32_fbsd.c:172 eelf32metag.c:87 eelf32mipswindiss.c:172
-#: eelf64bmip.c:186 eelf64btsmip.c:172 eelf64btsmip_fbsd.c:172 eelf64lppc.c:117
-#: eelf64ltsmip.c:172 eelf64ltsmip_fbsd.c:172 eelf64ppc.c:117
-#: eelf64ppc_fbsd.c:117 ehppaelf.c:110 ehppalinux.c:110 ehppanbsd.c:110
-#: ehppaobsd.c:110 em68hc11elf.c:170 em68hc11elfb.c:170 em68hc12elf.c:170
-#: em68hc12elfb.c:170 enios2elf.c:92 enios2linux.c:92 eppcmacos.c:1432
-#: eppcmacos.c:1442
+#: eelf64bmip.c:186 eelf64btsmip.c:172 eelf64btsmip_fbsd.c:172 eelf64lppc.c:119
+#: eelf64lppc_fbsd.c:119 eelf64ltsmip.c:172 eelf64ltsmip_fbsd.c:172
+#: eelf64ppc.c:119 eelf64ppc_fbsd.c:119 ehppaelf.c:110 ehppalinux.c:110
+#: ehppanbsd.c:110 ehppaobsd.c:110 em68hc11elf.c:170 em68hc11elfb.c:170
+#: em68hc12elf.c:170 em68hc12elfb.c:170 enios2elf.c:92 enios2linux.c:92
+#: eppcmacos.c:1433 eppcmacos.c:1443
msgid "%F%P: can not create BFD: %E\n"
msgstr ""
-#: pe-dll.c:1041
+#: pe-dll.c:1042
msgid "%X%P: can not create .edata section: %E\n"
msgstr ""
-#: pe-dll.c:1055
+#: pe-dll.c:1056
msgid "%X%P: can not create .reloc section: %E\n"
msgstr ""
-#: pe-dll.c:1116
+#: pe-dll.c:1117
#, c-format
msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
msgstr ""
-#: pe-dll.c:1152
+#: pe-dll.c:1153
#, c-format
msgid "%X%P: error: export ordinal too large: %d\n"
msgstr ""
-#: pe-dll.c:1475
+#: pe-dll.c:1476
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr ""
-#: pe-dll.c:1481
+#: pe-dll.c:1482
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import "
"specified on the command line; this should work unless it involves constant "
"data structures referencing symbols from auto-imported DLLs\n"
msgstr ""
-#. Huh? Shouldn't happen, but punt if it does.
-#: pe-dll.c:1550
+#: pe-dll.c:1553
msgid "%P: zero vma section reloc detected: `%s' #%d f=%d\n"
msgstr ""
-#: pe-dll.c:1666
+#: pe-dll.c:1670
#, c-format
msgid "%X%P: error: %d-bit reloc in dll\n"
msgstr ""
-#: pe-dll.c:1794
+#: pe-dll.c:1798
#, c-format
msgid "%P: can't open output def file %s\n"
msgstr ""
-#: pe-dll.c:1945
+#: pe-dll.c:1949
#, c-format
msgid "; no contents available\n"
msgstr ""
-#: pe-dll.c:2804
+#: pe-dll.c:2808
msgid ""
"%X%P: %C: variable '%pT' can't be auto-imported; please read the "
"documentation for ld's --enable-auto-import for details\n"
msgstr ""
-#: pe-dll.c:2831
+#: pe-dll.c:2835
#, c-format
msgid "%X%P: can't open .lib file: %s\n"
msgstr ""
-#: pe-dll.c:2837
+#: pe-dll.c:2841
#, c-format
msgid "Creating library file: %s\n"
msgstr ""
-#: pe-dll.c:2867
+#: pe-dll.c:2871
msgid "%X%P: bfd_openr %s: %E\n"
msgstr ""
-#: pe-dll.c:2879
+#: pe-dll.c:2883
msgid "%X%P: %s(%s): can't find member in non-archive file"
msgstr ""
-#: pe-dll.c:2893
+#: pe-dll.c:2897
msgid "%X%P: %s(%s): can't find member in archive"
msgstr ""
-#: pe-dll.c:3156
+#: pe-dll.c:3160
msgid "%X%P: add symbols %s: %E\n"
msgstr ""
-#: pe-dll.c:3343
+#: pe-dll.c:3347
msgid "%X%P: open %s: %E\n"
msgstr ""
-#: pe-dll.c:3352
+#: pe-dll.c:3356
msgid "%X%P: %s: this doesn't appear to be a DLL\n"
msgstr ""
-#: pe-dll.c:3557
+#: pe-dll.c:3561
msgid "%X%P: error: can't use long section names on this arch\n"
msgstr ""
@@ -2667,11 +2759,11 @@ msgstr ""
#: eelf32lr5900.c:205 eelf32lr5900n32.c:205 eelf32lsmip.c:205
#: eelf32ltsmip.c:205 eelf32ltsmip_fbsd.c:205 eelf32ltsmipn32.c:205
#: eelf32ltsmipn32_fbsd.c:205 eelf32metag.c:206 eelf32mipswindiss.c:205
-#: eelf64bmip.c:219 eelf64btsmip.c:205 eelf64btsmip_fbsd.c:205 eelf64lppc.c:470
-#: eelf64ltsmip.c:205 eelf64ltsmip_fbsd.c:205 eelf64ppc.c:470
-#: eelf64ppc_fbsd.c:470 ehppaelf.c:230 ehppalinux.c:230 ehppanbsd.c:230
-#: ehppaobsd.c:230 em68hc11elf.c:295 em68hc11elfb.c:295 em68hc12elf.c:295
-#: em68hc12elfb.c:295 enios2elf.c:223 enios2linux.c:223
+#: eelf64bmip.c:219 eelf64btsmip.c:205 eelf64btsmip_fbsd.c:205 eelf64lppc.c:482
+#: eelf64lppc_fbsd.c:482 eelf64ltsmip.c:205 eelf64ltsmip_fbsd.c:205
+#: eelf64ppc.c:482 eelf64ppc_fbsd.c:482 ehppaelf.c:230 ehppalinux.c:230
+#: ehppanbsd.c:230 ehppaobsd.c:230 em68hc11elf.c:295 em68hc11elfb.c:295
+#: em68hc12elf.c:295 em68hc12elfb.c:295 enios2elf.c:223 enios2linux.c:223
msgid "%X%P: can not make stub section: %E\n"
msgstr ""
@@ -2720,29 +2812,29 @@ msgstr ""
#: eelf64_sparc.c:97 eelf64_sparc_fbsd.c:97 eelf64_sparc_sol2.c:228
#: eelf64alpha.c:180 eelf64alpha_fbsd.c:180 eelf64alpha_nbsd.c:180
#: eelf64bmip.c:307 eelf64bpf.c:96 eelf64btsmip.c:293 eelf64btsmip_fbsd.c:293
-#: eelf64hppa.c:96 eelf64lppc.c:580 eelf64lriscv.c:89 eelf64lriscv_lp64.c:89
-#: eelf64lriscv_lp64f.c:89 eelf64ltsmip.c:293 eelf64ltsmip_fbsd.c:293
-#: eelf64mmix.c:207 eelf64ppc.c:580 eelf64ppc_fbsd.c:580 eelf64rdos.c:112
-#: eelf64tilegx.c:97 eelf64tilegx_be.c:97 eelf_i386.c:121 eelf_i386_be.c:120
-#: eelf_i386_fbsd.c:121 eelf_i386_ldso.c:121 eelf_i386_sol2.c:252
-#: eelf_i386_vxworks.c:150 eelf_iamcu.c:121 eelf_k1om.c:121
-#: eelf_k1om_fbsd.c:121 eelf_l1om.c:121 eelf_l1om_fbsd.c:121 eelf_s390.c:97
-#: eelf_x86_64.c:121 eelf_x86_64_cloudabi.c:121 eelf_x86_64_fbsd.c:121
-#: eelf_x86_64_sol2.c:252 eh8300elf.c:96 eh8300elf_linux.c:96 eh8300helf.c:96
-#: eh8300helf_linux.c:96 eh8300hnelf.c:96 eh8300self.c:96 eh8300self_linux.c:96
-#: eh8300snelf.c:96 eh8300sxelf.c:96 eh8300sxelf_linux.c:96 eh8300sxnelf.c:96
-#: ehppa64linux.c:96 ehppaelf.c:280 ehppalinux.c:280 ehppanbsd.c:280
-#: ehppaobsd.c:280 ei386lynx.c:111 ei386moss.c:111 ei386nto.c:111 em32relf.c:96
-#: em32relf_linux.c:96 em32rlelf.c:96 em32rlelf_linux.c:96 em68hc11elf.c:373
-#: em68hc11elfb.c:373 em68hc12elf.c:373 em68hc12elfb.c:373 em68kelf.c:248
-#: em68kelfnbsd.c:248 emn10300.c:96 ends32belf.c:204 ends32belf16m.c:204
-#: ends32belf_linux.c:204 ends32elf.c:204 ends32elf16m.c:204
-#: ends32elf_linux.c:204 enios2elf.c:273 enios2linux.c:273 eppclynx.c:317
-#: epruelf.c:117 escore3_elf.c:117 escore7_elf.c:117 eshelf.c:96 eshelf_fd.c:97
-#: eshelf_linux.c:97 eshelf_nbsd.c:96 eshelf_nto.c:96 eshelf_uclinux.c:96
-#: eshelf_vxworks.c:125 eshlelf.c:96 eshlelf_fd.c:97 eshlelf_linux.c:97
-#: eshlelf_nbsd.c:96 eshlelf_nto.c:96 eshlelf_vxworks.c:125 ev850.c:143
-#: ev850_rh850.c:143
+#: eelf64hppa.c:96 eelf64lppc.c:592 eelf64lppc_fbsd.c:592 eelf64lriscv.c:89
+#: eelf64lriscv_lp64.c:89 eelf64lriscv_lp64f.c:89 eelf64ltsmip.c:293
+#: eelf64ltsmip_fbsd.c:293 eelf64mmix.c:207 eelf64ppc.c:592
+#: eelf64ppc_fbsd.c:592 eelf64rdos.c:112 eelf64tilegx.c:97 eelf64tilegx_be.c:97
+#: eelf_i386.c:121 eelf_i386_be.c:120 eelf_i386_fbsd.c:121 eelf_i386_ldso.c:121
+#: eelf_i386_sol2.c:252 eelf_i386_vxworks.c:150 eelf_iamcu.c:121
+#: eelf_k1om.c:121 eelf_k1om_fbsd.c:121 eelf_l1om.c:121 eelf_l1om_fbsd.c:121
+#: eelf_s390.c:97 eelf_x86_64.c:121 eelf_x86_64_cloudabi.c:121
+#: eelf_x86_64_fbsd.c:121 eelf_x86_64_sol2.c:252 eh8300elf.c:96
+#: eh8300elf_linux.c:96 eh8300helf.c:96 eh8300helf_linux.c:96 eh8300hnelf.c:96
+#: eh8300self.c:96 eh8300self_linux.c:96 eh8300snelf.c:96 eh8300sxelf.c:96
+#: eh8300sxelf_linux.c:96 eh8300sxnelf.c:96 ehppa64linux.c:96 ehppaelf.c:280
+#: ehppalinux.c:280 ehppanbsd.c:280 ehppaobsd.c:280 ei386lynx.c:111
+#: ei386moss.c:111 ei386nto.c:111 em32relf.c:96 em32relf_linux.c:96
+#: em32rlelf.c:96 em32rlelf_linux.c:96 em68hc11elf.c:373 em68hc11elfb.c:373
+#: em68hc12elf.c:373 em68hc12elfb.c:373 em68kelf.c:248 em68kelfnbsd.c:248
+#: emn10300.c:96 ends32belf.c:204 ends32belf16m.c:204 ends32belf_linux.c:204
+#: ends32elf.c:204 ends32elf16m.c:204 ends32elf_linux.c:204 enios2elf.c:273
+#: enios2linux.c:273 epruelf.c:117 escore3_elf.c:117 escore7_elf.c:117
+#: eshelf.c:96 eshelf_fd.c:97 eshelf_linux.c:97 eshelf_nbsd.c:96
+#: eshelf_nto.c:96 eshelf_uclinux.c:96 eshelf_vxworks.c:125 eshlelf.c:96
+#: eshlelf_fd.c:97 eshlelf_linux.c:97 eshlelf_nbsd.c:96 eshlelf_nto.c:96
+#: eshlelf_vxworks.c:125 ev850.c:143 ev850_rh850.c:143
msgid "%X%P: .eh_frame/.stab edit: %E\n"
msgstr ""
@@ -2778,9 +2870,10 @@ msgstr ""
#: eavrxmega2.c:192 eavrxmega3.c:129 eavrxmega3.c:192 eavrxmega4.c:129
#: eavrxmega4.c:192 eavrxmega5.c:129 eavrxmega5.c:192 eavrxmega6.c:129
#: eavrxmega6.c:192 eavrxmega7.c:129 eavrxmega7.c:192 eelf32metag.c:271
-#: eelf32metag.c:285 eelf64lppc.c:523 eelf64lppc.c:542 eelf64lppc.c:569
-#: eelf64ppc.c:523 eelf64ppc.c:542 eelf64ppc.c:569 eelf64ppc_fbsd.c:523
-#: eelf64ppc_fbsd.c:542 eelf64ppc_fbsd.c:569 ehppaelf.c:295 ehppaelf.c:310
+#: eelf32metag.c:285 eelf64lppc.c:535 eelf64lppc.c:554 eelf64lppc.c:581
+#: eelf64lppc_fbsd.c:535 eelf64lppc_fbsd.c:554 eelf64lppc_fbsd.c:581
+#: eelf64ppc.c:535 eelf64ppc.c:554 eelf64ppc.c:581 eelf64ppc_fbsd.c:535
+#: eelf64ppc_fbsd.c:554 eelf64ppc_fbsd.c:581 ehppaelf.c:295 ehppaelf.c:310
#: ehppalinux.c:295 ehppalinux.c:310 ehppanbsd.c:295 ehppanbsd.c:310
#: ehppaobsd.c:295 ehppaobsd.c:310 em68hc11elf.c:90 em68hc11elf.c:100
#: em68hc11elf.c:317 em68hc11elfb.c:90 em68hc11elfb.c:100 em68hc11elfb.c:317
@@ -2804,10 +2897,10 @@ msgstr ""
#: eavr3.c:201 eavr31.c:201 eavr35.c:201 eavr4.c:201 eavr5.c:201 eavr51.c:201
#: eavr6.c:201 eavrtiny.c:201 eavrxmega1.c:201 eavrxmega2.c:201
#: eavrxmega3.c:201 eavrxmega4.c:201 eavrxmega5.c:201 eavrxmega6.c:201
-#: eavrxmega7.c:201 eelf32metag.c:300 eelf64lppc.c:619 eelf64ppc.c:619
-#: eelf64ppc_fbsd.c:619 ehppaelf.c:332 ehppalinux.c:332 ehppanbsd.c:332
-#: ehppaobsd.c:332 em68hc11elf.c:321 em68hc11elfb.c:321 em68hc12elf.c:321
-#: em68hc12elfb.c:321 enios2elf.c:318 enios2linux.c:318
+#: eavrxmega7.c:201 eelf32metag.c:300 eelf64lppc.c:631 eelf64lppc_fbsd.c:631
+#: eelf64ppc.c:631 eelf64ppc_fbsd.c:631 ehppaelf.c:332 ehppalinux.c:332
+#: ehppanbsd.c:332 ehppaobsd.c:332 em68hc11elf.c:321 em68hc11elfb.c:321
+#: em68hc12elf.c:321 em68hc12elfb.c:321 enios2elf.c:318 enios2linux.c:318
msgid "%X%P: can not build stubs: %E\n"
msgstr ""
@@ -2824,10 +2917,6 @@ msgstr ""
#. hence we do not support linking and changing output formats at the
#. same time. Use a link followed by objcopy to change output formats.
#. Check the output target is nds32.
-#. The arm backend needs special fields in the output hash structure.
-#. These will only be created if the output format is an arm format,
-#. hence we do not support linking and changing output formats at the
-#. same time. Use a link followed by objcopy to change output formats.
#. The score backend needs special fields in the output hash structure.
#. These will only be created if the output format is an score format,
#. hence we do not support linking and changing output formats at the
@@ -2844,22 +2933,22 @@ msgstr ""
#: eaarch64elf32.c:333 eaarch64elf32b.c:333 eaarch64elfb.c:333
#: eaarch64fbsd.c:334 eaarch64fbsdb.c:334 eaarch64linux.c:334
#: eaarch64linux32.c:334 eaarch64linux32b.c:334 eaarch64linuxb.c:334
-#: earm_wince_pe.c:1377 earmelf.c:540 earmelf_fbsd.c:540 earmelf_fuchsia.c:541
+#: earm_wince_pe.c:1426 earmelf.c:540 earmelf_fbsd.c:540 earmelf_fuchsia.c:541
#: earmelf_linux.c:541 earmelf_linux_eabi.c:541 earmelf_linux_fdpiceabi.c:541
#: earmelf_nacl.c:541 earmelf_nbsd.c:540 earmelf_phoenix.c:541
#: earmelf_vxworks.c:540 earmelfb.c:540 earmelfb_fbsd.c:540
#: earmelfb_fuchsia.c:541 earmelfb_linux.c:541 earmelfb_linux_eabi.c:541
#: earmelfb_linux_fdpiceabi.c:541 earmelfb_nacl.c:541 earmelfb_nbsd.c:540
-#: earmnto.c:540 earmpe.c:1377 earmsymbian.c:540 eavr1.c:142 eavr2.c:142
+#: earmnto.c:540 earmpe.c:1426 earmsymbian.c:540 eavr1.c:142 eavr2.c:142
#: eavr25.c:142 eavr3.c:142 eavr31.c:142 eavr35.c:142 eavr4.c:142 eavr5.c:142
#: eavr51.c:142 eavr6.c:142 eavrtiny.c:142 eavrxmega1.c:142 eavrxmega2.c:142
#: eavrxmega3.c:142 eavrxmega4.c:142 eavrxmega5.c:142 eavrxmega6.c:142
#: eavrxmega7.c:142 eelf32lriscv.c:110 eelf32lriscv_ilp32.c:110
#: eelf32lriscv_ilp32f.c:110 eelf64lriscv.c:110 eelf64lriscv_lp64.c:110
-#: eelf64lriscv_lp64f.c:110 ei386pe.c:1377 ei386pe_posix.c:1377 emcorepe.c:1377
+#: eelf64lriscv_lp64f.c:110 ei386pe.c:1426 ei386pe_posix.c:1426 emcorepe.c:1426
#: ends32belf.c:74 ends32belf16m.c:74 ends32belf_linux.c:74 ends32elf.c:74
-#: ends32elf16m.c:74 ends32elf_linux.c:74 eppcpe.c:1377 escore3_elf.c:75
-#: escore7_elf.c:75 eshpe.c:1377 ev850.c:91 ev850_rh850.c:91
+#: ends32elf16m.c:74 ends32elf_linux.c:74 escore3_elf.c:75 escore7_elf.c:75
+#: eshpe.c:1426 ev850.c:91 ev850_rh850.c:91
msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
msgstr ""
@@ -2910,10 +2999,11 @@ msgstr ""
#: eelf64_sparc_fbsd.c:258 eelf64_sparc_sol2.c:389 eelf64alpha.c:351
#: eelf64alpha_fbsd.c:351 eelf64alpha_nbsd.c:351 eelf64bmip.c:487
#: eelf64bpf.c:186 eelf64btsmip.c:473 eelf64btsmip_fbsd.c:473 eelf64hppa.c:202
-#: eelf64lppc.c:952 eelf64lriscv.c:312 eelf64lriscv_lp64.c:312
-#: eelf64lriscv_lp64f.c:312 eelf64ltsmip.c:473 eelf64ltsmip_fbsd.c:473
-#: eelf64mmix.c:4009 eelf64ppc.c:952 eelf64ppc_fbsd.c:952 eelf64rdos.c:283
-#: eelf64tilegx.c:258 eelf64tilegx_be.c:258 eelf_i386.c:4817 eelf_i386_be.c:256
+#: eelf64lppc.c:970 eelf64lppc_fbsd.c:970 eelf64lriscv.c:312
+#: eelf64lriscv_lp64.c:312 eelf64lriscv_lp64f.c:312 eelf64ltsmip.c:473
+#: eelf64ltsmip_fbsd.c:473 eelf64mmix.c:4009 eelf64ppc.c:970
+#: eelf64ppc_fbsd.c:970 eelf64rdos.c:283 eelf64tilegx.c:258
+#: eelf64tilegx_be.c:258 eelf_i386.c:4817 eelf_i386_be.c:256
#: eelf_i386_fbsd.c:292 eelf_i386_ldso.c:267 eelf_i386_sol2.c:423
#: eelf_i386_vxworks.c:319 eelf_iamcu.c:4795 eelf_k1om.c:5151
#: eelf_k1om_fbsd.c:5131 eelf_l1om.c:5151 eelf_l1om_fbsd.c:5131 eelf_s390.c:258
@@ -2928,11 +3018,11 @@ msgstr ""
#: em68hc12elf.c:471 em68hc12elfb.c:471 em68kelf.c:415 em68kelfnbsd.c:415
#: emn10300.c:232 ends32belf.c:322 ends32belf16m.c:322 ends32belf_linux.c:345
#: ends32elf.c:322 ends32elf16m.c:322 ends32elf_linux.c:345 enios2elf.c:488
-#: [...]
[diff truncated at 100000 bytes]
More information about the Binutils-cvs
mailing list