[rtdef][libc] solve the conflicts between libc data types and rtdef data types (#5961)

This commit is contained in:
Man, Jianting (Meco) 2022-05-18 22:35:32 -04:00 committed by GitHub
parent 50a42331e6
commit c147ff417c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 3 deletions

View File

@ -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)

View File

@ -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'):

View File

@ -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)

View File

@ -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 */