summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-08-07 13:55:30 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-08-07 13:55:30 (GMT)
commitc1a2e1bb87eaad300ae48bd3e96c04870e38d671 (patch)
tree3e5f27431888aa3c4380784477a93fda4609fb7c
parent632086b0a59992b308d4fb1f0c3b0657d0d3feb4 (diff)
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(-)
-rw-r--r--config/cc/gcc.in41
-rw-r--r--scripts/build/cc_gcc.sh8
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