aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/plugin.c6
2 files changed, 11 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 0f622d0..576e3dc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2015-12-10 Kwok Cheung Yeung <kcy@codesourcery.com>
+
+ PR ld/18199
+ * plugin.c (plugin_get_ir_dummy_bfd): Use srctemplate as the
+ template when calling bfd_create if it does not use the BFD
+ plugin target vector.
+
2015-12-02 Alan Modra <amodra@gmail.com>
* configure.ac (--enable-initfini-array): Remove run test. Default
diff --git a/ld/plugin.c b/ld/plugin.c
index 8e53255..b0e2a5f 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -295,16 +295,18 @@ static bfd *
plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate)
{
bfd *abfd;
+ bfd_boolean bfd_plugin_target;
bfd_use_reserved_id = 1;
+ bfd_plugin_target = bfd_plugin_target_p (srctemplate->xvec);
abfd = bfd_create (concat (name, IRONLY_SUFFIX, (const char *) NULL),
- link_info.output_bfd);
+ bfd_plugin_target ? link_info.output_bfd : srctemplate);
if (abfd != NULL)
{
abfd->flags |= BFD_LINKER_CREATED | BFD_PLUGIN;
if (!bfd_make_writable (abfd))
goto report_error;
- if (! bfd_plugin_target_p (srctemplate->xvec))
+ if (!bfd_plugin_target)
{
bfd_set_arch_info (abfd, bfd_get_arch_info (srctemplate));
bfd_set_gp_size (abfd, bfd_get_gp_size (srctemplate));