# HG changeset patch # User "Yann E. MORIN" # Date 1218117330 0 # Node ID f89ccf3ea5d6cac72111e183c48347b73a1c0b7f # Parent ff368787f62bd0c381c3db673b0e7325a18e2611 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 -r ff368787f62b -r f89ccf3ea5d6 config/cc/gcc.in --- a/config/cc/gcc.in Thu Aug 07 13:35:11 2008 +0000 +++ b/config/cc/gcc.in Thu Aug 07 13:55:30 2008 +0000 @@ -129,12 +129,49 @@ 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 -r ff368787f62b -r f89ccf3ea5d6 scripts/build/cc_gcc.sh --- a/scripts/build/cc_gcc.sh Thu Aug 07 13:35:11 2008 +0000 +++ b/scripts/build/cc_gcc.sh Thu Aug 07 13:55:30 2008 +0000 @@ -285,9 +285,11 @@ 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