diff options
author | Chris Packham <judge.packham@gmail.com> | 2021-06-20 11:34:25 +1200 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2021-06-20 11:37:00 +1200 |
commit | 96d8a0588f8fedf881d5acd3c3ad0c3f4610c34b (patch) | |
tree | f38f9e471c9dc7e12f2fb178a59f277a3699c645 | |
parent | 5ab29fbf3e4e4dbd71ea9d01d15f6a575bd71562 (diff) | |
download | crosstool-ng-96d8a0588f8fedf881d5acd3c3ad0c3f4610c34b.tar.gz crosstool-ng-96d8a0588f8fedf881d5acd3c3ad0c3f4610c34b.tar.bz2 crosstool-ng-96d8a0588f8fedf881d5acd3c3ad0c3f4610c34b.zip |
gcc: Make CC_GCC_TM_CLONE_REGISTRY tristate
Explicitly passing --disable-tm-clone-registry causes gcc to create a
crtbegin.o with a zero-sized .init_array/.fini_array. This in turn
causes ld to complain.
Make CC_GCC_TM_CLONE_REGISTRY a tristate so if it's not explicitly
enabled we can let ./configure decide.
Fixes #1531
Fixes: 1e21a302 ("gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY config")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
-rw-r--r-- | config/cc/gcc.in | 9 | ||||
-rw-r--r-- | scripts/build/cc/gcc.sh | 20 |
2 files changed, 18 insertions, 11 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 8180b2a6..4d0a3eef 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -280,12 +280,19 @@ config CC_CXA_ATEXIT you might want to try disabling this option. config CC_GCC_TM_CLONE_REGISTRY - bool + tristate prompt "Use TM clone registry" depends on GCC_10_or_later + default m help Enable GCC transactional memory clone registry in libgcc. + Option | tm-clone-registry | Associated ./configure switch + ---------+--------------------+-------------------------------- + Y | forcibly used | --enable-tm-clone-registry + M | auto | (none, ./configure decides) + N | forcibly not used | --disable-tm-clone-registry + 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 8aa7eeb1..e39029da 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -397,11 +397,11 @@ 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 + case "${CT_CC_GCC_TM_CLONE_REGISTRY}" in + y) extra_config+=("--enable-tm-clone-registry");; + m) ;; + "") extra_config+=("--disable-tm-clone-registry");; + esac if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" \ -a "${mode}" = "baremetal" ]; then @@ -1021,11 +1021,11 @@ 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 + case "${CT_CC_GCC_TM_CLONE_REGISTRY}" in + y) extra_config+=("--enable-tm-clone-registry");; + m) ;; + "") extra_config+=("--disable-tm-clone-registry");; + esac if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}") |