[U-Boot] [PATCH 3/9] common: include <inttypes.h> always
Masahiro Yamada
yamada.masahiro at socionext.com
Tue Jul 31 01:41:32 UTC 2018
2018-07-26 22:59 GMT+09:00 Philipp Tomsich
<philipp.tomsich at theobroma-systems.com>:
> With the ram-size variable changed to u64, we'll need appropriate
> macros for printing u64 values correctly either in 32bit builds
> (i.e. ILP32 models) or in 64bit builds (i.e. LP64 models). Best to
> make the PRIx64 macro available everywhere.
>
> This include inttypes.h from common.h to make the various macros for
> formatted printing available to everyone.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> ---
NACK.
PRIx64 is evil crap. I would make the code super ugly.
Do not use it.
The right thing to do is use the same typedefs
for all architectures.
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef unsigned long long u64;
This works for both ILP32 and LP64.
Use '%llx' for printing u64 variables _always_.
This is what Linux exactly does.
In fact, Linux defined fixed-width types differently
for different architectures in old days.
After long time effort, Linux unified
the fixed-width types for the kernel space.
https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/int-ll64.h
See Linux commit:
commit 0c79a8e29b5fcbcbfd611daf9d500cfad8370fcf
Author: Geert Uytterhoeven <geert at linux-m68k.org>
Date: Thu Jan 23 15:53:43 2014 -0800
asm/types.h: Remove include/asm-generic/int-l64.h
And, I fixed ARM Trusted Firmware in the same way:
https://github.com/ARM-software/arm-trusted-firmware/commit/0a2d5b43c81ed6132761023bf43755f13122ddf0
U-Boot is still doing wrong,
and core developers in U-Boot do not understand this, unfortunately.
> include/common.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/common.h b/include/common.h
> index 940161f..9de9145 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -30,6 +30,7 @@ typedef volatile unsigned char vu_char;
> #include <linux/stringify.h>
> #include <asm/ptrace.h>
> #include <stdarg.h>
> +#include <inttypes.h>
> #include <stdio.h>
> #include <linux/kernel.h>
>
> --
> 2.1.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list