From c1a2e1bb87eaad300ae48bd3e96c04870e38d671 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Thu, 7 Aug 2008 13:55:30 +0000 Subject: Add a new config knob for gcc: usage of SJLJ to handle exceptions. This is needed for some architectures to compile the Java frontend (eg. ARM with uClibc). /trunk/config/cc/gcc.in | 41 39 2 0 +++++++++++++++++++++++++++++++++++++++-- /trunk/scripts/build/cc_gcc.sh | 8 5 3 0 +++++--- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 88ebf12..f565d47 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -129,12 +129,49 @@ config CC_GCC_4_3_or_later config CC_CXA_ATEXIT bool - prompt "__cxa_atexit" - default "y" + prompt "Use __cxa_atexit" + default y help If you get the missing symbol "__cxa_atexit" when building C++ programs, you might want to try disabling this option. +choice + bool + prompt "Use sjlj for exceptions" + default CC_SJLJ_EXCEPTIONS_CONFIGURE + +# This config option is used nowhere in the code on purpose. +# It only serves as a choice entry to force neither using nor not using sjlj +config CC_SJLJ_EXCEPTIONS_CONFIGURE + bool + prompt "Let configure decide" + help + Let configure decide if setjmp/longjmp should be used to handle + exceptions. + + Choose that if you trust configure to detect the correct settings. + This is the default choice. + +config CC_SJLJ_EXCEPTIONS_USE + bool + prompt "Force using sjlj" + help + Do use setjmp/longjmp for exceptions. + This is gcc's --enable-sjlj-exceptions configure switch. + + Choose that if you want to use setjmp/longjmp to handle exceptions. + +config CC_SJLJ_EXCEPTIONS_DONT_USE + bool + prompt "Force not using sjlj" + help + Do not use setjmp/longjmp for exceptions. + This is gcc's --disable-sjlj-exceptions configure switch. + + Choose that if you want to not use setjmp/longjmp to handle exceptions. + +endchoice + config CC_CORE_EXTRA_CONFIG string prompt "Core gcc extra config" diff --git a/scripts/build/cc_gcc.sh b/scripts/build/cc_gcc.sh index 0a57a6c..1eed625 100644 --- a/scripts/build/cc_gcc.sh +++ b/scripts/build/cc_gcc.sh @@ -285,9 +285,11 @@ do_cc() { extra_config="${extra_config} --disable-multilib" extra_config="${extra_config} ${CT_ARCH_WITH_ARCH} ${CT_ARCH_WITH_ABI} ${CT_ARCH_WITH_CPU} ${CT_ARCH_WITH_TUNE} ${CT_ARCH_WITH_FPU} ${CT_ARCH_WITH_FLOAT}" [ "${CT_SHARED_LIBS}" = "y" ] || extra_config="${extra_config} --disable-shared" - [ "${CT_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" - [ -n "${CT_CC_PKGVERSION}" ] && extra_config="${extra_config} --with-pkgversion=${CT_CC_PKGVERSION}" - [ -n "${CT_CC_BUGURL}" ] && extra_config="${extra_config} --with-bugurl=${CT_CC_BUGURL}" + [ "${CT_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" + [ -n "${CT_CC_PKGVERSION}" ] && extra_config="${extra_config} --with-pkgversion=${CT_CC_PKGVERSION}" + [ -n "${CT_CC_BUGURL}" ] && extra_config="${extra_config} --with-bugurl=${CT_CC_BUGURL}" + [ "${CT_CC_SJLJ_EXCEPTIONS_USE}" = "y" ] && extra_config="${extra_config} --enable-sjlj-exceptions" + [ "${CT_CC_SJLJ_EXCEPTIONS_DONT_USE}" = "y" ] && extra_config="${extra_config} --disable-sjlj-exceptions" if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then extra_config="${extra_config} --enable-__cxa_atexit" else -- cgit v0.10.2-6-g49f6