When choosing the target for a particular endianness, do nothing if the target

is not supported.
This commit is contained in:
Nick Clifton
2000-08-25 20:44:09 +00:00
parent dcb0bd0eef
commit c13b1b775b
2 changed files with 36 additions and 25 deletions

View File

@ -1,3 +1,9 @@
2000-08-25 Nick Clifton <nickc@redhat.com>
* ldlang.c (open_output): When choosing the target for a
particular endianness, do nothing if the target is not
supported.
2000-08-25 H.J. Lu <hjl@gnu.org> 2000-08-25 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't

View File

@ -1728,6 +1728,9 @@ open_output (name)
/* Get the chosen target. */ /* Get the chosen target. */
target = bfd_search_for_target (get_target, (void *) output_target); target = bfd_search_for_target (get_target, (void *) output_target);
/* If the target is not supported, we cannot do anything. */
if (target != NULL)
{
if (command_line.endian == ENDIAN_BIG) if (command_line.endian == ENDIAN_BIG)
desired_endian = BFD_ENDIAN_BIG; desired_endian = BFD_ENDIAN_BIG;
else else
@ -1749,7 +1752,8 @@ open_output (name)
target, but which has the desired endian characteristic. */ target, but which has the desired endian characteristic. */
(void) bfd_search_for_target (closest_target_match, (void *) target); (void) bfd_search_for_target (closest_target_match, (void *) target);
/* Oh dear - we could not find any targets that satisfy our requirements. */ /* Oh dear - we could not find any targets that satisfy our
requirements. */
if (winner == NULL) if (winner == NULL)
einfo (_("%P: warning: could not find any targets that match endianness requirement\n")); einfo (_("%P: warning: could not find any targets that match endianness requirement\n"));
else else
@ -1757,6 +1761,7 @@ open_output (name)
} }
} }
} }
}
output = bfd_openw (name, output_target); output = bfd_openw (name, output_target);
@ -3162,7 +3167,8 @@ lang_do_assignments (s, output_section_statement, fill, dot)
if (os->bfd_section) if (os->bfd_section)
{ {
os->bfd_section->lma os->bfd_section->lma
= exp_get_abs_int(os->load_base, 0,"load base", lang_final_phase_enum); = exp_get_abs_int(os->load_base, 0,"load base",
lang_final_phase_enum);
} }
} }
} }
@ -3873,7 +3879,6 @@ lang_enter_output_section_statement (output_section_statement_name,
return os; return os;
} }
void void
lang_final () lang_final ()
{ {