mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-01 16:47:58 +00:00
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:
parent
632086b0a5
commit
c1a2e1bb87
@ -129,12 +129,49 @@ config CC_GCC_4_3_or_later
|
|||||||
|
|
||||||
config CC_CXA_ATEXIT
|
config CC_CXA_ATEXIT
|
||||||
bool
|
bool
|
||||||
prompt "__cxa_atexit"
|
prompt "Use __cxa_atexit"
|
||||||
default "y"
|
default y
|
||||||
help
|
help
|
||||||
If you get the missing symbol "__cxa_atexit" when building C++ programs,
|
If you get the missing symbol "__cxa_atexit" when building C++ programs,
|
||||||
you might want to try disabling this option.
|
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
|
config CC_CORE_EXTRA_CONFIG
|
||||||
string
|
string
|
||||||
prompt "Core gcc extra config"
|
prompt "Core gcc extra config"
|
||||||
|
@ -288,6 +288,8 @@ do_cc() {
|
|||||||
[ "${CT_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
|
[ "${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_PKGVERSION}" ] && extra_config="${extra_config} --with-pkgversion=${CT_CC_PKGVERSION}"
|
||||||
[ -n "${CT_CC_BUGURL}" ] && extra_config="${extra_config} --with-bugurl=${CT_CC_BUGURL}"
|
[ -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
|
if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
|
||||||
extra_config="${extra_config} --enable-__cxa_atexit"
|
extra_config="${extra_config} --enable-__cxa_atexit"
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user