Date: Sun, 8 Dec 2002 00:18:30 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Ian Dowse <iedowse@maths.tcd.ie> Cc: emulation@FreeBSD.ORG, <robert@FreeBSD.ORG>, <marcel@FreeBSD.ORG> Subject: Re: linux_fcntl64() implementation Message-ID: <20021208000831.R12964-100000@gamplex.bde.org> In-Reply-To: <200212070438.aa65335@salmon.maths.tcd.ie>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 7 Dec 2002, Ian Dowse wrote: > It seems that we do not implement fcntl64() correctly in the Linux > emulation code. I noticed that some programs were complaining about > F_SETLK failing, so I compared what we do with what appears in > bits/fcntl.h and some version of the Linux fcntl() from the web. > Currently we assume that all F_*ETLK* operations in fcntl64() use > the 64-bit arguments, but it appears that in fact only the versions > with the `64' suffix actually do. > > The patch below seems to fix the problem I was seeing - does anybody > know the precise details of the fcntl() vs. fcntl64() ABI? This bug > probably is the cause of PR kern/37656. Not me, but I think LFS requires the "old" (non-64) versions of the functions are supposed to have perfectly broken support for 64-bit args (since the original versions couldn't have had any support). I think even open() is supposed to fail for files whose size is too large for a 32-bit off_t, so failure of the other functions may be moot. But ones that want to copy in and out off_t's (like fcntl()) need to know the difference. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021208000831.R12964-100000>