Kconfig: Mark clang as ready to use on some arch

This adds 2 flags:
* invisible opt-in flag for platforms on which clang seems to work
* visible opt-in flag to allow experimenting

Clang seems to work rather well on x86_32 so it makes sense to start
adding that to Jenkins buildtesting, which this allows.

This allows abuild to differentiate between targets that are known to
build with clang. This makes buildtesting just those targets easier.

Change-Id: I46f1bad59bda94f60f4a141237ede11f6eb93cc2
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63081
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@tutanota.com>
diff --git a/src/Kconfig b/src/Kconfig
index c58a263..f1b4b84 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -70,19 +70,31 @@
 	  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 993b1e6..c00eb0c 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -33,6 +33,7 @@
 	select ARCH_VERSTAGE_X86_32
 	select ARCH_ROMSTAGE_X86_32
 	select ARCH_RAMSTAGE_X86_32
+	select ARCH_SUPPORTS_CLANG
 
 # stage selectors for x64