Thread (29 messages) 29 messages, 4 authors, 2022-07-15

Re: [PATCH V12 02/20] uapi: always define F_GETLK64/F_SETLK64/F_SETLKW64 in fcntl.h

From: Guo Ren <guoren@kernel.org>
Date: 2022-06-13 01:16:09
Also in: linux-arch, linux-arm-kernel, linux-mips, linux-riscv, linux-s390, lkml, sparclinux

On Wed, Jun 8, 2022 at 5:41 PM Eugene Syromiatnikov [off-list ref] wrote:
On Tue, Apr 05, 2022 at 03:12:56PM +0800, guoren@kernel.org wrote:
quoted
From: Christoph Hellwig <hch@lst.de>

Note that before this change they were never visible to userspace due
to the fact that CONFIG_64BIT is only set for kernel builds.
quoted
-#ifndef CONFIG_64BIT
+#if __BITS_PER_LONG == 32 || defined(__KERNEL__)
Actually, it's quite the opposite: "ifndef" usage made it vailable at all times
to the userspace, and this change has actually broken building strace
with the latest kernel headers[1][2].  There could be some debate
whether having these F_*64 definitions exposed to the user space 64-bit
applications, but it seems that were no harm (as they were exposed already
for quite some time), and they are useful at least for strace for compat
application tracing purposes.

[1] https://github.com/strace/strace/runs/6779763146?check_suite_focus=true#step:4:3222
[2] https://pipelines.actions.githubusercontent.com/serviceHosts/e5309ebd-8a2f-43f4-a212-b52080275b5d/_apis/pipelines/1/runs/1473/signedlogcontent/12?urlExpires=2022-06-08T09%3A37%3A13.9248496Z&urlSigningMethod=HMACV1&urlSignature=fIT7vd0O4NNRwzwKWLXY4UVZBIIF3XiVI9skAsGvV0I%3D
Yes, there is no CONFIG_64BIT in userspace, we shouldn't limit it with
(__BITS_PER_LONG == 32 || defined(__KERNEL__)) to break the
compatibility. Just export F_*64 definitions permanently.

-- 
Best Regards
 Guo Ren

ML: https://lore.kernel.org/linux-csky/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help