[PATCH v2 0/3] Support --enable-newlib-reent-thread-local Newlib configuration option

Chris Johns chrisj at rtems.org
Thu Jul 21 08:36:41 UTC 2022


On 21/7/2022 6:30 pm, Sebastian Huber wrote:
> On 21.07.22 10:27, Chris Johns wrote:
>> On 21/7/2022 6:21 pm, Sebastian Huber wrote:
>>> On 21.07.22 10:16, Chris Johns wrote:
>>>> On 21/7/2022 6:11 pm, Sebastian Huber wrote:
>>>>> On 21.07.22 10:03, Chris Johns wrote:
>>>>>> As an aside, does gdb know about TLS variables and so will `errno` be
>>>>>> visible?
>>>>> Good question, there seems to be some support missing. For example for
>>>>> arm/xilinx_zynq_a9_qemu:
>>>>>
>>>>> Breakpoint 7, Init (ignored=2118804) at
>>>>> /home/EB/sebastian_h/src/rtems/testsuites/samples/fileio/init.c:1169
>>>>> 1169      TEST_BEGIN();
>>>>> (gdb) watch _tls_errno
>>>>> Cannot find thread-local variables on this target
>>>>> (gdb) p _tls_errno
>>>>> Cannot find thread-local variables on this target
>>>> I wonder if we need to configure gdb so it understands how we handle TLS
>>>> variables?
>>> It could be a Qemu issue. In GDB there is a
>>>
>>>        /* Check for the TLS register feature.  */
>>>        feature = tdesc_find_feature (tdesc, "org.gnu.gdb.arm.tls");
>>>
>>> However, this is not provided by Qemu.
>> Is this something in the remote protocol? I would have thought the ABI would
>> define the register?
> 
> Yes, I guess this is a part of the machine description provided by the server
> (Qemu). This stuff seems to be quite new (from 2022) added by John Baldwin for
> FreeBSD.

That would only apply if qemu was providing the XML description and it is not
normally something I have seen. Most of time the built in XML is used.

The only packet I could see in a quick look at the protocol is offsets for TLS
variables for dynamically loaded object files. This is needed because the link
editor allocates the variables when relocating.

Chris


More information about the devel mailing list