Date: Tue, 07 Jan 2020 20:30:57 +0000 From: bugzilla-noreply@freebsd.org To: emulation@FreeBSD.org Subject: [Bug 243155] Linuxulator: broken fadvise64 for 32-bit applications on amd64 Message-ID: <bug-243155-4077-2dyTEvramY@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-243155-4077@https.bugs.freebsd.org/bugzilla/> References: <bug-243155-4077@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D243155 --- Comment #3 from Mark Johnston <markj@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 Linu= x64. 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 no= t.=20 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 descr= ibed above and always print four arguments like one would expect. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-243155-4077-2dyTEvramY>