[PATCH 0/3] integer limit macro consolidation

Tom Rini trini at konsulko.com
Sat Jul 5 00:10:33 CEST 2025


On Thu, Jul 03, 2025 at 01:37:27PM +0200, Rasmus Villemoes wrote:

> I was bitten by our limit macros not being usable in #if conditionals
> when building a standalone app. It turns out that the work to fix that
> had already been started by the inclusion of the mbedtls library, so
> it's something that people do hit.
> 
> Let's finish the job by providing suitable limit macros for all three families:
> 
> - Standard C types, char, short, ...
> - Kernel-style fixed-width types s8, u64, ...
> - POSIX/C99 fixed-width types int16_t, uint32_t, ...
> 
> Please note that a naive approach like spelling out the full decimal
> value for the constants doesn't really work, as there is no such thing
> as a "negative integer constant". That is, doing
> 
> #define LLONG_MIN -9223372036854775808LL
> 
> would lead to the compiler complaining
> 
>   warning: integer constant is so large that it is unsigned
> 
> and the type of that LLONG_MIN would actually be "unsigned long long", so e.g.
> 
> #if LLONG_MIN >= 0
> #warning "LLONG_MIN is not negative?"
> #endif
> 
> would fire.

Thanks for doing this. I assume you put this through CI? My only real
concern there is with host tools on macOS/Windows.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250704/e748b338/attachment.sig>


More information about the U-Boot mailing list