mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
PR binutils/1486
binutils/: * configure.in: Don't define DISASSEMBLER_NEEDS_RELOCS. * configure: Regenerate. * objdump.c (struct objdump_disasm_info): Don't check for DISASSEMBLER_NEEDS_RELOCS. (objdump_print_addr): Likewise. (disassemble_bytes): Check disassembler_needs_relocs from disassemble_info at run-time instead of DISASSEMBLER_NEEDS_RELOCS at compile-time. (disassemble_section): Likewise. (disassemble_data): Initialize it. include/: * dis-asm.h (struct disassemble_info): Add disassembler_needs_relocs. objdump/: * disassemble.c (disassemble_init_for_target): Set disassembler_needs_relocs for bfd_arch_arm.
This commit is contained in:
parent
6dd55cb711
commit
d99b646536
@ -1,3 +1,17 @@
|
||||
2006-01-17 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
PR binutils/1486
|
||||
* configure.in: Don't define DISASSEMBLER_NEEDS_RELOCS.
|
||||
* configure: Regenerate.
|
||||
* objdump.c (struct objdump_disasm_info): Don't check for
|
||||
DISASSEMBLER_NEEDS_RELOCS.
|
||||
(objdump_print_addr): Likewise.
|
||||
(disassemble_bytes): Check disassembler_needs_relocs from
|
||||
disassemble_info at run-time instead of DISASSEMBLER_NEEDS_RELOCS
|
||||
at compile-time.
|
||||
(disassemble_section): Likewise.
|
||||
(disassemble_data): Initialize it.
|
||||
|
||||
2006-01-11 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* objcopy.c (copy_object): Fix thinko.
|
||||
|
3
binutils/configure
vendored
3
binutils/configure
vendored
@ -10474,9 +10474,6 @@ do
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm*-* | xscale-* | strongarm-* | d10v-*)
|
||||
OBJDUMP_DEFS="-DDISASSEMBLER_NEEDS_RELOCS"
|
||||
;;
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
|
@ -250,9 +250,6 @@ changequote([,])dnl
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm*-* | xscale-* | strongarm-* | d10v-*)
|
||||
OBJDUMP_DEFS="-DDISASSEMBLER_NEEDS_RELOCS"
|
||||
;;
|
||||
changequote(,)dnl
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
|
||||
changequote([,])dnl
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* objdump.c -- dump information about an object file.
|
||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
2000, 2001, 2002, 2003, 2004, 2005
|
||||
2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Binutils.
|
||||
@ -130,9 +130,7 @@ struct objdump_disasm_info
|
||||
arelent ** dynrelbuf;
|
||||
long dynrelcount;
|
||||
disassembler_ftype disassemble_fn;
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
arelent * reloc;
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Architecture to disassemble for, or default if NULL. */
|
||||
@ -866,9 +864,7 @@ objdump_print_addr (bfd_vma vma,
|
||||
{
|
||||
struct objdump_disasm_info *aux;
|
||||
asymbol *sym = NULL; /* Initialize to avoid compiler warning. */
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
bfd_boolean skip_find = FALSE;
|
||||
#endif
|
||||
|
||||
if (sorted_symcount < 1)
|
||||
{
|
||||
@ -879,7 +875,6 @@ objdump_print_addr (bfd_vma vma,
|
||||
|
||||
aux = (struct objdump_disasm_info *) info->application_data;
|
||||
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
if (aux->reloc != NULL
|
||||
&& aux->reloc->sym_ptr_ptr != NULL
|
||||
&& * aux->reloc->sym_ptr_ptr != NULL)
|
||||
@ -894,7 +889,6 @@ objdump_print_addr (bfd_vma vma,
|
||||
}
|
||||
|
||||
if (!skip_find)
|
||||
#endif
|
||||
sym = find_symbol_for_address (vma, info, NULL);
|
||||
|
||||
objdump_print_addr_with_sym (aux->abfd, aux->sec, sym, vma, info,
|
||||
@ -1319,12 +1313,10 @@ disassemble_bytes (struct disassemble_info * info,
|
||||
{
|
||||
bfd_vma z;
|
||||
bfd_boolean need_nl = FALSE;
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
int previous_octets;
|
||||
|
||||
/* Remember the length of the previous instruction. */
|
||||
previous_octets = octets;
|
||||
#endif
|
||||
octets = 0;
|
||||
|
||||
/* If we see more than SKIP_ZEROES octets of zeroes, we just
|
||||
@ -1389,8 +1381,8 @@ disassemble_bytes (struct disassemble_info * info,
|
||||
info->bytes_per_chunk = 0;
|
||||
info->flags = 0;
|
||||
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
if (*relppp < relppend)
|
||||
if (info->disassembler_needs_relocs
|
||||
&& *relppp < relppend)
|
||||
{
|
||||
bfd_signed_vma distance_to_rel;
|
||||
|
||||
@ -1420,7 +1412,7 @@ disassemble_bytes (struct disassemble_info * info,
|
||||
else
|
||||
aux->reloc = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
octets = (*disassemble_fn) (section->vma + addr_offset, info);
|
||||
info->fprintf_func = (fprintf_ftype) fprintf;
|
||||
info->stream = stdout;
|
||||
@ -1672,10 +1664,7 @@ disassemble_section (bfd *abfd, asection *section, void *info)
|
||||
rel_offset = 0;
|
||||
|
||||
if ((section->flags & SEC_RELOC) != 0
|
||||
#ifndef DISASSEMBLER_NEEDS_RELOCS
|
||||
&& dump_reloc_info
|
||||
#endif
|
||||
)
|
||||
&& (dump_reloc_info || pinfo->disassembler_needs_relocs))
|
||||
{
|
||||
long relsize;
|
||||
|
||||
@ -1882,9 +1871,7 @@ disassemble_data (bfd *abfd)
|
||||
aux.require_sec = FALSE;
|
||||
aux.dynrelbuf = NULL;
|
||||
aux.dynrelcount = 0;
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
aux.reloc = NULL;
|
||||
#endif
|
||||
|
||||
disasm_info.print_address_func = objdump_print_address;
|
||||
disasm_info.symbol_at_address_func = objdump_symbol_at_address;
|
||||
@ -1926,6 +1913,7 @@ disassemble_data (bfd *abfd)
|
||||
disasm_info.octets_per_byte = bfd_octets_per_byte (abfd);
|
||||
disasm_info.skip_zeroes = DEFAULT_SKIP_ZEROES;
|
||||
disasm_info.skip_zeroes_at_end = DEFAULT_SKIP_ZEROES_AT_END;
|
||||
disasm_info.disassembler_needs_relocs = FALSE;
|
||||
|
||||
if (bfd_big_endian (abfd))
|
||||
disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_BIG;
|
||||
|
@ -1,3 +1,9 @@
|
||||
2006-01-17 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
PR binutils/1486
|
||||
* dis-asm.h (struct disassemble_info): Add
|
||||
disassembler_needs_relocs.
|
||||
|
||||
2006-01-09 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define.
|
||||
|
@ -172,6 +172,9 @@ typedef struct disassemble_info {
|
||||
alignment. */
|
||||
unsigned int skip_zeroes_at_end;
|
||||
|
||||
/* Whether the disassembler always needs the relocations. */
|
||||
bfd_boolean disassembler_needs_relocs;
|
||||
|
||||
/* Results from instruction decoders. Not all decoders yet support
|
||||
this information. This info is set each time an instruction is
|
||||
decoded, and is only valid for the last such instruction.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2006-01-17 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
PR binutils/1486
|
||||
* disassemble.c (disassemble_init_for_target): Set
|
||||
disassembler_needs_relocs for bfd_arch_arm.
|
||||
|
||||
2006-01-16 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* m68k-opc.c (m68k_opcodes): Fix opcodes for ColdFire f?abss,
|
||||
|
@ -442,6 +442,7 @@ disassemble_init_for_target (struct disassemble_info * info)
|
||||
#ifdef ARCH_arm
|
||||
case bfd_arch_arm:
|
||||
info->symbol_is_valid = arm_symbol_is_valid;
|
||||
info->disassembler_needs_relocs = TRUE;
|
||||
break;
|
||||
#endif
|
||||
#ifdef ARCH_ia64
|
||||
|
Loading…
Reference in New Issue
Block a user