This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: FYI/prototype: re-implement relocs on ppc-aix
- From: Tom Tromey <tromey at redhat dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Fri, 12 Apr 2013 15:01:03 -0600
- Subject: Re: FYI/prototype: re-implement relocs on ppc-aix
- References: <20130321222151 dot GH5447 at adacore dot com> <87d2urw7x2 dot fsf at fleche dot redhat dot com> <20130325194808 dot GL5447 at adacore dot com>
>>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes:
Tom> It seems to me that the "gold-plated" method would be to change the code
Tom> everywhere not to assume a "file name", but instead make a new "solib
Tom> name" object that has virtual methods for its operations, and let AIX
Tom> supply a subclass of this.
Joel> [...]
Tom> This is a lot more typing, especially if you went the full route and
Tom> pushed it into objfiles as well, but I think it would avoid many issues
Tom> as well.
Joel> I see the beauty of it, but at the same time, this is introducing
Joel> a second level of indirection; is it going to make things better
Joel> than extending the current target_so_ops by adding handling of
Joel> member objects? To me, it seems a little overkill, but I do not
Joel> mind going that direction. (separate patch, probably not before
Joel> the fall, unfortunately).
Yeah, I don't know which is better.
On the one hand, mine may be overkill, but on the other it may be better
if we need future tweaks here.
Tom> I think you could refactor default_symfile_offsets so that it calls a
Tom> helper function, also called by xcoff_symfile_offsets, and which doesn't
Tom> do this setting.
Joel> I think I have an idea of what you mean, but I don't think I quite
Joel> see what you mean in practice... Not a big problem, and easy to fix
Joel> later on.
I just mean taking the current default_symfile_offsets and changing it
to:
... default_symfile_offsets_base () { ...
everything except setting the offsets to defaults
}
default_symfile_offsets () {
default_symfile_offsets_base()
... set the offsets to the defaults
}
Then your code can call default_symfile_offsets_base.
Joel> +static struct obj_section *
Joel> +data_obj_section_from_objfile (struct objfile *objfile)
Joel> +{
Joel> + struct obj_section *osect;
Joel> +
Joel> + ALL_OBJFILE_OSECTIONS (objfile, osect)
Joel> + if (strcmp (bfd_section_name (objfile->obfd,
Joel> osect->the_bfd_section),
Joel> + ".data") == 0)
Joel> + return osect;
Tom> Can this not look at objfile->data_sect_index?
Joel> Not if I am understanding it right. objfile->sect_index_data is
Joel> an index in the objfile->section_offsets array. I couldn't convince
Joel> myself from the current documentation that those indices applied
Joel> to both objfile->section_offsets and objfile->sections. It would be
Joel> ideal if I could!
After the obj_section merge, they are the same.
Tom