Re: [PATCH v2 08/10] selftests/nolibc: avoid sign-compare warnings

From: Zhangjin Wu
Date: Tue Aug 01 2023 - 02:50:50 EST


> On 2023-08-01 13:48:19+0800, Zhangjin Wu wrote:
> > > These warnings will be enabled later so avoid triggering them.
> > >
> > > Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
> > > ---
> > > tools/testing/selftests/nolibc/nolibc-test.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c
> > > index cb17cccd0bc7..82714051c72f 100644
> > > --- a/tools/testing/selftests/nolibc/nolibc-test.c
> > > +++ b/tools/testing/selftests/nolibc/nolibc-test.c
> > > @@ -749,7 +749,7 @@ static int test_mmap_munmap(void)
> > > };
> > >
> > > page_size = getpagesize();
> > > - if (page_size < 0)
> > > + if (page_size == 0)
> > > return -1;
> > >
> >
> > It was my mistake before, but do we need to align with the one used in
> > test_getpagesize():
> >
> > static int test_getpagesize(void)
> > {
> > long x = getpagesize();
> > int c;
> >
> > if (x < 0)
> > return x;
> >
> > Use 'long' instead of 'size_t' to declare page_size?
>
> Good point.
>
> Given that getpagesize() is documented as returning "int" I guess we
> should actually change the implementation in nolibc.
>

Yes, it is documented at [1], perhaps Willy looked at this line before:

This interface, returning an int, may have problems representing appropriate values in the future. Applications should use the sysconf() function instead.

[1]: https://pubs.opengroup.org/onlinepubs/7908799/xsh/getpagesize.html

> > Thanks,
> > Zhangjin