Subject: Re: [PATCH] iproute2: fix build failure on ppc64le

From: Stephen Hemminger <[email-masked]>
Date: Fri, 9 Feb 2024 08:35:33 -0800

On Fri,  9 Feb 2024 11:24:47 +0100
Andrea Claudi <[email-masked]> 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);