[LLVMdev] LLD input graph handling proposal

Shankar Easwaran shankare at codeaurora.org
Fri Sep 20 17:56:47 PDT 2013


Hi Nick,

Read this along with this example extract:

ld -flavor gnu main.o thread.o --start-group libc.a libpthread.a 
--end-group function.o

main.o has atoms
------------------------
main (defined)
printf(undefined)
fn(undefined)

thread.o has atoms
-----------------------------
pthread_create (undefined)

libc.a(printf.o) has atoms
------------------------------------
printf(defined)

libc.a(exit.o) has atoms
----------------------------------
exit(defined)

libpthread.a has atoms
---------------------------------
pthread_create(defined)
exit(undefined)

function.o has atoms
-------------------------------
fn(defined)

Thanks

Shankar Easwaran

On 9/20/2013 7:42 PM, Shankar Easwaran wrote:
> Hi,
>
> Attached is the pdf of the operation to make things easier to read.
>
> Thanks
>
> Shankar Easwaran
>
> On 9/20/2013 7:04 PM, Shankar Easwaran wrote:
>> My email client spoilt the whole email, will create a pdf and send it.
>>
>> On 9/20/2013 7:00 PM, Shankar Easwaran wrote:
>>> Hi Nick,
>>>
>>> On 9/20/2013 5:59 PM, Nick Kledzik wrote:
>>>> On Sep 20, 2013, at 3:42 PM, Shankar Easwaran 
>>>> <shankare at codeaurora.org> wrote:
>>>>> nextFile could pass the current resolver state at the time when 
>>>>> its called, the linkingcontext can return the next file to be 
>>>>> processed as below :-
>>>>>
>>>>> nextFile(currentResolverState) :-
>>>>>
>>>>> a) Returns the next file if the current node is not a group node
>>>>> b) Returns the next file in the group node, if the current node is 
>>>>> a group node and the resolver state states undefined /weak / 
>>>>> shared library atoms were added.
>>>>> c) Returns the start file in the group node, if the resolver state 
>>>>> states undefined/weak/shared library atoms were added
>>>>> d) If the state is unchanged, no symbols were added exit the group 
>>>>> and move to the next node.
>>>> What causes the Resolver state to change?   I understand the state 
>>>> of "there are undefines remaining", but the "something was added" 
>>>> is a transient state.  Each last file, changes it.
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev 
>>
>>

-- 
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/20130920/0454c886/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: design.pdf
Type: application/pdf
Size: 45618 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130920/0454c886/attachment.pdf>


More information about the llvm-dev mailing list