[PATCH v2] ntdll: Fix passing timeout to FUTEX_WAIT when 64-bit time_t is used.

Piotr Caban piotr.caban at gmail.com
Sun Apr 24 14:06:19 CDT 2022


On 4/22/22 20:03, Zebediah Figura wrote:
> On 4/22/22 07:29, Piotr Caban wrote:
>> Signed-off-by: Piotr Caban <piotr at codeweavers.com>
>> ---
>> I'm not sure if it's the best way of fixing the problem. I can't find 
>> anything else except of detecting time_t size at runtime.
>>
>>   dlls/ntdll/unix/sync.c | 27 +++++++++++++++++++++------
>>   1 file changed, 21 insertions(+), 6 deletions(-)
>>
> 
> This will disable futexes if running under a kernel older than 5.1, 
> though, which doesn't seem ideal. It should be relatively easy to keep 
> the 32-bit wait as a fall-back path.
> 
> I also don't think we want to check __USE_TIME_BITS64, since that's an 
> internal symbol.
I'm not sure if it's internal (name suggest it but glibc developers 
recommended to use it in kernel headers). A quick check shows one such 
usage.

> I think it may be easiest just to manually define the timespec 
> structure(s).
I don't think we should do it. While it will probably work in i386 only 
case it looks risky.

I've sent another patch that tries to solve it differently. It creates 
new file and undefines _TIME_BITS there. This should work if e.g. 
timespec size changes.



More information about the wine-devel mailing list