RFA: Fix both_direction
Daniel Jacobowitz
drow@false.org
Mon May 16 16:21:00 GMT 2005
On Wed, May 11, 2005 at 01:31:53PM -0400, Daniel Jacobowitz wrote:
> This patch fixes "gdb -write" support for ELF files. There are two
> problems:
>
> We try to write out the string table even if we didn't create one. If we've
> bypassed the normal output routines, we never initialize elf_shstrtab, which
> is otherwise OK. If it's not set, there's nothing we need to do (except not
> crash).
>
> With that fixed, gdb -write works - as long as you change something, thereby
> encountering the "output_has_begun = TRUE" in bfd_set_section_contents. If
> you don't, then the linker's output routines are called. This causes
> sections to get rearranged, destroys special program headers (like
> PT_GNU_STACK), and loses the static symbol table. I believe that the
> check_format hook is a better place to handle this.
>
> OK? Tested on i686-linux, using the binutils testsuite, the gdb testsuite,
> and manual testing of gdb -write (which needs some testsuite coverage of its
> own).
> 2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
>
> * elf.c (_bfd_elf_write_object_contents): Check for non-NULL
> elf_shstrtab.
> * format.c (bfd_check_format_matches): Set output_has_begun
> for both_direction.
> * section.c (bfd_set_section_contents): Use bfd_write_p. Remove
> special case for both_direction.
Ping?
--
Daniel Jacobowitz
CodeSourcery, LLC
More information about the Binutils
mailing list