https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121208
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to CHARLES GOEDEFROIT from comment #7) > (In reply to Andrew Pinski from comment #6) > > (In reply to CHARLES GOEDEFROIT from comment #5) > > > (In reply to Andrew Pinski from comment #4) > > > > Which glibc version are you using? or you using some other libc? > > > > > > I use this glibc: > > > GNU C Library (GNU libc) stable release version 2.34. > > > > > > No, only GNU libc > > > > Have you tried a newer glibc? > No, because i think it's a GCC bug. But I can try a newer glibc. > > > > Also are you sure this is a GCC bug rather than a glibc one? > > I think it's a GCC bug because the caller-save %rcx register is used to > store a parameter of the interrupt handler. > Because the behavior of an interrupt handler is different from a regular > function, the wrong register is used (or the %ecx save is not performed). __tls_get_addr is not a normal function either.