[PATCH] xfstests: replace custom __u64 definition with uint64_t

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



In some distributions, __u64 is already defined in system header files,
causing compilation errors when building xfstest.

	# make
	    [CC]    ext4_resize
	ext4_resize.c:17:28: error: conflicting types for '__u64'
	 typedef unsigned long long __u64;
	                            ^~~~~
	In file included from /usr/include/asm/types.h:26:0,
	                 from /usr/include/linux/types.h:5,
	                 from /usr/include/linux/mount.h:4,
	                 from /usr/include/sys/mount.h:32,
	                 from ext4_resize.c:15:
	/usr/include/asm-generic/int-l64.h:30:23: note: previous declaration of '__u64' was here
	 typedef unsigned long __u64;
                       ^~~~~

To address this issue, replace the custom definition of __u64 with the
standard uint64_t type from <stdint.h>. uint64_t is part of the C99
standard, offering a standardised approach for representing unsigned
64-bit integers. This modification enhances code consistency and
ensures compatibility with standard types.

Tested on various distributions on Power architecture, by successfully
compiling xfstest. Additionally, verified the compatibility by running
ext4/033 and ext4/056 tests, both of which use ext4_resize and
observed successful test execution.

        # make
            [CC]    detached_mounts_propagation
            [CC]    ext4_resize
            [CC]    t_readdir_3

Signed-off-by: Disha Goel <disgoel@xxxxxxxxxxxxx>
---
 src/ext4_resize.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/ext4_resize.c b/src/ext4_resize.c
index 78b66432..6e60ee5b 100644
--- a/src/ext4_resize.c
+++ b/src/ext4_resize.c
@@ -14,10 +14,8 @@
 #include <sys/ioctl.h>
 #include <sys/mount.h>
 
-typedef unsigned long long __u64;
-
 #ifndef EXT4_IOC_RESIZE_FS
-#define EXT4_IOC_RESIZE_FS		_IOW('f', 16, __u64)
+#define EXT4_IOC_RESIZE_FS		_IOW('f', 16, uint64_t)
 #endif
 
 #define pr_error(fmt, ...) do { \
@@ -31,7 +29,7 @@ static void usage(void)
 
 int main(int argc, char **argv)
 {
-	__u64	new_size;
+	uint64_t	new_size;
 	int	error, fd;
 	char	*mnt_dir = NULL, *tmp = NULL;
 
-- 
2.39.1





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux