Re: [PATCH v3] bitbake.conf: Define TC_CXX_RUNTIME

Andre McCurdy

On Fri, Sep 9, 2022 at 9:52 AM Khem Raj <raj.khem@...> wrote:

This variable is used to denote the C/C++ compiler runtime to use.
Right now there are few alternatives out of the core which could
use this variable to define this property, the values it can take
are 'gnu' for gcc runtime. 'llvm' for using compiler-rt+libc++ and
'android' to use android runtime. Default settings is to use gnu
which is current silent default also.
Seems like you made a conscious decision to refer to the gcc runtime
library as "gnu" instead of "gcc". What was the reasoning? Using "gcc"
would seem to be clearer unless it clashes with some gcc upstream
naming convention.

Signed-off-by: Khem Raj <raj.khem@...>
v2: Document the variable
v3: Rename to TC_CXX_RUNTIME

documentation/ref-manual/variables.rst | 6 ++++++
meta/conf/bitbake.conf | 1 +
2 files changed, 7 insertions(+)

diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index cf817e9540..2d28c3d2f7 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -7973,6 +7973,12 @@ system and gives an overview of their function and contents.
toolchain. You can use ``meta-sourcery`` as a template for adding
support for other external toolchains.

+ :term:`TC_CXX_RUNTIME`
+ Specifies the C/C++ STL and runtime variant to use during
+ the build process. Default value is 'gnu'
+ You can select "gnu", "llvm", or "android".
Specifies the directory used by the build system to find templates
from which to build the ``bblayers.conf`` and ``local.conf`` files.
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 52a36d788b..62cdd9aa9c 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -389,6 +389,7 @@ FILESYSTEM_PERMS_TABLES ?= "${@'files/fs-perms.txt' if oe.types.boolean(d.getVar

TCMODE ??= "default"
TCLIBC ??= "glibc"
+TC_CXX_RUNTIME ??= "gnu"
TMPDIR ?= "${TOPDIR}/tmp"

CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"

Join to automatically receive all group messages.