diff options
author | Kevin Buettner <kevinb@redhat.com> | 2000-09-13 01:47:16 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2000-09-13 01:47:16 +0000 |
commit | 78f0949be7cc59219063bf349b1d260807a6a254 (patch) | |
tree | 96a82e96741440e086cde42cb8a9134861fa6719 /gdb/objfiles.c | |
parent | dcd619bedd024cbf98ee895bfb15a195bfa0c852 (diff) | |
download | gdb-78f0949be7cc59219063bf349b1d260807a6a254.zip gdb-78f0949be7cc59219063bf349b1d260807a6a254.tar.gz gdb-78f0949be7cc59219063bf349b1d260807a6a254.tar.bz2 |
In 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.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index e0228f5..60c8c6e 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -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); } } |