[PATCH] Subclass DynamicTable for each targets to factor out handling of target dependent part of a dynamic table
Shankar Easwaran
shankare at codeaurora.org
Thu Jan 30 10:18:13 PST 2014
On 1/29/2014 1:31 AM, Simon Atanasyan wrote:
> I thought about the code duplication problem but could not figure out an elegant solution.
>
> Sure I can create a new class say `DefaultDynamicTable` subclassed from the `DynamicTable` and override the `createDefaultEntries` method. Then create `DefaultDynamicTable` for every targets except MIPS. But I do not like the word **Default** in the `DefaultDynamicTable` because using `DT_PLTGOT` for `.got.plt` section referencing is not default behavior but is just one of possible cases.
>
> Another solution is to add a new virtual function `DynamicTable::getPLTGOTTag()`. By default it returns `DT_PLTGOT`, in case of MIPS it returns `DT_MIPS_PLTGOT`.
This is one way that I want to go about :-
DefaultDynamicTable
- addTag
- setTag
GnuLDDynamicTable : DefaultDynamicTable
- add tags that is needed to duplicate default GnuLD behavior for
all architectures.
- add mappings that translate from one tag to another (to permit
architectures to override).
MipsDynamicTable : GnuLDDynamicTable
- override specific tags
Thanks
Shankar Easwaran
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
More information about the llvm-commits
mailing list