On 32bit x86 the 64bit _llseek seems to be badly parsed by strace.
results in a strace:
_llseek(3, 18446744071562067968, , SEEK_SET) = 0
_llseek(3, 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.