From e14316e7fe96be0212669a9a4d60608707f66c90 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Tue, 4 Jan 1994 21:37:25 +0000 Subject: [PATCH] * objfiles.c (build_objfile_section_table): Don't abort() if objfile->sections is already set. * objfiles.c (add_to_objfile_sections): Check SEC_ALLOC not SEC_LOAD to match recent change to exec.c. --- gdb/objfiles.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 12a3c47e9e..4358f65de0 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -77,8 +77,7 @@ add_to_objfile_sections (abfd, asect, objfile_p_char) flagword aflag; aflag = bfd_get_section_flags (abfd, asect); - /* FIXME, we need to handle BSS segment here...it alloc's but doesn't load */ - if (!(aflag & SEC_LOAD)) + if (!(aflag & SEC_ALLOC)) return; if (0 == bfd_section_size (abfd, asect)) return; @@ -99,8 +98,11 @@ int build_objfile_section_table (objfile) struct objfile *objfile; { - if (objfile->sections) - abort(); + /* objfile->sections can be already set when reading a mapped symbol + file. I believe that we do need to rebuild the section table in + this case (we rebuild other things derived from the bfd), but we + can't free the old one (it's in the psymbol_obstack). So we just + waste some memory. */ objfile->sections_end = 0; bfd_map_over_sections (objfile->obfd, add_to_objfile_sections, (char *)objfile);