MIPS/opcodes: Only call `bfd_mips_elf_get_abiflags' if BFD64
Complement commit 5e7fc731f8
("MIPS/opcodes: Also set disassembler's
ASE flags from ELF structures") and fix an `--enable-targets=all' GDB
build regression on 32-bit hosts where the MIPS target is a secondary:
../opcodes/libopcodes.a(mips-dis.o): In function `set_default_mips_dis_options':
mips-dis.c:(.text+0x906): undefined reference to `bfd_mips_elf_get_abiflags'
collect2: error: ld returned 1 exit status
make[2]: *** [gdb] Error 1
by avoiding making a call to the `bfd_mips_elf_get_abiflags' function,
which is not available, because there is no MIPS/ELF BFD included in
32-bit BFD builds. This call is only made from a conditional code block
guarded by a check against `bfd_target_elf_flavour', which is dead in
such a configuration, however cannot be optimized away by the compiler.
Also some other MIPS BFDs may be available, such as a.out, ECOFF or PE,
so the disassembler has to remain functional.
opcodes/
* mips-dis.c (set_default_mips_dis_options) [BFD64]: Only call
`bfd_mips_elf_get_abiflags' here.
This commit is contained in:
parent
602a81860a
commit
4df995c771
2 changed files with 13 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2016-12-19 Maciej W. Rozycki <macro@imgtec.com>
|
||||||
|
|
||||||
|
* mips-dis.c (set_default_mips_dis_options) [BFD64]: Only call
|
||||||
|
`bfd_mips_elf_get_abiflags' here.
|
||||||
|
|
||||||
2016-12-16 Nick Clifton <nickc@redhat.com>
|
2016-12-16 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* arm-dis.c (print_insn_thumb32): Fix compile time warning
|
* arm-dis.c (print_insn_thumb32): Fix compile time warning
|
||||||
|
|
|
@ -846,8 +846,15 @@ set_default_mips_dis_options (struct disassemble_info *info)
|
||||||
{
|
{
|
||||||
struct bfd *abfd = info->section->owner;
|
struct bfd *abfd = info->section->owner;
|
||||||
Elf_Internal_Ehdr *header = elf_elfheader (abfd);
|
Elf_Internal_Ehdr *header = elf_elfheader (abfd);
|
||||||
Elf_Internal_ABIFlags_v0 *abiflags = bfd_mips_elf_get_abiflags (abfd);
|
Elf_Internal_ABIFlags_v0 *abiflags = NULL;
|
||||||
|
|
||||||
|
/* We won't ever get here if !BFD64, because we won't then have
|
||||||
|
a MIPS/ELF BFD, however we need to guard against a link error
|
||||||
|
in a `--enable-targets=...' configuration with a 32-bit host,
|
||||||
|
where the MIPS target is a secondary. */
|
||||||
|
#ifdef BFD64
|
||||||
|
abiflags = bfd_mips_elf_get_abiflags (abfd);
|
||||||
|
#endif
|
||||||
/* If an ELF "newabi" binary, use the n32/(n)64 GPR names. */
|
/* If an ELF "newabi" binary, use the n32/(n)64 GPR names. */
|
||||||
if (is_newabi (header))
|
if (is_newabi (header))
|
||||||
mips_gpr_names = mips_gpr_names_newabi;
|
mips_gpr_names = mips_gpr_names_newabi;
|
||||||
|
|
Loading…
Add table
Reference in a new issue