diff options
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 14 | ||||
-rwxr-xr-x | binutils/configure | 3 | ||||
-rw-r--r-- | binutils/configure.in | 3 | ||||
-rw-r--r-- | binutils/objdump.c | 24 |
4 files changed, 20 insertions, 24 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index a5b7c15..b73144f 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -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. diff --git a/binutils/configure b/binutils/configure index bf1ad10..2c4d463 100755 --- a/binutils/configure +++ b/binutils/configure @@ -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" diff --git a/binutils/configure.in b/binutils/configure.in index 60db5ba..990b060 100644 --- a/binutils/configure.in +++ b/binutils/configure.in @@ -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 diff --git a/binutils/objdump.c b/binutils/objdump.c index f2b5eea..fc9600c 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -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; |