path: root/config/cc
diff options
authorYann E. MORIN" <>2010-07-28 21:53:09 (GMT)
committerYann E. MORIN" <>2010-07-28 21:53:09 (GMT)
commit61ebaa97cae48a4f37d4272426c9c85c3cd462cb (patch)
treec54cfe652786776e012c28e855a4bae45d521e27 /config/cc
parente5f3082b3db90894ab03c3055d50cd4d0fa74707 (diff)
cc/gcc: make sjlj config option a tristate
A tristate fits better here than a choice.
Diffstat (limited to 'config/cc')
1 files changed, 16 insertions, 32 deletions
diff --git a/config/cc/ b/config/cc/
index db52883..33cbbc5 100644
--- a/config/cc/
+++ b/config/cc/
@@ -30,40 +30,24 @@ config CC_GCC_DISABLE_PCH
need to be disabled. Please see:
- bool
+ tristate
prompt "Use sjlj for exceptions"
- depends on ! BARE_METAL
-# 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
- bool
- prompt "Let configure decide"
+ default m
- Let configure decide if setjmp/longjmp should be used to handle
- exceptions.
+ 'sjlj' is short for setjmp/longjmp.
- Choose that if you trust configure to detect the correct settings.
- This is the default choice.
- bool
- prompt "Force using sjlj"
- help
- Do use setjmp/longjmp for exceptions.
- This is gcc's --enable-sjlj-exceptions configure switch.
+ On some architectures, stack unwinding during exception handling
+ works perfectly well without using sjlj, while on some others,
+ use of sjlj is required for proper stack unwinding.
- Choose that if you want to use setjmp/longjmp to handle exceptions.
- bool
- prompt "Force not using sjlj"
- help
- Do not use setjmp/longjmp for exceptions.
- This is gcc's --disable-sjlj-exceptions configure switch.
+ Option | sjlj use | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --enable-sjlj-exceptions
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --disable-sjlj-exceptions
- Choose that if you want to not use setjmp/longjmp to handle exceptions.
+ It should be safe to say 'M' or 'N'.
+ It can happen that ./configure is wrong in some cases. Known
+ case is for ARM big endian, where you should say 'N'.