<div dir="ltr">Thank you @Peter for the Info.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 10, 2019 at 5:15 PM Peter Smith <<a href="mailto:peter.smith@linaro.org">peter.smith@linaro.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, 10 Dec 2019 at 11:30, kamlesh kumar via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> GCC's behavior matches LLVM.<br>
> so should we leave it?<br>
><br>
<br>
There is some more information in <a href="https://reviews.llvm.org/D43860" rel="noreferrer" target="_blank">https://reviews.llvm.org/D43860</a> . It<br>
has been some time since I looked at this, so my memory is hazy. As I<br>
understand it there isn't a way to express the relocation in debug<br>
info, all the existing TLS relocations are defined for instructions<br>
with small immediate field. If we use a non-TLS relocation linkers<br>
will refuse to link the binary as only TLS relocations are permitted<br>
to relocate against TLS symbols.<br>
<br>
The AArch64 ABI<br>
<a href="https://developer.arm.com/docs/ihi0056/f/elf-for-the-arm-64-bit-architecture-aarch64-abi-2019q2-documentation" rel="noreferrer" target="_blank">https://developer.arm.com/docs/ihi0056/f/elf-for-the-arm-64-bit-architecture-aarch64-abi-2019q2-documentation</a><br>
has a contact email on the front page. If your reading matches D43860<br>
it may be worth contacting the email address describing the problem.<br>
With a new relocation type, and support in compilers and linkers this<br>
may be possible to address.<br>
<br>
Peter<br>
<br>
> On Tue, Dec 10, 2019 at 12:54 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
>><br>
>> What does GCC do?<br>
>><br>
>> On Mon, Dec 9, 2019 at 10:25 PM kamlesh kumar via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
>>><br>
>>> Hi Devs,<br>
>>><br>
>>> consider below testcase<br>
>>> $cat test.c<br>
>>> __thread int mtls=1;<br>
>>> void foo(){<br>
>>> mtls++;<br>
>>> }<br>
>>><br>
>>> it emits this debug info for mtls<br>
>>><br>
>>> 0x0000002a:   DW_TAG_variable<br>
>>>                 DW_AT_name      ("mtls")<br>
>>>                 DW_AT_type      (0x00000035 "int")<br>
>>>                 DW_AT_external  (true)<br>
>>>                 DW_AT_decl_file ("test.c")<br>
>>>                 DW_AT_decl_line (1)<br>
>>><br>
>>> which does not contain DW_AT_Location.<br>
>>><br>
>>> Currently, aarch64 does not emit DW_AT_Location for TLS variables.<br>
>>> I could see at this line, it says some restriction in aarch64 elf abi.<br>
>>> <a href="https://github.com/llvm-mirror/llvm/blob/master/lib/Target/AArch64/AArch64TargetObjectFile.cpp#L24" rel="noreferrer" target="_blank">https://github.com/llvm-mirror/llvm/blob/master/lib/Target/AArch64/AArch64TargetObjectFile.cpp#L24</a><br>
>>><br>
>>> I would like to know community thoughts on this and is there any other way to tackle this, or we simply can not debug TLS variables for this architecture?<br>
>>><br>
>>><br>
>>> ./Kamlesh<br>
>>><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> LLVM Developers mailing list<br>
>>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
>>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>