In objfile_relocate(), don't assume that offsets associated with one
authorKevin Buettner <kevinb@redhat.com>
Wed, 13 Sep 2000 01:47:16 +0000 (01:47 +0000)
committerKevin Buettner <kevinb@redhat.com>
Wed, 13 Sep 2000 01:47:16 +0000 (01:47 +0000)
of SECT_OFF_TEXT, SECT_OFF_DATA, or SECT_OFF_BSS will be adequate for
relocating all of the sections in an objfile.

gdb/ChangeLog
gdb/objfiles.c

index c89ace04f8800ad6c8bfebe3ca1e77d88bbffd09..4085e75a3d0006a796e7275b74b423eb11656249 100644 (file)
@@ -1,3 +1,10 @@
+2000-09-12  Kevin Buettner  <kevinb@redhat.com>
+
+       * objfiles.c (objfile_relocate): Don't assume that offsets
+       associated with one of SECT_OFF_TEXT, SECT_OFF_DATA, or
+       SECT_OFF_BSS will be adequate for relocating all of the
+       sections in an objfile.
+
 2000-09-12  Fernando Nasser  <fnasser@cygnus.com>
 
        * remote-rdi.c (arm_rdi_open): Fix typo in error message.
index e0228f55c99047b5d7b51bf2ee1f900b9c5a9dc0..60c8c6e680e0bb9f5411c947e21ee152599257de 100644 (file)
@@ -650,25 +650,10 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
 
     ALL_OBJFILE_OSECTIONS (objfile, s)
       {
-       flagword flags;
-
-       flags = bfd_get_section_flags (abfd, s->the_bfd_section);
-
-       if (flags & SEC_CODE)
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
-         }
-       else if (flags & (SEC_DATA | SEC_LOAD))
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_DATA (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_DATA (objfile));
-         }
-       else if (flags & SEC_ALLOC)
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_BSS (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_BSS (objfile));
-         }
+       int idx = s->the_bfd_section->index;
+       
+       s->addr += ANOFFSET (delta, idx);
+       s->endaddr += ANOFFSET (delta, idx);
       }
   }