summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMan, Jianting (Meco) <[email protected]>2022-05-18 22:35:32 -0400
committerGitHub <[email protected]>2022-05-19 10:35:32 +0800
commitc147ff417cd8f36a96e4bbee55c76092b85513e3 (patch)
treea663597bdd08149f8d210362b5db2a00cfb797e7
parent50a42331e6c3aa138bea2ff8ecedf8ad719dc3b7 (diff)
[rtdef][libc] solve the conflicts between libc data types and rtdef data types (#5961)
-rw-r--r--components/libc/compilers/armlibc/SConscript2
-rw-r--r--components/libc/compilers/dlib/SConscript2
-rw-r--r--components/libc/compilers/newlib/SConscript2
-rw-r--r--include/rtdef.h15
4 files changed, 18 insertions, 3 deletions
diff --git a/components/libc/compilers/armlibc/SConscript b/components/libc/compilers/armlibc/SConscript
index 1d53ead4e0..d589c79171 100644
--- a/components/libc/compilers/armlibc/SConscript
+++ b/components/libc/compilers/armlibc/SConscript
@@ -4,7 +4,7 @@ Import('rtconfig')
src = Glob('*.c')
group = []
-CPPDEFINES = ['RT_USING_ARM_LIBC']
+CPPDEFINES = ['RT_USING_ARM_LIBC', 'RT_USING_LIBC']
if rtconfig.PLATFORM in ['armcc', 'armclang']:
group = DefineGroup('Compiler', src, depend = [''], CPPDEFINES = CPPDEFINES)
diff --git a/components/libc/compilers/dlib/SConscript b/components/libc/compilers/dlib/SConscript
index e11ea65b97..6f7b61f000 100644
--- a/components/libc/compilers/dlib/SConscript
+++ b/components/libc/compilers/dlib/SConscript
@@ -4,7 +4,7 @@ Import('rtconfig')
src = Glob('*.c')
group = []
-CPPDEFINES = ['RT_USING_DLIBC']
+CPPDEFINES = ['RT_USING_DLIBC', 'RT_USING_LIBC']
if rtconfig.PLATFORM == 'iar':
if GetDepend('DFS_USING_POSIX'):
diff --git a/components/libc/compilers/newlib/SConscript b/components/libc/compilers/newlib/SConscript
index c041a4e944..b1d4a53eb1 100644
--- a/components/libc/compilers/newlib/SConscript
+++ b/components/libc/compilers/newlib/SConscript
@@ -17,7 +17,7 @@ if rtconfig.PLATFORM == 'gcc':
print('Newlib version:' + GetNewLibVersion(rtconfig))
# identify this is Newlib, and only enable POSIX.1-1990
- CPPDEFINES = ['RT_USING_NEWLIB', '_POSIX_C_SOURCE=1']
+ CPPDEFINES = ['RT_USING_NEWLIB', 'RT_USING_LIBC', '_POSIX_C_SOURCE=1']
group = DefineGroup('Compiler', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
diff --git a/include/rtdef.h b/include/rtdef.h
index 0ab52f977d..4da65aa356 100644
--- a/include/rtdef.h
+++ b/include/rtdef.h
@@ -71,6 +71,20 @@ extern "C" {
/* RT-Thread basic data type definitions */
#ifndef RT_USING_ARCH_DATA_TYPE
+#ifdef RT_USING_LIBC
+#include <stdint.h>
+#include <stddef.h>
+typedef int8_t rt_int8_t; /**< 8bit integer type */
+typedef int16_t rt_int16_t; /**< 16bit integer type */
+typedef int32_t rt_int32_t; /**< 32bit integer type */
+typedef uint8_t rt_uint8_t; /**< 8bit unsigned integer type */
+typedef uint16_t rt_uint16_t; /**< 16bit unsigned integer type */
+typedef uint32_t rt_uint32_t; /**< 32bit unsigned integer type */
+typedef int64_t rt_int64_t; /**< 64bit integer type */
+typedef uint64_t rt_uint64_t; /**< 64bit unsigned integer type */
+typedef size_t rt_size_t; /**< Type for size number */
+
+#else
typedef signed char rt_int8_t; /**< 8bit integer type */
typedef signed short rt_int16_t; /**< 16bit integer type */
typedef signed int rt_int32_t; /**< 32bit integer type */
@@ -87,6 +101,7 @@ typedef signed long long rt_int64_t; /**< 64bit integer type
typedef unsigned long long rt_uint64_t; /**< 64bit unsigned integer type */
typedef unsigned int rt_size_t; /**< Type for size number */
#endif /* ARCH_CPU_64BIT */
+#endif /* RT_USING_LIBC */
#endif /* RT_USING_ARCH_DATA_TYPE */
typedef int rt_bool_t; /**< boolean type */