<div dir="ltr">Can we stop using Flags variable for DT_FLAGS (not for DT_FLAGS_1)?</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 19, 2015 at 5:39 PM, Davide Italiano <span dir="ltr"><<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Mon, Oct 19, 2015 at 4:38 PM, Rui Ueyama <<a href="mailto:ruiu@google.com">ruiu@google.com</a>> wrote:<br>
> On Mon, Oct 19, 2015 at 2:34 PM, Davide Italiano via llvm-commits<br>
> <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
>><br>
>> Author: davide<br>
>> Date: Mon Oct 19 16:34:00 2015<br>
>> New Revision: 250739<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=250739&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=250739&view=rev</a><br>
>> Log:<br>
>> [OutputSection] Set the symbolic bit in DT_FLAGS and not DT_FLAGS_1.<br>
>><br>
>> The two names are similar enough that they might lead to confusion.<br>
>> The output of readobj clarifies but I missed it when I originally<br>
>> committed this. Found while linking FreeBSD userland with lld.<br>
>><br>
>> Modified:<br>
>>     lld/trunk/ELF/OutputSections.cpp<br>
>>     lld/trunk/test/elf2/dt_flags.s<br>
>><br>
>> Modified: lld/trunk/ELF/OutputSections.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=250739&r1=250738&r2=250739&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=250739&r1=250738&r2=250739&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/ELF/OutputSections.cpp (original)<br>
>> +++ lld/trunk/ELF/OutputSections.cpp Mon Oct 19 16:34:00 2015<br>
>> @@ -369,6 +369,9 @@ template <class ELFT> void DynamicSectio<br>
>>    uint32_t Flags = 0;<br>
>>    if (Config->Bsymbolic)<br>
>>      Flags |= DF_SYMBOLIC;<br>
>> +  if (Flags)<br>
>> +    WriteVal(DT_FLAGS, Flags);<br>
>> +  Flags = 0;<br>
>>    if (Config->ZNow)<br>
>>      Flags |= DF_1_NOW;<br>
><br>
><br>
> This code is now equivalent to:<br>
><br>
>   if (Config->Bsymbolic)<br>
>     WriteVal(DT_FLAGS, DF_SYMBOLIC);<br>
>   if (Config->ZNow)<br>
>     WriteVal(DT_FLAGS_1, DF_1_NOW);<br>
><br>
<br>
</div></div>You're right. In fact, I was kinda tempted to make this change but<br>
immediately after I realized that my next changes (r250771) were<br>
going to switch back to the older form. So I went for that path.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Davide<br>
<br>
"There are no solved problems; there are only problems that are more<br>
or less solved" -- Henri Poincare<br>
</font></span></blockquote></div><br></div>