Skip site navigation (1)Skip section navigation (2)
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>