[PATCH] x86-64: Use direct TLS initial-exec access to update errno
H.J. Lu
hjl.tools@gmail.com
Tue Dec 5 00:21:00 GMT 2017
On Mon, Dec 4, 2017 at 3:33 PM, Carlos O'Donell <carlos@redhat.com> wrote:
> On 12/04/2017 05:13 PM, H.J. Lu wrote:
>> Replace __errno_location call with direct TLS initial-exec access to
>> update errno.
>>
>> Any comments?
>
> What are the consequences of this change?
3 function calls are removed.
> Have you tried debugging this code in gdb and does it make it easier or
> harder to debug a single threaded application?
gdb 8 works fine:
(gdb) r
Starting program: /export/build/gnu/glibc/build-x86_64-linux/math/test-float-sin
testing float (without inline functions)
Breakpoint 1, sinf () at ../sysdeps/x86_64/fpu/s_sinf.S:339
339 movq errno@gottpoff(%rip), %rax
(gdb) p errno
$1 = 0
(gdb) next
340 movl $EDOM, %fs:(%rax)
(gdb)
345 movaps %xmm7, %xmm0 /* load x */
(gdb) p errno
$2 = 33
(gdb)
> Why make these changes?
It is motivated by
https://sourceware.org/ml/libc-alpha/2017-12/msg00101.html
--
H.J.
More information about the Libc-alpha
mailing list