This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch] Fix false warning: section .dynbss not found in ...
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Sun, 14 Mar 2010 22:37:46 +0100
- Subject: [patch] Fix false warning: section .dynbss not found in ...
Hi,
this is a follow-up on:
http://sourceware.org/ml/gdb-patches/2010-02/msg00345.html
http://sourceware.org/ml/gdb-patches/2010-02/msg00345.html
found two new sections by prelink:
Reading symbols from /usr/bin/gdb...Reading symbols from /usr/lib/debug/usr/bin/gdb.debug...
warning: section .dynbss not found in /usr/lib/debug/usr/bin/gdb.debug
Checked the prelink source (again) and I see no more of them there now.
No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu.
Thanks,
Jan
2010-03-14 Jan Kratochvil <jan.kratochvil@redhat.com>
* symfile.c (addr_info_make_relative): Ignore also missing ".dynbss"
and ".sdynbss". Simplify the comment.
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -577,15 +577,16 @@ addr_info_make_relative (struct section_addr_info *addrs, bfd *abfd)
unexpected and we want to issue a warning.
However, the ELF prelinker does create a couple of sections
- (".gnu.liblist" and ".gnu.conflict") which are marked in the main
- executable as loadable (they are loaded in memory from the
- DYNAMIC segment) and yet are not present in separate debug info
- files. This is fine, and should not cause a warning. Shared
- libraries contain just the section ".gnu.liblist" but it is not
- marked as loadable there. */
+ which are marked in the main executable as loadable (they are
+ loaded in memory from the DYNAMIC segment) and yet are not present
+ in separate debug info files. This is fine, and should not cause
+ a warning. Shared libraries contain just the section
+ ".gnu.liblist" but it is not marked as loadable there. */
if (!(strcmp (sect_name, ".gnu.liblist") == 0
- || strcmp (sect_name, ".gnu.conflict") == 0))
+ || strcmp (sect_name, ".gnu.conflict") == 0
+ || strcmp (sect_name, ".dynbss") == 0
+ || strcmp (sect_name, ".sdynbss") == 0))
warning (_("section %s not found in %s"), sect_name,
bfd_get_filename (abfd));