[PATCH v2 1/3] Bring in linux/limits.h

Simon Glass sjg at chromium.org
Fri Apr 18 12:59:13 CEST 2025


From: Simon Glass <simon.glass at 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.glass at 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

diff --git a/include/limits.h b/include/limits.h
index 4700cc7a59f..4927cc7333b 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -3,6 +3,8 @@
 #ifndef _LIMITS_H
 #define _LIMITS_H
 
+#include <linux/limits.h>
+
 #define INT_MAX     0x7fffffff
 #define UINT_MAX    0xffffffffU
 #define CHAR_BIT    8
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 9467edd65ab..569804f7264 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -16,18 +16,6 @@
 #define LLONG_MIN	(-LLONG_MAX - 1)
 #define ULLONG_MAX	(~0ULL)
 
-#define U8_MAX		((u8)~0U)
-#define S8_MAX		((s8)(U8_MAX>>1))
-#define S8_MIN		((s8)(-S8_MAX - 1))
-#define U16_MAX		((u16)~0U)
-#define S16_MAX		((s16)(U16_MAX>>1))
-#define S16_MIN		((s16)(-S16_MAX - 1))
-#define U32_MAX		((u32)~0U)
-#define S32_MAX		((s32)(U32_MAX>>1))
-#define S32_MIN		((s32)(-S32_MAX - 1))
-#define U64_MAX		((u64)~0ULL)
-#define S64_MAX		((s64)(U64_MAX>>1))
-#define S64_MIN		((s64)(-S64_MAX - 1))
 
 #define INT32_MAX	S32_MAX
 
diff --git a/include/linux/limits.h b/include/linux/limits.h
new file mode 100644
index 00000000000..0117bf7eea4
--- /dev/null
+++ b/include/linux/limits.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_LIMITS_H
+#define _LINUX_LIMITS_H
+
+#include <linux/types.h>
+
+#define U8_MAX		((u8)~0U)
+#define S8_MAX		((s8)(U8_MAX >> 1))
+#define S8_MIN		((s8)(-S8_MAX - 1))
+#define U16_MAX		((u16)~0U)
+#define S16_MAX		((s16)(U16_MAX >> 1))
+#define S16_MIN		((s16)(-S16_MAX - 1))
+#define U32_MAX		((u32)~0U)
+#define U32_MIN		((u32)0)
+#define S32_MAX		((s32)(U32_MAX >> 1))
+#define S32_MIN		((s32)(-S32_MAX - 1))
+#define U64_MAX		((u64)~0ULL)
+#define S64_MAX		((s64)(U64_MAX >> 1))
+#define S64_MIN		((s64)(-S64_MAX - 1))
+
+#endif /* _LINUX_LIMITS_H */
-- 
2.43.0

base-commit: 5841e78ed6ebd31b26553003e880be378b232cd9
branch: sec2


More information about the U-Boot mailing list