From 1e21a30287d8d50d8425ce4debf1cf493371a6cf Mon Sep 17 00:00:00 2001 From: Stephanos Ioannidis Date: Mon, 7 Jun 2021 03:02:33 +0900 Subject: gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY config This commit adds a new gcc config `CT_CC_GCC_TM_CLONE_REGISTRY` that enables the GCC transactional memory clone registry feature for libgcc. Note that the gcc option to control this feature is only available in gcc 10 and above. (see gcc commit 5a4602805eb3ebddbc935b102481e63bffc7c5e6) Signed-off-by: Stephanos Ioannidis diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 01d7253..8180b2a 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -279,6 +279,13 @@ config CC_CXA_ATEXIT If you get the missing symbol "__cxa_atexit" when building C++ programs, you might want to try disabling this option. +config CC_GCC_TM_CLONE_REGISTRY + bool + prompt "Use TM clone registry" + depends on GCC_10_or_later + help + Enable GCC transactional memory clone registry in libgcc. + config CC_GCC_DISABLE_PCH bool prompt "Do not build PCH" diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index cccd654..c505314 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -396,6 +396,12 @@ do_gcc_core_backend() { extra_config+=("--disable-__cxa_atexit") fi + if [ "${CT_CC_GCC_TM_CLONE_REGISTRY}" = "y" ]; then + extra_config+=("--enable-tm-clone-registry") + else + extra_config+=("--disable-tm-clone-registry") + fi + if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" \ -a "${mode}" = "baremetal" ]; then extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}") @@ -998,6 +1004,12 @@ do_gcc_backend() { extra_config+=("--disable-__cxa_atexit") fi + if [ "${CT_CC_GCC_TM_CLONE_REGISTRY}" = "y" ]; then + extra_config+=("--enable-tm-clone-registry") + else + extra_config+=("--disable-tm-clone-registry") + fi + if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}") fi -- cgit v0.10.2-6-g49f6