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>
This commit is contained in:
Arthur Heymans
2022-03-24 10:38:54 +01:00
committed by Martin L Roth
parent 0c94985248
commit 5b528bc656
2 changed files with 17 additions and 4 deletions

View File

@@ -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

View File

@@ -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