Shankar Easwaran
2013-Sep-04 21:03 UTC
[LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
Yes, the Group is to represent --start-group,--end-group. So the group here will be contained in the linker Input as a vector of lld::files (foo.a, bar.a). thanks Shankar Easwaran On 9/4/2013 3:59 PM, Rui Ueyama wrote:> The first question is that Group is to represent --start-group/--end-group? > > If I understand your proposal correctly, here's the thing: if file is not > in group, each individual file is wrapped with LinkerInput, but if it's in > a group, it's not -- instead the entire group is wrapped with a > LinkerInput. This asymmetry is a bit concerning. If we don't need a > LinkerInput for each individual input file, we could get rid of it from the > former case. Otherwise, I'd think we need LinkerInput in the latter case. > > For example, if the following command line options are given, how it's > represented with LinkerInput, Group and File? > > --start-group foo.a --as-needed bar.a --no-as-needed --end-group > > On Wed, Sep 4, 2013 at 1:42 PM, Shankar Easwaran <shankare at codeaurora.org>wrote: > >> Hi, >> >> With the inputGraph now, lld models command line options, input files as >> nodes in the InputGraph called InputElements. >> >> In the current approach, each InputElement is converted to a LinkerInput, >> which works if all lld deals with individual files. >> >> Dealing with ControlNodes (Groups), have a problem with it, on how to >> model that as a LinkerInput. >> >> Joerg/Me were chatting on the IRC about this and we came up with the >> following approach. >> >> - LinkerInput will contain a single file(lld::File), if the node that its >> pointing to appears to be a FileNode >> - LinkerInput will contain a vector(lld::Group) of files(lld::Files) , if >> the node that its pointing appears to be a Group >> >> The resolver would need to be modified to consider lld::Groups in addition >> to lld::File. >> >> Does this sound like the approach we want to take ? >> >> Thanks >> >> Shankar Easwaran >> >> -- >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted >> by the Linux Foundation >> >>-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
Rui Ueyama
2013-Sep-04 21:10 UTC
[LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
On Wed, Sep 4, 2013 at 2:03 PM, Shankar Easwaran <shankare at codeaurora.org>wrote:> > Yes, the Group is to represent --start-group,--end-group. > > So the group here will be contained in the linker Input as a vector of > lld::files (foo.a, bar.a).It seems you dropped --as-needed attribute... ? By lld::files, what class are you pointing to, lld::File or lld::InputFiles?>thanks> > Shankar Easwaran > > > On 9/4/2013 3:59 PM, Rui Ueyama wrote: > >> The first question is that Group is to represent >> --start-group/--end-group? >> >> If I understand your proposal correctly, here's the thing: if file is not >> in group, each individual file is wrapped with LinkerInput, but if it's in >> a group, it's not -- instead the entire group is wrapped with a >> LinkerInput. This asymmetry is a bit concerning. If we don't need a >> LinkerInput for each individual input file, we could get rid of it from >> the >> former case. Otherwise, I'd think we need LinkerInput in the latter case. >> >> For example, if the following command line options are given, how it's >> represented with LinkerInput, Group and File? >> >> --start-group foo.a --as-needed bar.a --no-as-needed --end-group >> >> On Wed, Sep 4, 2013 at 1:42 PM, Shankar Easwaran <shankare at codeaurora.org >> >**wrote: >> >> Hi, >>> >>> With the inputGraph now, lld models command line options, input files as >>> nodes in the InputGraph called InputElements. >>> >>> In the current approach, each InputElement is converted to a LinkerInput, >>> which works if all lld deals with individual files. >>> >>> Dealing with ControlNodes (Groups), have a problem with it, on how to >>> model that as a LinkerInput. >>> >>> Joerg/Me were chatting on the IRC about this and we came up with the >>> following approach. >>> >>> - LinkerInput will contain a single file(lld::File), if the node that its >>> pointing to appears to be a FileNode >>> - LinkerInput will contain a vector(lld::Group) of files(lld::Files) , if >>> the node that its pointing appears to be a Group >>> >>> The resolver would need to be modified to consider lld::Groups in >>> addition >>> to lld::File. >>> >>> Does this sound like the approach we want to take ? >>> >>> Thanks >>> >>> Shankar Easwaran >>> >>> -- >>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted >>> by the Linux Foundation >>> >>> >>> > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted > by the Linux Foundation > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130904/523a99cf/attachment.html>
Shankar Easwaran
2013-Sep-04 21:13 UTC
[LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
The --as-needed attribute is preserved and is contained within the ELF FileNode. By lld::files, I am referring to lld::File. Thanks Shankar Easwaran On 9/4/2013 4:10 PM, Rui Ueyama wrote:> On Wed, Sep 4, 2013 at 2:03 PM, Shankar Easwaran <shankare at codeaurora.org>wrote: > >> Yes, the Group is to represent --start-group,--end-group. >> >> So the group here will be contained in the linker Input as a vector of >> lld::files (foo.a, bar.a). > > It seems you dropped --as-needed attribute... ? > > By lld::files, what class are you pointing to, lld::File or lld::InputFiles? > > > thanks >> Shankar Easwaran >> >> >> On 9/4/2013 3:59 PM, Rui Ueyama wrote: >> >>> The first question is that Group is to represent >>> --start-group/--end-group? >>> >>> If I understand your proposal correctly, here's the thing: if file is not >>> in group, each individual file is wrapped with LinkerInput, but if it's in >>> a group, it's not -- instead the entire group is wrapped with a >>> LinkerInput. This asymmetry is a bit concerning. If we don't need a >>> LinkerInput for each individual input file, we could get rid of it from >>> the >>> former case. Otherwise, I'd think we need LinkerInput in the latter case. >>> >>> For example, if the following command line options are given, how it's >>> represented with LinkerInput, Group and File? >>> >>> --start-group foo.a --as-needed bar.a --no-as-needed --end-group >>> >>> On Wed, Sep 4, 2013 at 1:42 PM, Shankar Easwaran <shankare at codeaurora.org >>>> **wrote: >>> Hi, >>>> With the inputGraph now, lld models command line options, input files as >>>> nodes in the InputGraph called InputElements. >>>> >>>> In the current approach, each InputElement is converted to a LinkerInput, >>>> which works if all lld deals with individual files. >>>> >>>> Dealing with ControlNodes (Groups), have a problem with it, on how to >>>> model that as a LinkerInput. >>>> >>>> Joerg/Me were chatting on the IRC about this and we came up with the >>>> following approach. >>>> >>>> - LinkerInput will contain a single file(lld::File), if the node that its >>>> pointing to appears to be a FileNode >>>> - LinkerInput will contain a vector(lld::Group) of files(lld::Files) , if >>>> the node that its pointing appears to be a Group >>>> >>>> The resolver would need to be modified to consider lld::Groups in >>>> addition >>>> to lld::File. >>>> >>>> Does this sound like the approach we want to take ? >>>> >>>> Thanks >>>> >>>> Shankar Easwaran >>>> >>>> -- >>>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted >>>> by the Linux Foundation >>>> >>>> >>>> >> -- >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted >> by the Linux Foundation >> >>-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
Seemingly Similar Threads
- [LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
- [LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
- [LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
- [LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
- [LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld