Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# C++ configuration options

# Copyright (c) 2018 B. Leforestier
# SPDX-License-Identifier: Apache-2.0

menuconfig CPLUSPLUS
	bool "C++ support for the application"
	help
	  This option enables the use of applications built with C++.

if CPLUSPLUS

choice
	prompt "C++ Standard"
	default STD_CPP11
	help
	  C++ Standards.

config STD_CPP98
	bool "C++ 98"
	help
	  1998 C++ standard as modified by the 2003 technical corrigendum
	  and some later defect reports.

config STD_CPP11
	bool "C++ 11"
	help
	  2011 C++ standard, previously known as C++0x.

config STD_CPP14
	bool "C++ 14"
	help
	  2014 C++ standard.

config STD_CPP17
	bool "C++ 17"
	help
	  2017 C++ standard, previously known as C++0x.

config STD_CPP2A
	bool "C++ 2a"
	help
	  Next revision of the C++ standard, which is expected to be published in 2020.

config STD_CPP20
	bool "C++ 20"
	help
	  2020 C++ standard, previously known as C++2A.

config STD_CPP2B
	bool "C++ 2b"
	help
	  Next revision of the C++ standard, which is expected to be published in 2023.

endchoice

config LIB_CPLUSPLUS
	bool "Link with STD C++ library"
	depends on !MINIMAL_LIBC
	help
	  Link with STD C++ Library.

if LIB_CPLUSPLUS

config EXCEPTIONS
	bool "Enable C++ exceptions support"
	depends on !NEWLIB_LIBC_NANO
	help
	  This option enables support of C++ exceptions.

config RTTI
	bool "Enable C++ RTTI support"
	help
	  This option enables support of C++ RTTI.

endif # LIB_CPLUSPLUS

config CPP_STATIC_INIT_GNU
	# As of today only ARC MWDT toolchain doesn't support GNU-compatible
	# initialization of CPP static objects, new toolchains can be added
	# here if required.
	def_bool "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "arcmwdt"
	help
	  GNU-compatible initialization of CPP static objects

endif # CPLUSPLUS