This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [FIXED] arm-wince-pe-size reports empty .text
Thanks Nick. It works as expected.
Cheers,
Shaun
On Thu, 2003-07-24 at 08:01, Nick Clifton wrote:
> Hi Guys,
>
> > Ian Lance Taylor <ian@airs.com> writes:
>
> >> -D disassembles .rdata (even though it's meaningless), but it does not
> >> disassemble .text. (see below)
> >
> > Hmmm, you're right, -D doesn't disassemble sections which do not have
> > LOAD set. Maybe that's a bug. It doesn't seem to match the
> > documentation.
>
> Indeed. I am applying the patch below to fix this, so that -D will
> disassemble sections without the LOAD flag.
>
> Cheers
> Nick
>
> 2003-07-24 Nick Clifton <nickc@redhat.com>
>
> * objdump.c (disassemble_data): Do not ignore sections without the
> LOAD flag when disassemble_all is true. Only print a message
> about disassembling a section if it contains some data.
>
> Index: binutils/objdump.c
> ===================================================================
> RCS file: /cvs/src/src/binutils/objdump.c,v
> retrieving revision 1.70
> diff -c -3 -p -r1.70 objdump.c
> *** binutils/objdump.c 22 Jul 2003 13:33:32 -0000 1.70
> --- binutils/objdump.c 24 Jul 2003 14:02:49 -0000
> *************** disassemble_data (abfd)
> *** 1628,1637 ****
> asymbol *sym = NULL;
> long place = 0;
>
> ! if ((section->flags & SEC_LOAD) == 0
> ! || (! disassemble_all
> ! && only == NULL
> ! && (section->flags & SEC_CODE) == 0))
> continue;
>
> if (only != NULL)
> --- 1628,1637 ----
> asymbol *sym = NULL;
> long place = 0;
>
> ! /* Sections that do not contain machine code are not normally disassembled. */
> ! if (! disassemble_all
> ! && only == NULL
> ! && (section->flags & SEC_CODE) == 0)
> continue;
>
> if (only != NULL)
> *************** disassemble_data (abfd)
> *** 1682,1692 ****
> }
> }
>
> - printf (_("Disassembly of section %s:\n"), section->name);
> -
> datasize = bfd_get_section_size_before_reloc (section);
> if (datasize == 0)
> continue;
>
> data = (bfd_byte *) xmalloc ((size_t) datasize);
>
> --- 1682,1692 ----
> }
> }
>
> datasize = bfd_get_section_size_before_reloc (section);
> if (datasize == 0)
> continue;
> +
> + printf (_("Disassembly of section %s:\n"), section->name);
>
> data = (bfd_byte *) xmalloc ((size_t) datasize);
>
>
>
>