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 +#include +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 */