[RFA] fix build failure in solib-som.c

Joel Brobecker brobecker@adacore.com
Wed Aug 8 17:41:00 GMT 2007


Hi Kevin,

> > > > 2007-08-07  Joel Brobecker  <brobecker@adacore.com>
> > > > 
> > > >         * solib-som.c (som_relocate_section_addresses): Stop saving
> > > >         the $CODE$ section in the so_list structure.
> > > > 
> > > > This files compiles fine again after this change is applied.
> > > > 
> > > > Would that be OK to apply?
> > > 
> > > I think it would be better to revise the code to set so->addr_low and
> > > so->addr_high to sec->addr and sec->endaddr respectively.  You'll also
> > > have to move this block of code to the end of the function.
> > 
> > Isn't that already done in som_current_sos, though?
> 
> It is, but those addresses won't be relocated.  In order to be
> consistent with the other ports, I think these values should be
> relocated.  Note that solib.c's solib_map_sections() sets `addr_low'
> and `addr_high' for .text after the relocation has been done.  Clearly
> this won't work for SOM since the .text section is named differently. 
> However, given that `addr_low' and `addr_high' are set after the
> relocation has been performed (for other ports with a .text), I think
> it makes sense to arrange the SOM-specific code as suggested in my
> earlier reply.  I'm beginning to think too that the assignments to
> addr_low and addr_high ought to be removed from som_current_sos().

I had a closer look. I don't think we need to relocate the addr_low
and addr_high addresses, because they were extracted from the load
map info (which I would imagine would contain already relocated
addresses). This is in som_current_sos.

This is only by luck, but it looks like my original patch still
makes sense, no? I did a quick test by running any program, and
doing a "info sharedlibrary", and it looks likes the addresses
are indeed relocated (they don't correspond to the $CODE$ or $TEXT$
addresses printed by objdump).

-- 
Joel



More information about the Gdb-patches mailing list