[PATCH v4 04/21] nptl: x32: Fix Race conditions in pthread cancellation [BZ#12683]
Adhemerval Zanella
adhemerval.zanella@linaro.org
Tue Apr 7 12:47:20 GMT 2020
On 03/04/2020 18:22, Joseph Myers wrote:
> On Fri, 3 Apr 2020, Adhemerval Zanella via Libc-alpha wrote:
>
>> This patches adds the x32 modification required for the BZ#12683.
>> It follows the x86_64-x32 ABI and pointers are zero-extended.
>> However, compiler may not see such cases and accuse a cast from pointer
>> to integer of different size and for such cases the warning is
>> explict disabled.
>
> MIPS n32 uses an intermediate cast to (__typeof__ ((X) - (X))), so that a
> conversion to a different size is never directly from a pointer type.
> Does something like that help here to avoid the warning without needing to
> use diagnostic pragmas?
The intermediate cast to (__typeof__ ((X) - (X))) is not suffice for x32
(the resulting argumetn it will passed as function argument instead of
asm input). I have replaced with:
#define __SSC(__x) \
({ \
__syscall_arg_t __arg = sizeof (1 ? (__x) : 0ULL) < 8 \
? (unsigned long int) (uintptr_t)(__x) \
: (__syscall_arg_t) (__typeof__ ((__x) - (__x))) (__x); \
__arg; \
})
More information about the Libc-alpha
mailing list