aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog14
-rwxr-xr-xbinutils/configure3
-rw-r--r--binutils/configure.in3
-rw-r--r--binutils/objdump.c24
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;