summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog15
-rw-r--r--binutils/Makefile.am3
-rw-r--r--binutils/Makefile.in4
-rwxr-xr-xbinutils/configure6
-rw-r--r--binutils/configure.in5
-rw-r--r--binutils/objdump.c23
-rw-r--r--binutils/po/binutils.pot40
7 files changed, 71 insertions, 25 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a2967db8cb..2c9367e553 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,18 @@
+2001-01-09 Nick Clifton <nickc@redhat.com>
+
+ * Makefile.am: Add rule to build objdump.o from objdump.c and
+ using OBJDUMP_DEFS.
+ * Makefile.in: Regenerate.
+
+ * configure.in: Define OBJDUMP_DEFS. Default to empty.
+ (arm, xscale, d10v): For these targets define OBJDUMP_DEFS to
+ -DDISASSEMBLER_NEEDS_RELOCS.
+ * confgiure: Regenerate.
+
+ * objdump.c (disassemble_bytes): If DISASSEMBLER_NEEDS_RELOCS
+ is defined read in the relocs even if dump_reloc_info is
+ false.
+
2001-01-07 Philip Blundell <philb@gnu.org>
* binutils.texi (Bug Reporting): Replace `bug-gnu-utils' with
diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index 194306727a..1ddf2f7fc5 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -171,6 +171,9 @@ nm_new_SOURCES = nm.c $(BULIBS)
objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
+objdump.o:objdump.c
+ $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c
+
underscore.c: stamp-under ; @true
stamp-under: Makefile
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index d6c2c363a1..1b2a2969db 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -100,6 +100,7 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
NLMCONV_DEFS = @NLMCONV_DEFS@
OBJDUMP = @OBJDUMP@
+OBJDUMP_DEFS = @OBJDUMP_DEFS@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
@@ -1098,6 +1099,9 @@ check-DEJAGNU: site.exp
installcheck:
/bin/sh $(srcdir)/sanity.sh $(bindir)
+objdump.o:objdump.c
+ $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c
+
underscore.c: stamp-under ; @true
stamp-under: Makefile
diff --git a/binutils/configure b/binutils/configure
index 3f6021b8c6..bf0043ef01 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -5371,6 +5371,7 @@ DLLTOOL_DEFS=
BUILD_WINDRES=
BUILD_DLLWRAP=
BUILD_MISC=
+OBJDUMP_DEFS=
for targ in $target $canon_targets
do
@@ -5417,6 +5418,9 @@ do
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
;;
+ arm-* | xscale-* | strongarm-* | d10v-*)
+ OBJDUMP_DEFS="-DDISASSEMBLER_NEEDS_RELOCS"
+ ;;
i[3-6]86-*pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32*)
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
@@ -5464,6 +5468,7 @@ done
+
cat >> confdefs.h <<EOF
#define TARGET "${target}"
EOF
@@ -5687,6 +5692,7 @@ s%@DLLTOOL_DEFS@%$DLLTOOL_DEFS%g
s%@BUILD_WINDRES@%$BUILD_WINDRES%g
s%@BUILD_DLLWRAP@%$BUILD_DLLWRAP%g
s%@BUILD_MISC@%$BUILD_MISC%g
+s%@OBJDUMP_DEFS@%$OBJDUMP_DEFS%g
s%@UNDERSCORE@%$UNDERSCORE%g
CEOF
diff --git a/binutils/configure.in b/binutils/configure.in
index 184855bc88..d175d8527d 100644
--- a/binutils/configure.in
+++ b/binutils/configure.in
@@ -171,6 +171,7 @@ DLLTOOL_DEFS=
BUILD_WINDRES=
BUILD_DLLWRAP=
BUILD_MISC=
+OBJDUMP_DEFS=
for targ in $target $canon_targets
do
@@ -219,6 +220,9 @@ 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-6]86-*pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32*)
changequote([,])dnl
@@ -267,6 +271,7 @@ AC_SUBST(DLLTOOL_DEFS)
AC_SUBST(BUILD_WINDRES)
AC_SUBST(BUILD_DLLWRAP)
AC_SUBST(BUILD_MISC)
+AC_SUBST(OBJDUMP_DEFS)
AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.])
diff --git a/binutils/objdump.c b/binutils/objdump.c
index cc31746c5f..a6658313fe 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -1358,13 +1358,15 @@ disassemble_bytes (info, disassemble_fn, insns, data,
info->bytes_per_line = 0;
info->bytes_per_chunk = 0;
+#ifdef DISASSEMBLER_NEEDS_RELOCS
/* FIXME: This is wrong. It tests the number of octets
in the last instruction, not the current one. */
if (*relppp < relppend
&& (**relppp)->address >= addr_offset
- && (**relppp)->address < addr_offset + octets / opb)
+ && (**relppp)->address <= addr_offset + octets / opb)
info->flags = INSN_HAS_RELOC;
else
+#endif
info->flags = 0;
octets = (*disassemble_fn) (section->vma + addr_offset, info);
@@ -1504,12 +1506,20 @@ disassemble_bytes (info, disassemble_fn, insns, data,
need_nl = true;
}
- if (dump_reloc_info
- && (section->flags & SEC_RELOC) != 0)
+ if ((section->flags & SEC_RELOC) != 0
+#ifndef DISASSEMBLER_NEEDS_RELOCS
+ && dump_reloc_info
+#endif
+ )
{
while ((*relppp) < relppend
&& ((**relppp)->address >= (bfd_vma) addr_offset
&& (**relppp)->address < (bfd_vma) addr_offset + octets / opb))
+#ifdef DISASSEMBLER_NEEDS_RELOCS
+ if (! dump_reloc_info)
+ ++(*relppp);
+ else
+#endif
{
arelent *q;
@@ -1665,8 +1675,11 @@ disassemble_data (abfd)
if (only != (char *) NULL && strcmp (only, section->name) != 0)
continue;
- if (dump_reloc_info
- && (section->flags & SEC_RELOC) != 0)
+ if ((section->flags & SEC_RELOC) != 0
+#ifndef DISASSEMBLER_NEEDS_RELOCS
+ && dump_reloc_info
+#endif
+ )
{
long relsize;
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index 05dc739480..7c50f2d9dd 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-12-19 14:20-0800\n"
+"POT-Creation-Date: 2001-01-09 12:08-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -33,7 +33,7 @@ msgstr ""
msgid "%s: can not get addresses from archive"
msgstr ""
-#: addr2line.c:310 nm.c:436 objdump.c:2844
+#: addr2line.c:310 nm.c:436 objdump.c:2857
#, c-format
msgid "unknown demangling style `%s'"
msgstr ""
@@ -1866,98 +1866,98 @@ msgstr ""
msgid "Out of virtual memory"
msgstr ""
-#: objdump.c:1606
+#: objdump.c:1616
#, c-format
msgid "Can't use supplied machine %s"
msgstr ""
-#: objdump.c:1624
+#: objdump.c:1634
#, c-format
msgid "Can't disassemble for architecture %s\n"
msgstr ""
-#: objdump.c:1703
+#: objdump.c:1716
#, c-format
msgid "Disassembly of section %s:\n"
msgstr ""
-#: objdump.c:1877
+#: objdump.c:1890
#, c-format
msgid ""
"No %s section present\n"
"\n"
msgstr ""
-#: objdump.c:1884
+#: objdump.c:1897
#, c-format
msgid "%s has no %s section"
msgstr ""
-#: objdump.c:1898
+#: objdump.c:1911
#, c-format
msgid "Reading %s section of %s failed: %s"
msgstr ""
-#: objdump.c:1910
+#: objdump.c:1923
#, c-format
msgid "Reading %s section of %s failed: %s\n"
msgstr ""
-#: objdump.c:1953
+#: objdump.c:1966
#, c-format
msgid ""
"Contents of %s section:\n"
"\n"
msgstr ""
-#: objdump.c:2053
+#: objdump.c:2066
#, c-format
msgid "architecture: %s, "
msgstr ""
-#: objdump.c:2056
+#: objdump.c:2069
#, c-format
msgid "flags 0x%08x:\n"
msgstr ""
-#: objdump.c:2069
+#: objdump.c:2082
msgid ""
"\n"
"start address 0x"
msgstr ""
-#: objdump.c:2101
+#: objdump.c:2114
#, c-format
msgid ""
"\n"
"%s: file format %s\n"
msgstr ""
-#: objdump.c:2143
+#: objdump.c:2156
#, c-format
msgid "%s: printing debugging information failed"
msgstr ""
-#: objdump.c:2220
+#: objdump.c:2233
#, c-format
msgid "In archive %s:\n"
msgstr ""
-#: objdump.c:2272
+#: objdump.c:2285
#, c-format
msgid "Contents of section %s:\n"
msgstr ""
-#: objdump.c:2785
+#: objdump.c:2798
#, c-format
msgid "BFD header file version %s\n"
msgstr ""
-#: objdump.c:2869
+#: objdump.c:2882
msgid "unrecognized -E option"
msgstr ""
-#: objdump.c:2880
+#: objdump.c:2893
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr ""