This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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));
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]