[lld] r221587 - [ELF] Fix values of linker created dynamic variables.

Shankar Easwaran shankare at codeaurora.org
Mon Nov 10 16:08:34 PST 2014


Good catch!

On 11/10/2014 6:06 PM, Sean Silva wrote:
> +        .StartsWith(".got", ORDER_GOT)
> +        .StartsWith(".got.plt", ORDER_GOT_PLT)
>
> You need to reverse the order of these checks. StartsWith(".got") will
> always match when the string StartsWith(".got.plt").
>
> On Mon, Nov 10, 2014 at 6:55 AM, Shankar Easwaran <shankare at codeaurora.org>
> wrote:
>
>> Author: shankare
>> Date: Mon Nov 10 08:55:07 2014
>> New Revision: 221587
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=221587&view=rev
>> Log:
>> [ELF] Fix values of linker created dynamic variables.
>>
>> The value of _DYNAMIC should be pointing at the start of the .dynamic
>> segment.
>> This was pointing to the end of the dynamic segment. Similarly the value of
>> _GLOBAL_OFFSET_TABLE_ was not proper too.
>>
>> Modified:
>>      lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h
>>      lld/trunk/test/elf/dynamic-segorder.test
>>      lld/trunk/test/elf/entry.objtxt
>>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h?rev=221587&r1=221586&r2=221587&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h (original)
>> +++ lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h Mon Nov 10 08:55:07 2014
>> @@ -359,6 +359,9 @@ Layout::SectionOrder DefaultLayout<ELFT>
>>       return llvm::StringSwitch<Layout::SectionOrder>(name)
>>           .StartsWith(".init_array", ORDER_INIT_ARRAY)
>>           .StartsWith(".fini_array", ORDER_FINI_ARRAY)
>> +        .StartsWith(".dynamic", ORDER_DYNAMIC)
>> +        .StartsWith(".got", ORDER_GOT)
>> +        .StartsWith(".got.plt", ORDER_GOT_PLT)
>>           .Default(ORDER_DATA);
>>
>>     case DefinedAtom::typeZeroFill:
>>
>> Modified: lld/trunk/test/elf/dynamic-segorder.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/dynamic-segorder.test?rev=221587&r1=221586&r2=221587&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/dynamic-segorder.test (original)
>> +++ lld/trunk/test/elf/dynamic-segorder.test Mon Nov 10 08:55:07 2014
>> @@ -12,6 +12,6 @@ CHECK: flags r-x
>>   CHECK: LOAD
>>   CHECK: flags rw-
>>   CHECK: DYNAMIC
>> -CHECK: flags r--
>> +CHECK: flags rw-
>>   CHECK: TLS
>>   CHECK: flags rw-
>>
>> Modified: lld/trunk/test/elf/entry.objtxt
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/entry.objtxt?rev=221587&r1=221586&r2=221587&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/entry.objtxt (original)
>> +++ lld/trunk/test/elf/entry.objtxt Mon Nov 10 08:55:07 2014
>> @@ -12,7 +12,7 @@
>>   # RUN: llvm-nm -n %t1 | FileCheck %s
>>   #
>>   # CHECK:  004001e0 T main
>> -# CHECK:  00401080 D _DYNAMIC
>> +# CHECK:  00401000 D _DYNAMIC
>>   # CHECK:  00401080 A _end
>>   # CHECK:  00401080 A end
>>   # CHECK:           U _entrypoint
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation




More information about the llvm-commits mailing list