Version: strace-4.5.5-1 Reproducible: Always On 32bit x86 the 64bit _llseek seems to be badly parsed by strace. lseek64(fd,0x80000000ULL,SEEK_SET); results in a strace: _llseek(3, 18446744071562067968, [2147483648], SEEK_SET) = 0 instead of: _llseek(3, 2147483648, [2147483648], SEEK_SET) = 0 note that 18446744071562067968 == 0xFFFFFFFF80000000, so basically somehow 0x80000000 is turning into 0xFFFFFFFF80000000. Can anyone confirm this - or am I totally lost here? As far as I can tell the problem is definetely with strace, passing in the correct parameters by hand via asm into the kernel still results in a wrong strace, and the kernel accepts the values and allows the seek, and returns the expected value as the result.
I cannot reproduce any such problem with 4.5.5-1 on x86. My test program does exactly the lseek64 call in your report. Please provide a verified test case to reproduce the problem.
Sorry for the mixup, I've just discovered a local different (unknown version) copy of strace in /usr/local/bin. The /usr/bin version which is from FC2 does work correctly. My Error, once again sorry.