[cpp] attach CXXFLAGS to reduce the resource consumptions
This commit is contained in:
parent
c4df1d6a19
commit
4f5ba63c7c
@ -38,7 +38,7 @@ if GetDepend('RT_USING_PWM'):
|
|||||||
if GetDepend('RT_USING_WDT'):
|
if GetDepend('RT_USING_WDT'):
|
||||||
src += ['drv_wdt.c']
|
src += ['drv_wdt.c']
|
||||||
|
|
||||||
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
|
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=['NNCASE_NO_EXCEPTIONS'])
|
||||||
|
|
||||||
objs = [group]
|
objs = [group]
|
||||||
|
|
||||||
|
@ -16,4 +16,8 @@ if RT_USING_CPLUSPLUS
|
|||||||
bool "Enable RT-Thread APIs C++ wrapper"
|
bool "Enable RT-Thread APIs C++ wrapper"
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config RT_USING_CPP_EXCEPTIONS
|
||||||
|
bool "Enable C++ exceptions (will increase overhead)"
|
||||||
|
default n
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -5,8 +5,13 @@ Import('rtconfig')
|
|||||||
cwd = GetCurrentDir()
|
cwd = GetCurrentDir()
|
||||||
src = ['cxx_crt_init.c', 'cxx_crt.cpp']
|
src = ['cxx_crt_init.c', 'cxx_crt.cpp']
|
||||||
CPPPATH = [cwd]
|
CPPPATH = [cwd]
|
||||||
|
CXXFLAGS = ''
|
||||||
|
|
||||||
group = DefineGroup('CPP', src, depend=['RT_USING_CPLUSPLUS'], CPPPATH=CPPPATH)
|
|
||||||
|
if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm'] and not GetDepend('RT_USING_CPP_EXCEPTIONS'):
|
||||||
|
CXXFLAGS += ' -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections' # reduce resource consumptions
|
||||||
|
|
||||||
|
group = DefineGroup('CPP', src, depend=['RT_USING_CPLUSPLUS'], CPPPATH=CPPPATH, CXXFLAGS=CXXFLAGS)
|
||||||
|
|
||||||
list = os.listdir(cwd)
|
list = os.listdir(cwd)
|
||||||
for d in list:
|
for d in list:
|
||||||
|
@ -17,11 +17,9 @@
|
|||||||
|
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
|
|
||||||
#define RT_USING_CPP_EXCEPTION
|
|
||||||
|
|
||||||
inline void throw_system_error(int err, const char *what_msg)
|
inline void throw_system_error(int err, const char *what_msg)
|
||||||
{
|
{
|
||||||
#ifdef RT_USING_CPP_EXCEPTION
|
#ifdef RT_USING_CPP_EXCEPTIONS
|
||||||
throw std::system_error(std::error_code(err, std::system_category()), what_msg);
|
throw std::system_error(std::error_code(err, std::system_category()), what_msg);
|
||||||
#else
|
#else
|
||||||
(void)err;
|
(void)err;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user