On Wed, Jun 8, 2022 at 5:41 PM Eugene Syromiatnikov <esyr@xxxxxxxxxx> wrote: > > On Tue, Apr 05, 2022 at 03:12:56PM +0800, guoren@xxxxxxxxxx wrote: > > From: Christoph Hellwig <hch@xxxxxx> > > > > Note that before this change they were never visible to userspace due > > to the fact that CONFIG_64BIT is only set for kernel builds. > > > -#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/