[PATCH] LoongArch: Fix intermittent nptl/tst-cancel32 failure
mengqinggang <[email protected]> Wed, 5 Aug 2026 16:03:34 +0800
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Message-ID | <[email protected]> |
The nptl/tst-cancel32 test fails intermittently on LoongArch with SIGSEGV at __longjmp: 0x7ffff7de7f6c <__longjmp+28> rotri.d $sp, $t0, 0x11 0x7ffff7de7f70 <__longjmp+32> xor $sp, $sp, $t1 rotri.d and xor are expanded from PTR_DEMANGLE2. If the thread is cancelled between the rotri.d and xor, an incomplete sp register causes the SIGSEGV. Change the destination register of rotri.d to avoid an incomplete sp. --- sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h index 75498545cb..24e27e4092 100644 --- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h +++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h @@ -40,8 +40,8 @@ xor dst, src, guard; \ rotri.d dst, dst, 47; # define PTR_DEMANGLE2(dst, src, guard) \ - rotri.d dst, src, 17; \ - xor dst, dst, guard; + rotri.d src, src, 17; \ + xor dst, src, guard; #endif #endif /* POINTER_GUARD_ASM_H */ -- 2.34.1