Allow an IR object with unknown architecture

An IR object may have an unknown architecture.  But it is compatible
with other architecture.

	PR ld/23600
	* archures.c (bfd_arch_get_compatible): Allow an IR object with
	unknown architecture.
This commit is contained in:
H.J. Lu
2018-08-31 19:56:25 -07:00
parent d431d6279b
commit b986869b66
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,9 @@
018-08-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/23600
* archures.c (bfd_arch_get_compatible): Allow an IR object with
unknown architecture.
2018-08-31 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (num_relocs_for_offset): New function.

View File

@ -896,12 +896,13 @@ bfd_arch_get_compatible (const bfd *abfd,
/* Otherwise architecture-specific code has to decide. */
return abfd->arch_info->compatible (abfd->arch_info, bbfd->arch_info);
/* We can allow an unknown architecture if accept_unknowns
is true, or if the target is the "binary" format, which
has an unknown architecture. Since the binary format can
/* We can allow an unknown architecture if accept_unknowns is true,
if UBFD is an IR object, or if the target is the "binary" format,
which has an unknown architecture. Since the binary format can
only be set by explicit request from the user, it is safe
to assume that they know what they are doing. */
if (accept_unknowns
|| ubfd->plugin_format == bfd_plugin_yes
|| strcmp (bfd_get_target (ubfd), "binary") == 0)
return kbfd->arch_info;
return NULL;