Re: [PATCH] openrisc: Define __kernel_size_t to suppress compiler warnings

From: Geert Uytterhoeven
Date: Wed Dec 21 2016 - 02:05:33 EST


On Tue, Dec 20, 2016 at 11:44 PM, Andreas Schwab <schwab@xxxxxxxxxxxxxx> wrote:
> On Dez 20 2016, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>> When I saw this patch, I was already a bit skeptical about it, but I noticed
>> other architectures (e.g. avr32) are doing the same, so I didn't reply.
>>
>> In my experience, "format '%zu' expects argument of type 'size_t', but
>> argument 3 has type 'unsigned int'" happens when using a compiler that
>> was not configured to use the correct type (should be unsigned long) for
>> size_t. Typically this happens when using a compiler not configured for
>> a Linux target.
>
> 32-bit targets typically use unsigned int for size_t. It is part of the
> ABI, so all compilers must agree. Since or32 is a out-of-tree port, and
> gcc defaults to unsigned long for size_t, mismatches can happen if
> people are using incomplete patches.

Right, thanks for correcting me!
It should indeed be unsigned int on 32-bit, and unsigned long on 64-bit.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds