* symtab.h (SYMBOL_SET_LINKAGE_NAME): Update comment.
[deliverable/binutils-gdb.git] / gdb / elfread.c
index 767dfe6b214657a54bf7331b9cd71b3c22d44978..29b7c0c92914f5945da691d7600bc45b86ece861 100644 (file)
@@ -114,7 +114,17 @@ elf_symfile_segments (bfd *abfd)
            break;
          }
 
-      if (bfd_get_section_size (sect) > 0 && j == num_segments)
+      /* We should have found a segment for every non-empty section.
+        If we haven't, we will not relocate this section by any
+        offsets we apply to the segments.  As an exception, do not
+        warn about SHT_NOBITS sections; in normal ELF execution
+        environments, SHT_NOBITS means zero-initialized and belongs
+        in a segment, but in no-OS environments some tools (e.g. ARM
+        RealView) use SHT_NOBITS for uninitialized data.  Since it is
+        uninitialized, it doesn't need a program header.  Such
+        binaries are not relocatable.  */
+      if (bfd_get_section_size (sect) > 0 && j == num_segments
+         && (bfd_get_section_flags (abfd, sect) & SEC_LOAD) != 0)
        warning (_("Loadable segment \"%s\" outside of ELF segments"),
                 bfd_section_name (abfd, sect));
     }
@@ -221,8 +231,9 @@ elf_symtab_read (struct objfile *objfile, int type,
   /* If filesym is nonzero, it points to a file symbol, but we haven't
      seen any section info for it yet.  */
   asymbol *filesym = 0;
-  /* Name of filesym, as saved on the objfile_obstack.  */
-  char *filesymname = obsavestring ("", 0, &objfile->objfile_obstack);
+  /* Name of filesym.  This is either a constant string or is saved on
+     the objfile's obstack.  */
+  char *filesymname = "";
   struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info;
   int stripped = (bfd_get_symcount (objfile->obfd) == 0);
 
This page took 0.023396 seconds and 4 git commands to generate.