[Bug 243155] Linuxulator: broken fadvise64 for 32-bit applications on amd64
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Jan 7 20:30:57 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243155
--- Comment #3 from Mark Johnston <markj at FreeBSD.org> ---
I think this is a problem with truss rather than the kernel. Really there's
two problems:
1. We don't define distinct syscall argument structures for Linux32 vs Linux64.
That is, freebsd32_posix_fadvise_args splits the off_t arguments into two
fields, but linux_fadvise64_args (used in the Linux32 sysent table) does not.
So for a posix_fadvise() call in a 32-bit FreeBSD binary on amd64, truss
prints:
freebsd32_posix_fadvise(0x1,0x2,0x0,0x3,0x0,0x4) ERR#19 'Operation not
supported by device'
Obviously not perfect either, but at least you can see what's happening.
2. truss doesn't call quad_fixup() on 64-bit platforms even when the target ABI
is freebsd32 or linux32. Otherwise it could fix the splitting that I described
above and always print four arguments like one would expect.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-emulation
mailing list