doc: release: Add release notes for C++ library refactoring

This commit adds the release notes related to the C++ subsystem-to-
library refactoring.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
This commit is contained in:
Stephanos Ioannidis 2022-12-13 02:18:37 +09:00 committed by Christopher Friedt
commit 4c24e7d862

View file

@ -89,6 +89,24 @@ Removed APIs in this release
Deprecated in this release
==========================
* C++ library Kconfig options have been renamed to improve consistency. See
below for the list of deprecated Kconfig options and their replacements:
.. table::
:align: center
+----------------------------------------+------------------------------------------------+
| Deprecated | Replacement |
+========================================+================================================+
| :kconfig:option:`CONFIG_CPLUSPLUS` | :kconfig:option:`CONFIG_CPP` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_EXCEPTIONS` | :kconfig:option:`CONFIG_CPP_EXCEPTIONS` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_RTTI` | :kconfig:option:`CONFIG_CPP_RTTI` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_LIB_CPLUSPLUS` | :kconfig:option:`CONFIG_LIBCPP_IMPLEMENTATION` |
+----------------------------------------+------------------------------------------------+
* MCUmgr subsystem, specifically the SMP transport API, is dropping `zephyr_`
prefix, deprecating prefixed functions and callback type definitions with the
prefix and replacing them with with prefix-less variants.
@ -414,6 +432,35 @@ Devicetree
Libraries / Subsystems
**********************
* C++ Library
* C++ support in Zephyr is no longer considered a "subsystem" because it
mainly consists of the C++ ABI runtime library and the C++ standard
library, which are "libraries" that are dissimilar to the existing Zephyr
subsystems. C++ support components are now located in ``lib/cpp`` as
"C++ library."
* C++ ABI runtime library components such as global constructor/destructor
and initialiser handlers, that were previously located under
``subsys/cpp``, have been moved to ``lib/cpp/abi`` in order to provide a
clear separation between the C++ ABI runtime library and the C++ standard
library.
* C++ minimal library components have been moved to ``lib/cpp/minimal``.
* C++ tests have been moved to ``tests/lib/cpp``.
* C++ samples have been moved to ``samples/cpp``.
* :kconfig:option:`CONFIG_CPLUSPLUS` has been renamed to
:kconfig:option:`CONFIG_CPP`.
* :kconfig:option:`CONFIG_EXCEPTIONS` has been renamed to
:kconfig:option:`CONFIG_CPP_EXCEPTIONS`.
* :kconfig:option:`CONFIG_RTTI` has been renamed to
:kconfig:option:`CONFIG_CPP_RTTI`.
* :kconfig:option:`CONFIG_LIB_CPLUSPLUS` is deprecated. A toolchain-specific
C++ standard library Kconfig option from
:kconfig:option:`CONFIG_LIBCPP_IMPLEMENTATION` should be selected instead.
* Zephyr subsystems and modules that require the features from the full C++
standard library (e.g. Standard Template Library) can now select
:kconfig:option:`CONFIG_REQUIRES_FULL_LIBC`, which automatically selects
a compatible C++ standard library.
* File systems
* Added new API call `fs_mkfs`.