[glibc PATCH] fcntl: put F_OFD_* constants under #ifdef __USE_FILE_OFFSET64
Jeff Layton
jlayton@redhat.com
Wed Aug 17 17:40:00 GMT 2016
On Wed, 2016-08-17 at 19:34 +0200, Florian Weimer wrote:
> On 08/17/2016 04:47 PM, Jeff Layton wrote:
> >
> > The Linux kernel expects a flock64 structure whenever you use OFD locks
> > with fcntl64. Unfortunately, you can currently build a 32-bit program
> > that passes in a struct flock when it calls fcntl64.
> >
> > Only define the F_OFD_* constants when __USE_FILE_OFFSET64 is also
> > defined, so that the build fails in this situation rather than
> > producing a broken binary.
>
> Doesn't this affect legacy POSIX-style locks as well, under very similarÂ
> circumstances?
>
>
No. The kernel will decide which type of struct it is based on whether
userland passes in F_SETLK or F_SETLK64. Since the older flock struct
is considered a legacy interface, I didn't plumb that in when I did
these patches originally. With my 20/20 hindsight, I probably should
have just done that, but it's a little late now...
--
Jeff Layton <jlayton@redhat.com>
More information about the Libc-alpha
mailing list