On 2/20/20 12:45 PM, Sam Protsenko wrote:
Hi Eugeniu,
On Mon, Feb 17, 2020 at 12:24 PM Eugeniu Rosca <ero...@de.adit-jv.com> wrote:
Replace 'u32' by 'uint32_t' in image.h, since the former may lead to
build failures in U-Boot tooling (see [1]).
Avoid using 'uint', since it is not a fixed-width type [2], potentially
leading to a dangerous mismatch between the prototypes and definitions
of the android_image_get_dtb* functions.
This should be the quickest way to overcome the tooling build failure,
with more future-proof solutions being proposed by Yamada-san in [1].
[1] https://patchwork.ozlabs.org/patch/1238245/
[2] Excerpt from https://en.cppreference.com/w/cpp/language/types
-----------8<------------
Type specifier Width in bits by data model
LP32 ILP32 LLP64 LP64
unsigned int 16 32 32 32
-----------8<------------
Cc: Tom Rini <tr...@konsulko.com>
Cc: Sam Protsenko <joe.s...@gmail.com>
Fixes: 7f2531502c74c0 ("image: android: Add routine to get dtbo params")
Fixes: c3bfad825a71ea ("image: android: Add functions for handling dtb field")
Suggested-by: Masahiro Yamada <masahi...@kernel.org>
Signed-off-by: Eugeniu Rosca <ero...@de.adit-jv.com>
---
Reviewed-by: Sam Protsenko <joe.s...@gmail.com>
uint32_t is defined in glibc's stdint.h and in our include/linux/types.h
(which is included in common.h).
We use image.h in tools/*.c in files which neither include common.h nor
stdint.h. But for USE_HOSTCC=y include/compiler.h includes stdint.h.
BUT changing a function definition in a header and not doing the same in
the C-file looks quite inconsistent to me.
Please, use the same types in both the C-file and in the header.
Best regards
Heinrich