Merge branch 'feature/cxx_rtti_preparation_v3' into 'master'
C++: re-add provisions for optional RTTI support (v3) See merge request espressif/esp-idf!6556
This commit is contained in:
commit
daa9955e4a
|
@ -15,3 +15,7 @@ target_link_libraries(${COMPONENT_LIB} PUBLIC stdcpp_pthread)
|
|||
if(NOT CONFIG_COMPILER_CXX_EXCEPTIONS)
|
||||
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u __cxx_fatal_exception")
|
||||
endif()
|
||||
|
||||
if(NOT CONFIG_COMPILER_CXX_RTTI)
|
||||
target_link_libraries(${COMPONENT_LIB} PUBLIC -fno-rtti)
|
||||
endif()
|
||||
|
|
|
@ -62,11 +62,6 @@ else()
|
|||
target_linker_script(${COMPONENT_LIB} INTERFACE "ld/esp32.extram.bss.ld")
|
||||
endif()
|
||||
|
||||
if(NOT CONFIG_COMPILER_CXX_RTTI)
|
||||
# This has to be linked before esp32.project.ld
|
||||
target_linker_script(${COMPONENT_LIB} INTERFACE "ld/esp32.discard-rtti.ld")
|
||||
endif()
|
||||
|
||||
# Process the template file through the linker script generation mechanism, and use the output for linking the
|
||||
# final binary
|
||||
target_linker_script(${COMPONENT_LIB} INTERFACE "${CMAKE_CURRENT_LIST_DIR}/ld/esp32.project.ld.in"
|
||||
|
|
|
@ -9,11 +9,6 @@ ifdef CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
|
|||
LINKER_SCRIPTS += esp32.extram.bss.ld
|
||||
endif
|
||||
|
||||
ifndef CONFIG_COMPILER_CXX_RTTI
|
||||
# This linker script must come before esp32.project.ld
|
||||
LINKER_SCRIPTS += esp32.discard-rtti.ld
|
||||
endif
|
||||
|
||||
#Linker scripts used to link the final application.
|
||||
#Warning: These linker scripts are only used when the normal app is compiled; the bootloader
|
||||
#specifies its own scripts.
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
/* This is only included if CONFIG_COMPILER_CXX_RTTI is not set, to
|
||||
* move RTTI sections of libstdc++ to an unused non-loadable memory region.
|
||||
*/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.rodata.discard-rtti (NOLOAD):
|
||||
{
|
||||
*libstdc++.a:(.rodata._ZTI* .rodata._ZTS*)
|
||||
} > discard_seg
|
||||
}
|
|
@ -100,11 +100,6 @@ MEMORY
|
|||
/* external memory ,including data and text */
|
||||
extern_ram_seg(RWX) : org = 0x3F800000,
|
||||
len = 0x400000
|
||||
|
||||
/* This is not a memory range which can really be accessed; we use it as a "bitbucket"
|
||||
where non-loadable sections, which aren't used at run time, can be discarded.
|
||||
*/
|
||||
discard_seg (R) : org = 0x00000000, len = 0x10000000
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE)
|
||||
|
|
|
@ -484,6 +484,7 @@ ifdef CONFIG_COMPILER_CXX_RTTI
|
|||
CXXFLAGS += -frtti
|
||||
else
|
||||
CXXFLAGS += -fno-rtti
|
||||
LDFLAGS += -fno-rtti
|
||||
endif
|
||||
|
||||
ARFLAGS := cru
|
||||
|
|
Loading…
Reference in a new issue