From 78f0949be7cc59219063bf349b1d260807a6a254 Mon Sep 17 00:00:00 2001 From: Kevin Buettner Date: Wed, 13 Sep 2000 01:47:16 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 7 +++++++ gdb/objfiles.c | 23 ++++------------------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c89ace04f88..4085e75a3d0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2000-09-12 Kevin Buettner + + * 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 * remote-rdi.c (arm_rdi_open): Fix typo in error message. diff --git a/gdb/objfiles.c b/gdb/objfiles.c index e0228f55c99..60c8c6e680e 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); } } -- 2.30.2