1config BR2_PACKAGE_LLVM_ARCH_SUPPORTS
2	bool
3	default y if BR2_i386
4	default y if BR2_x86_64
5	default y if BR2_aarch64
6	default y if BR2_arm || BR2_armeb
7	default y if BR2_riscv
8
9config BR2_PACKAGE_LLVM_TARGET_ARCH
10	string
11	default "AArch64" if BR2_aarch64
12	default "ARM" if BR2_arm || BR2_armeb
13	default "X86" if BR2_i386 || BR2_x86_64
14	default "riscv32" if BR2_riscv && !BR2_ARCH_IS_64
15	default "riscv64" if BR2_riscv && BR2_ARCH_IS_64
16
17config BR2_PACKAGE_LLVM
18	bool "llvm"
19	depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
20	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7
21	depends on BR2_TOOLCHAIN_HAS_THREADS
22	depends on BR2_INSTALL_LIBSTDCPP
23	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future
24	depends on !BR2_STATIC_LIBS
25	depends on BR2_USE_WCHAR # std::wstring
26	depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
27	help
28	  The LLVM Project is a collection of modular and reusable
29	  compiler and toolchain technologies.
30
31	  http://llvm.org
32
33if BR2_PACKAGE_LLVM
34
35config BR2_PACKAGE_LLVM_AMDGPU
36	bool "AMDGPU backend"
37	help
38	  Build AMDGPU target. Select this option if you are going
39	  to install mesa3d with llvm and use Gallium Radeon driver.
40
41config BR2_PACKAGE_LLVM_RTTI
42	bool "enable rtti"
43	help
44	  Build LLVM with run-time type information. LLVM can be built
45	  without rtti, but turning it off changes the ABI of C++
46	  programs.
47
48	  This features is needed to build the Gallium Nouveau driver
49	  or the Clover OpenCL state tracker when llvm support is
50	  enabled.
51
52	  https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html
53
54config BR2_PACKAGE_LLVM_BPF
55	bool "BPF backend"
56	help
57	  Build BPF target. Select this option if you are going
58	  to install bcc on the target.
59
60config BR2_PACKAGE_LLVM_DUMP
61	bool "enable dump"
62	help
63	  Build LLVM with dump functions even when assertions are
64	  disabled.
65
66endif
67
68comment "llvm needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7"
69	depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
70	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
71		!BR2_TOOLCHAIN_GCC_AT_LEAST_7 \
72		|| BR2_STATIC_LIBS || !BR2_USE_WCHAR \
73		|| !BR2_HOST_GCC_AT_LEAST_7
74
75comment "llvm needs a toolchain not affected by GCC bug 64735"
76	depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
77	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
78