summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Kconfig20
-rw-r--r--src/arch/x86/Kconfig1
2 files changed, 17 insertions, 4 deletions
diff --git a/src/Kconfig b/src/Kconfig
index c58a263b25..f1b4b846b6 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -70,19 +70,31 @@ config COMPILER_GCC
For details see http://gcc.gnu.org.
config COMPILER_LLVM_CLANG
- bool "LLVM/clang (TESTING ONLY - Not currently working)"
+ bool "LLVM/clang"
+ depends on ALLOW_EXPERIMENTAL_CLANG || ARCH_SUPPORTS_CLANG
help
Use LLVM/clang to build coreboot. To use this, you must build the
coreboot version of the clang compiler. Run the command
make clang
- Note that this option is not currently working correctly and should
- really only be selected if you're trying to work on getting clang
- operational.
+ Note that Clang is not currently working on all architectures.
For details see http://clang.llvm.org.
endchoice
+config ARCH_SUPPORTS_CLANG
+ bool
+ help
+ Opt-in flag for architectures that generally work well with CLANG.
+ By default the option would be hidden.
+
+config ALLOW_EXPERIMENTAL_CLANG
+ bool "Allow experimental LLVM/Clang"
+ depends on !ARCH_SUPPORTS_CLANG
+ help
+ On some architectures CLANG does not work that well.
+ Use this only to try to get CLANG working.
+
config ANY_TOOLCHAIN
bool "Allow building with any toolchain"
default n
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 993b1e6608..c00eb0c3b5 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -33,6 +33,7 @@ config ARCH_ALL_STAGES_X86_32
select ARCH_VERSTAGE_X86_32
select ARCH_ROMSTAGE_X86_32
select ARCH_RAMSTAGE_X86_32
+ select ARCH_SUPPORTS_CLANG
# stage selectors for x64