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(-)
This commit is contained in:
Yann E. MORIN" 2008-08-07 13:55:30 +00:00
parent 632086b0a5
commit c1a2e1bb87
2 changed files with 44 additions and 5 deletions

View File

@ -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"

View File

@ -288,6 +288,8 @@ do_cc() {
[ "${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