cpp: Added option to disable Zephyrs cpp implementation

Added a Kconfig option to disable Zephyrs cpp implementation for
operator new, delete, pure virtual functions and vtables.

Signed-off-by: Jan Van Winkel <jan.van_winkel@dxplore.eu>
This commit is contained in:
Jan Van Winkel 2019-08-18 02:13:32 +02:00 committed by Andrew Boie
parent 6f9280941f
commit 626f96ec30
3 changed files with 27 additions and 5 deletions

View File

@ -1,10 +1,15 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_sources_ifdef(CONFIG_CPLUSPLUS
cpp_virtual.c
cpp_vtable.cpp
zephyr_sources(
cpp_init_array.c
cpp_ctors.c
cpp_dtors.c
)
if (NOT CONFIG_LIB_CPLUSPLUS OR CONFIG_ZEPHYR_CPLUSPLUS)
zephyr_sources(
cpp_virtual.c
cpp_vtable.cpp
cpp_new.cpp
)
endif()

View File

@ -65,4 +65,14 @@ config RTTI
help
This option enables support of C++ RTTI.
if LIB_CPLUSPLUS
config ZEPHYR_CPLUSPLUS
bool "Use Zephyr C++ Implementation"
help
Use Zephyr implementation for operator new, delete, pure virtual
functions and vtables.
endif #LIB_CPLUSPLUS
endif # CPLUSPLUS

View File

@ -2,11 +2,18 @@ tests:
misc.app_dev.libcxx:
arch_exclude: posix
platform_exclude: qemu_x86_coverage
min_flash: 54
tags: cpp
misc.app_dev.libcxx.zephyr_cpp:
arch_exclude: posix
platform_exclude: qemu_x86_coverage
tags: cpp
extra_configs:
- CONFIG_ZEPHYR_CPLUSPLUS=y
misc.app_dev.libcxx.exceptions:
arch_exclude: posix
platform_exclude: qemu_x86_coverage 96b_meerkat96
colibri_imx7d_m4 warp7_m4 pico_pi_m4 qemu_x86_64
platform_exclude: qemu_x86_coverage
min_flash: 54
tags: cpp
extra_configs:
- CONFIG_EXCEPTIONS=y