From: Joel Brobecker Date: Fri, 9 Feb 2007 20:11:47 +0000 (+0000) Subject: * exec.c (add_to_section_table): Do not discard empty sections. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0f5d55d8c4b3bc46db59117233cfa1697415c3d0;p=binutils-gdb.git * exec.c (add_to_section_table): Do not discard empty sections. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6ec59a485fd..e91174874b8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2007-02-09 Joel Brobecker + + * exec.c (add_to_section_table): Do not discard empty sections. + 2007-02-08 Daniel Jacobowitz * features/Makefile, features/arm-with-iwmmxt.xml, diff --git a/gdb/exec.c b/gdb/exec.c index fde35eb92eb..e2d6b995c90 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -345,11 +345,15 @@ add_to_section_table (bfd *abfd, struct bfd_section *asect, struct section_table **table_pp = (struct section_table **) table_pp_char; flagword aflag; + /* Check the section flags, but do not discard zero-length sections, since + some symbols may still be attached to this section. For instance, we + encountered on sparc-solaris 2.10 a shared library with an empty .bss + section to which a symbol named "_end" was attached. The address + of this symbol still needs to be relocated. */ aflag = bfd_get_section_flags (abfd, asect); if (!(aflag & SEC_ALLOC)) return; - if (0 == bfd_section_size (abfd, asect)) - return; + (*table_pp)->bfd = abfd; (*table_pp)->the_bfd_section = asect; (*table_pp)->addr = bfd_section_vma (abfd, asect);