From 8b129785e413189936bbf180f8a0f09afbc43ddb Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 16 Sep 1994 15:30:38 +0000 Subject: [PATCH] * objdump.c (struct objdump_disasm_info): Add field require_sec. (objdump_print_address): If aux->require_sec, require that the symbol be in aux->sec even if HAS_RELOC is not set. (disassemble_data): Set aux.require_sec around the objdump_print_address call for the instruction address. PR 3441. --- binutils/ChangeLog | 8 ++++++++ binutils/objdump.c | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 288c032414..797acdef63 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 16 11:27:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * objdump.c (struct objdump_disasm_info): Add field require_sec. + (objdump_print_address): If aux->require_sec, require that the + symbol be in aux->sec even if HAS_RELOC is not set. + (disassemble_data): Set aux.require_sec around the + objdump_print_address call for the instruction address. + Thu Sep 15 21:43:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) * ar.c: Call xexit rather than exit. diff --git a/binutils/objdump.c b/binutils/objdump.c index e531f20637..496033f301 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -58,6 +58,7 @@ char *only; /* -j secname */ struct objdump_disasm_info { bfd *abfd; asection *sec; + boolean require_sec; }; /* Architecture to disassemble for, or default if NULL. */ @@ -421,7 +422,8 @@ objdump_print_address (vma, info) long i; aux = (struct objdump_disasm_info *) info->application_data; - if ((aux->abfd->flags & HAS_RELOC) + if ((aux->require_sec + || (aux->abfd->flags & HAS_RELOC) != 0) && vma >= bfd_get_section_vma (aux->abfd, aux->sec) && vma < (bfd_get_section_vma (aux->abfd, aux->sec) + bfd_get_section_size_before_reloc (aux->sec)) @@ -665,7 +667,9 @@ disassemble_data (abfd) } } } + aux.require_sec = true; objdump_print_address (section->vma + i, &disasm_info); + aux.require_sec = false; putchar (' '); if (disassemble_fn)