Message ID | 1637310522-19620-1-git-send-email-xuyang2018.jy@fujitsu.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] syscalls/statx01: Fix compiler warning because of PRIu64 | expand |
Hi! > warning: format ???%lu??? expects argument of type ???long unsigned int???, > but argument 5 has type ???__u64??? {aka ???long long unsigned int???} This is strange, the stx_size is either defined as uint64_t in our fallback code or as __u64 in the system headers. It should really match the PRIu64. I see the warnings on my system as well, it looks like /usr/include/asm-generic/int-ll64.h is used even on 64bit system e.g. x86_64 that does not make any sense. > Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> > --- > testcases/kernel/syscalls/statx/statx01.c | 8 ++++---- > testcases/kernel/syscalls/statx/statx02.c | 4 ++-- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/testcases/kernel/syscalls/statx/statx01.c b/testcases/kernel/syscalls/statx/statx01.c > index 2358dd7bc..1289366b9 100644 > --- a/testcases/kernel/syscalls/statx/statx01.c > +++ b/testcases/kernel/syscalls/statx/statx01.c > @@ -79,11 +79,11 @@ static void test_normal_file(void) > > if (buff.stx_size == SIZE) > tst_res(TPASS, > - "stx_size(%"PRIu64") is correct", buff.stx_size); > + "stx_size(%"PRIu64") is correct", (uint64_t)buff.stx_size); > else > tst_res(TFAIL, > "stx_size(%"PRIu64") is different from expected(%u)", > - buff.stx_size, SIZE); > + (uint64_t)buff.stx_size, SIZE); > > if ((buff.stx_mode & ~(S_IFMT)) == MODE) > tst_res(TPASS, "stx_mode(%u) is correct", buff.stx_mode); > @@ -94,10 +94,10 @@ static void test_normal_file(void) > > if (buff.stx_blocks <= buff.stx_blksize/512 * 2) > tst_res(TPASS, "stx_blocks(%"PRIu64") is valid", > - buff.stx_blocks); > + (uint64_t)buff.stx_blocks); > else > tst_res(TFAIL, "stx_blocks(%"PRIu64") is invalid", > - buff.stx_blocks); > + (uint64_t)buff.stx_blocks); > > } > > diff --git a/testcases/kernel/syscalls/statx/statx02.c b/testcases/kernel/syscalls/statx/statx02.c > index 08ea940cb..63133a3b7 100644 > --- a/testcases/kernel/syscalls/statx/statx02.c > +++ b/testcases/kernel/syscalls/statx/statx02.c > @@ -50,11 +50,11 @@ static void test_empty_path(void) > > if (buf.stx_size == SIZE) > tst_res(TPASS, > - "stx_size(%"PRIu64") is correct", buf.stx_size); > + "stx_size(%"PRIu64") is correct", (uint64_t)buf.stx_size); > else > tst_res(TFAIL, > "stx_size(%"PRIu64") is not same as expected(%u)", > - buf.stx_size, SIZE); > + (uint64_t)buf.stx_size, SIZE); > > } > > -- > 2.23.0 > > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp
Hi!
Looks like the __u64 is not going to be compatible in userspace and we
cannot do better than explicit casts anytime soon.
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Hi Cyril > Hi! > Looks like the __u64 is not going to be compatible in userspace and we > cannot do better than explicit casts anytime soon. > > Reviewed-by: Cyril Hrubis<chrubis@suse.cz> Merged. Thanks for your effort! Best Regards Yang Xu >
diff --git a/testcases/kernel/syscalls/statx/statx01.c b/testcases/kernel/syscalls/statx/statx01.c index 2358dd7bc..1289366b9 100644 --- a/testcases/kernel/syscalls/statx/statx01.c +++ b/testcases/kernel/syscalls/statx/statx01.c @@ -79,11 +79,11 @@ static void test_normal_file(void) if (buff.stx_size == SIZE) tst_res(TPASS, - "stx_size(%"PRIu64") is correct", buff.stx_size); + "stx_size(%"PRIu64") is correct", (uint64_t)buff.stx_size); else tst_res(TFAIL, "stx_size(%"PRIu64") is different from expected(%u)", - buff.stx_size, SIZE); + (uint64_t)buff.stx_size, SIZE); if ((buff.stx_mode & ~(S_IFMT)) == MODE) tst_res(TPASS, "stx_mode(%u) is correct", buff.stx_mode); @@ -94,10 +94,10 @@ static void test_normal_file(void) if (buff.stx_blocks <= buff.stx_blksize/512 * 2) tst_res(TPASS, "stx_blocks(%"PRIu64") is valid", - buff.stx_blocks); + (uint64_t)buff.stx_blocks); else tst_res(TFAIL, "stx_blocks(%"PRIu64") is invalid", - buff.stx_blocks); + (uint64_t)buff.stx_blocks); } diff --git a/testcases/kernel/syscalls/statx/statx02.c b/testcases/kernel/syscalls/statx/statx02.c index 08ea940cb..63133a3b7 100644 --- a/testcases/kernel/syscalls/statx/statx02.c +++ b/testcases/kernel/syscalls/statx/statx02.c @@ -50,11 +50,11 @@ static void test_empty_path(void) if (buf.stx_size == SIZE) tst_res(TPASS, - "stx_size(%"PRIu64") is correct", buf.stx_size); + "stx_size(%"PRIu64") is correct", (uint64_t)buf.stx_size); else tst_res(TFAIL, "stx_size(%"PRIu64") is not same as expected(%u)", - buf.stx_size, SIZE); + (uint64_t)buf.stx_size, SIZE); }
warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘__u64’ {aka ‘long long unsigned int’} Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> --- testcases/kernel/syscalls/statx/statx01.c | 8 ++++---- testcases/kernel/syscalls/statx/statx02.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-)