[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240209164542.716b4d7a@hermes.local>
Date: Fri, 9 Feb 2024 16:45:42 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: David Ahern <dsahern@...il.com>
Cc: Andrea Claudi <aclaudi@...hat.com>, netdev@...r.kernel.org,
sgallagh@...hat.com
Subject: Re: [PATCH] iproute2: fix build failure on ppc64le
On Fri, 9 Feb 2024 15:14:28 -0700
David Ahern <dsahern@...il.com> wrote:
> On 2/9/24 9:35 AM, Stephen Hemminger wrote:
> > On Fri, 9 Feb 2024 11:24:47 +0100
> > Andrea Claudi <aclaudi@...hat.com> wrote:
> >
> >> ss.c:3244:34: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘__u64’ {aka ‘long unsigned int’} [-Wformat=]
> >> 3244 | out(" rcv_nxt:%llu", s->mptcpi_rcv_nxt);
> >> | ~~~^ ~~~~~~~~~~~~~~~~~
> >> | | |
> >> | | __u64 {aka long unsigned int}
> >> | long long unsigned int
> >> | %lu
> >>
> >> This happens because __u64 is defined as long unsigned on ppc64le. As
> >> pointed out by Florian Weimar, we should use -D__SANE_USERSPACE_TYPES__
> >> if we really want to use long long unsigned in iproute2.
> >
> > Ok, this looks good.
> > Another way to fix would be to use the macros defined in inttypes.h
> >
> > out(" rcv_nxt:"PRIu64, s->mptcpi_rcv_nxt);
> >
>
> since the uapi is __u64, I think this is the better approach.
NVM
Tried it, but __u64 is not the same as uint64_t even on x86.
__u64 is long long unsigned int
uint64_t is long unsigned int
Powered by blists - more mailing lists