diff --git a/ld/ChangeLog b/ld/ChangeLog index 0f622d0e094..576e3dcf3ca 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2015-12-10 Kwok Cheung Yeung + + 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 * configure.ac (--enable-initfini-array): Remove run test. Default diff --git a/ld/plugin.c b/ld/plugin.c index 8e53255ecd4..b0e2a5f7a70 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));