esp-idf/components/esp32
Ivan Grokhotkov 499d087c91 C++: add provisions for optional RTTI support
Ref. https://github.com/espressif/esp-idf/issues/1684

This change allows RTTI to be enabled in menuconfig. For full RTTI
support, libstdc++.a in the toolchain should be built without
-fno-rtti, as it is done now.

Generally if libstdc++.a is built with RTTI, applications which do not
use RTTI (and build with -fno-rtti) could still include typeinfo
structures referenced from STL classes’ vtables. This change works
around this, by moving all typeinfo structures from libstdc++.a into
a non-loadable section, placed into a non-existent memory region
starting at address 0. This can be done because when the application
is compiled with -fno-rtti, typeinfo structures are not used at run
time. This way, typeinfo structures do not contribute to the
application binary size.

If the application is build with RTTI support, typeinfo structures are
linked into the application .rodata section as usual.

Note that this commit does not actually enable RTTI support.
The respective Kconfig option is hidden, and will be made visible when
the toolchain is updated.
2019-10-13 14:46:44 +02:00
..
include esp32: Remove deprecated system_deep_sleep function 2019-09-13 09:44:07 +10:00
ld C++: add provisions for optional RTTI support 2019-10-13 14:46:44 +02:00
test spi: move deprecated functions into internal header 2019-10-08 11:51:39 +08:00
brownout.c brownout: fix rtc_brownout_isr_handler signature 2019-08-01 16:28:56 +07:00
cache_err_int.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
cache_sram_mmu.c Spiram: Add option to reserve MMU banks; add himem API to make use of those banks 2018-10-15 14:32:58 +08:00
clk.c spi: move deprecated functions into internal header 2019-10-08 11:51:39 +08:00
CMakeLists.txt C++: add provisions for optional RTTI support 2019-10-13 14:46:44 +02:00
component.mk C++: add provisions for optional RTTI support 2019-10-13 14:46:44 +02:00
cpu_start.c Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
crosscore_int.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
dport_access.c efuse: update the scheme of getting chip revision 2019-08-13 10:59:02 +08:00
dport_panic_highint_hdl.S esp32: Dis interrupts up to 5 lvl for DPORT 2019-07-16 05:54:45 +00:00
esp_adapter.c Coexist: fix some coexist bugs 2019-09-30 11:49:16 +08:00
esp_clk_internal.h tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
esp_himem.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
esp_timer_esp32.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
hw_random.c move esp32 chip specific includes to esp32/xxx.h 2019-03-18 17:14:05 +08:00
int_wdt.c timer_group: use the LL 2019-08-09 13:46:31 +08:00
intr_alloc.c ipc: prevent code getting pulled in for unicore configuration 2019-08-28 12:47:08 +05:30
Kconfig Merge branch 'feature/add_psram_workaround_option' into 'master' 2019-10-09 23:41:09 +08:00
linker.lf esp32: Use FPU for floating point divide, power, complex multiplications 2019-05-29 10:14:31 +10:00
Makefile.projbuild ldgen: fix build issue on make when build dir is a symlink 2019-08-27 13:53:31 +08:00
panic.c Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
pm_esp32.c soc/pm: Remove deprecated use of rtc_cpu_freq_t enum 2019-09-13 09:44:07 +10:00
pm_trace.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
project_include.cmake components: update with build system changes 2019-05-13 19:59:17 +08:00
reset_reason.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
sdkconfig.rename feat(psram): config SPI psram pins based on efuse value 2019-05-28 21:25:16 +08:00
sleep_modes.c esp32: Remove deprecated system_deep_sleep function 2019-09-13 09:44:07 +10:00
spiram_psram.c spi: move deprecated functions into internal header 2019-10-08 11:51:39 +08:00
spiram_psram.h tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
spiram.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
system_api.c system_api: call shutdown handlers in reverse order 2019-10-07 16:36:18 +02:00
task_wdt.c wdt: Remove deprecated esp_task_wdt_feed() function 2019-09-13 09:44:07 +10:00