* elf32-rx.c (rx_elf_object_p): Add more checks for "scanning" to
avoid using the special non-swapping target when not explicitly requested.
This commit is contained in:
parent
c52bd2321a
commit
fc87b9e825
2 changed files with 17 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-11-22 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* elf32-rx.c (rx_elf_object_p): Add more checks for "scanning" to
|
||||
avoid using the special non-swapping target when not explicitly
|
||||
requested.
|
||||
|
||||
2011-11-22 Daniel Calcoen <Daniel.Calcoen@cern.ch>
|
||||
|
||||
* elf32-rx.c (rx_elf_object_p): Correct typo: lma->vma.
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
endian-swap we would otherwise get. We check for this in
|
||||
rx_elf_object_p(). */
|
||||
const bfd_target bfd_elf32_rx_be_ns_vec;
|
||||
const bfd_target bfd_elf32_rx_be_vec;
|
||||
|
||||
#ifdef DEBUG
|
||||
char * rx_get_reloc (long);
|
||||
|
@ -3028,6 +3029,7 @@ rx_elf_object_p (bfd * abfd)
|
|||
Elf_Internal_Phdr *phdr = elf_tdata (abfd)->phdr;
|
||||
int nphdrs = elf_elfheader (abfd)->e_phnum;
|
||||
sec_ptr bsec;
|
||||
static int saw_be = FALSE;
|
||||
|
||||
/* We never want to automatically choose the non-swapping big-endian
|
||||
target. The user can only get that explicitly, such as with -I
|
||||
|
@ -3036,6 +3038,15 @@ rx_elf_object_p (bfd * abfd)
|
|||
&& abfd->target_defaulted)
|
||||
return FALSE;
|
||||
|
||||
/* BFD->target_defaulted is not set to TRUE when a target is chosen
|
||||
as a fallback, so we check for "scanning" to know when to stop
|
||||
using the non-swapping target. */
|
||||
if (abfd->xvec == &bfd_elf32_rx_be_ns_vec
|
||||
&& saw_be)
|
||||
return FALSE;
|
||||
if (abfd->xvec == &bfd_elf32_rx_be_vec)
|
||||
saw_be = TRUE;
|
||||
|
||||
bfd_default_set_arch_mach (abfd, bfd_arch_rx,
|
||||
elf32_rx_machine (abfd));
|
||||
|
||||
|
|
Loading…
Reference in a new issue