Hi Tom, On Fri, 18 Apr 2025 at 15:39, Tom Rini <tr...@konsulko.com> wrote: > > On Fri, Apr 18, 2025 at 04:59:13AM -0600, Simon Glass wrote: > > > From: Simon Glass <simon.gl...@canonical.com> > > > > Add part of this file from Linux v6.14 so we can include it from the > > linux/overflow.h file. Drop the relevant section from kernel.h > > > > The top of the file is omitted since it defines things used in mbedos > > and we get an error on SIZE_MAX. > > > > Signed-off-by: Simon Glass <simon.gl...@canonical.com> > > --- > > Error is: > > > > In file included from include/limits.h:6, > > from > > lib/mbedtls/external/mbedtls/library/constant_time.c:14: > > include/linux/limits.h:7:35: error: missing binary operator before token > > "0" > > 7 | #define SIZE_MAX (~(size_t)0) > > | ^ > > lib/mbedtls/external/mbedtls/library/constant_time_internal.h:65:6: note: > > in expansion of macro ‘SIZE_MAX’ > > 65 | #if (SIZE_MAX > 0xffffffffffffffffULL) > > | ^~~~~~~~ > > include/linux/limits.h:7:35: error: missing binary operator before token > > "0" > > 7 | #define SIZE_MAX (~(size_t)0) > > | ^ > > lib/mbedtls/external/mbedtls/library/constant_time_internal.h:71:8: note: > > in expansion of macro ‘SIZE_MAX’ > > 71 | #elif (SIZE_MAX > 0xffffffff) || defined(MBEDTLS_HAVE_INT64) > > | ^~~~~~~~ > > make[3]: *** [scripts/Makefile.build:256: > > lib/mbedtls/external/mbedtls/library/constant_time.o] Error 1 > > make[2]: *** [scripts/Makefile.build:398: lib/mbedtls] Error 2 > > > > Changes in v2: > > - Add new patch to bring in linux/limits.h > > > > include/limits.h | 2 ++ > > include/linux/kernel.h | 12 ------------ > > include/linux/limits.h | 21 +++++++++++++++++++++ > > 3 files changed, 23 insertions(+), 12 deletions(-) > > create mode 100644 include/linux/limits.h > > Ugh. I think we need to: > - Fix lib/string.c (and Fixes commit 7c7361b98d6e ("lib: implement > strnstr()")) to not bring in <limits.h> as that should be limited to > mbedtls usage. > - Not bring <linux/limits.h> to <limits.h> to start with at least (we > can worry about handling wrappers around overflow protection there > separately).
There are quite a few places which need the limits. If I remove the dups from kernel.h then some things don't compile, at least not without including linux/limits,h in limits,h (which it seems to me we should do). So is this something you would like to take over, or do we need Linaro do fix up mbedtls, or...? Regards, Simon