[LTP] [PATCH] configure.ac: Add _GNU_SOURCE for struct fs_quota_statv check

Eric Sandeen sandeen@redhat.com
Wed Jun 19 17:50:15 CEST 2024


On 6/19/24 7:08 AM, Li Wang wrote:
> cc Eric Sandeen <sandeen@redhat.com <mailto:sandeen@redhat.com>> who is the author of:

If adding _GNU_SOURCE to the LTP configure.ac fixes the problem,
I have no concerns about that.

However, I also sent a patch to fix xfsprogs - having this wrapper in the
header is really unnecessary, and will likely cause problems for others
as well, so I just proposed removing it.

https://lore.kernel.org/linux-xfs/be7f0845-5d5f-4af5-9ca9-3e4370b47d97@sandeen.net/
 
(This problem only recently showed up due to other changes, see the explanation
in the link above)

Thanks,
-Eric

> commit 9d6023a856a1c4f84415dff59b0d5459cc8768db
> Author: Eric Sandeen <sandeen@redhat.com <mailto:sandeen@redhat.com>>
> Date:   Thu Feb 27 15:05:48 2020 -0500
> 
>     libxfs: use FALLOC_FL_ZERO_RANGE in libxfs_device_zero
> 
> On Wed, Jun 19, 2024 at 8:05 PM Li Wang <liwang@redhat.com <mailto:liwang@redhat.com>> wrote:
> 
>     Hi Petr, XFS-Experts,
> 
>     On Wed, Jun 19, 2024 at 5:27 PM Petr Vorel <pvorel@suse.cz <mailto:pvorel@suse.cz>> wrote:
> 
>         Hi Li,
> 
>         > These changes help ensure that the necessary features and definitions
>         > are available during the configuration process, preventing potential
>         > issues related to missing or incompatible definitions. This should
>         > resolve the compilation error related to struct fs_quota_statv:
> 
>         >  /usr/include/xfs/xqm.h:167:8: error: redefinition of ‘struct fs_qfilestatv’
> 
>         I wonder how _GNU_SOURCE influences any XFS header?
>         I haven't found anything in (<xfs/*.h>) or in <sys/quota.h>
> 
> 
>     With installing a newer xfsprogs-dev package on RHEL, we got a problem
>     in configuring our LTP test.
> 
>     According to the inclusion relationship: "xfs/xqm.h" -> "xfs/xfs.h" -> "xfs/linux.h".
>     The linux.h header introduces an inlined function that needs '_GNU_SOURCE' and <fcnctl.h>.
> 
>     $ git clone https://kernel.googlesource.com/pub/scm/fs/xfs/xfsprogs-dev <https://kernel.googlesource.com/pub/scm/fs/xfs/xfsprogs-dev>
>     $ cd xfsprogs-dev/
>     $ git describe --contains 9d6023a856a1c4f84415dff59b0d5459cc8768db
>     v5.5.0-rc1~39
> 
>     #if defined(FALLOC_FL_ZERO_RANGE)
>     static inline int
>     platform_zero_range(
>             int        fd,
>             xfs_off_t        start,
>             size_t        len)
>     {
>             int ret;
> 
>             ret = fallocate(fd, FALLOC_FL_ZERO_RANGE, start, len);
>             if (!ret)
>             return 0;
>             return -errno;
>     }
>     #else
>     #define platform_zero_range(fd, s, l) (-EOPNOTSUPP)
>     #endif
> 
> 
>     My test version is based on 6.5 so contains the inlined function to build.
> 
>     # rpm -qf /usr/include/xfs/xqm.h
>     xfsprogs-devel-6.5.0-3.el10.x86_64
> 
>      
> 
>         I know that some quotactl0[23].c define _GNU_SOURCE, but it's interesting that
>         this influence the header. Also, which RHEL (or whatever distro) version has
>         this problem?
> 
> 
>     The error occurred (with install xfsprogs-devel) during the configure script
>     checking struct fs_quota_statv. It failed to compile conftest.c and report
>     such errors:
> 
>     configure:5697: checking for struct fs_quota_statv
>     configure:5697: gcc -c -g -O2  conftest.c >&5
>     In file included from /usr/include/xfs/xfs.h:9,
>                      from /usr/include/xfs/xqm.h:9,
>                      from conftest.c:138:
>     /usr/include/xfs/linux.h: In function 'platform_zero_range':
>     /usr/include/xfs/linux.h:188:15: error: implicit declaration of function 'fallocate' [-Wimplicit-function-declaration]
>       188 |         ret = fallocate(fd, FALLOC_FL_ZERO_RANGE, start, len);
>           |               ^~~~~~~~~
>     configure:5697: $? = 1
>      
>     It similarly to the above quotactl07 patchfix, so adding '#define _GNU_SOURCE'
>     isactually formaking the fallocate()happy.
> 
>     Or, another way is the change made in "xfsprogs-dev/include/linux.h" otherwise we can't
>     configure our LTP correctly.
> 
> 
>     -- 
>     Regards,
>     Li Wang
> 
> 
> 
> -- 
> Regards,
> Li Wang



More information about the ltp mailing list