1comment "GCC Options"
2
3choice
4	prompt "GCC compiler Version"
5	default BR2_GCC_VERSION_ARC if BR2_GCC_VERSION_4_8_ARC # legacy
6	default BR2_GCC_VERSION_ARC if BR2_arc
7	default BR2_GCC_VERSION_POWERPC_SPE if BR2_POWERPC_CPU_HAS_SPE
8	default BR2_GCC_VERSION_13_X
9	help
10	  Select the version of gcc you wish to use.
11
12config BR2_GCC_VERSION_ARC
13	bool "gcc arc (13.1)"
14	# Only supported architecture
15	depends on BR2_arc
16	select BR2_TOOLCHAIN_GCC_AT_LEAST_13
17
18config BR2_GCC_VERSION_POWERPC_SPE
19	bool "gcc powerpc spe"
20	# powerpc spe support has been deprecated since gcc 8.x.
21	# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
22	depends on BR2_POWERPC_CPU_HAS_SPE
23	select BR2_TOOLCHAIN_GCC_AT_LEAST_8
24
25config BR2_GCC_VERSION_12_X
26	bool "gcc 12.x"
27	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13
28	# powerpc spe support has been deprecated since gcc 8.x.
29	# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
30	depends on !BR2_POWERPC_CPU_HAS_SPE
31	# ARC HS48 rel 31 only supported by gcc arc fork.
32	depends on !BR2_archs4x_rel31
33	select BR2_TOOLCHAIN_GCC_AT_LEAST_12
34
35config BR2_GCC_VERSION_13_X
36	bool "gcc 13.x"
37	# powerpc spe support has been deprecated since gcc 8.x.
38	# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
39	depends on !BR2_POWERPC_CPU_HAS_SPE
40	select BR2_TOOLCHAIN_GCC_AT_LEAST_13
41
42config BR2_GCC_VERSION_14_X
43	bool "gcc 14.x"
44	# powerpc spe support has been deprecated since gcc 8.x.
45	# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
46	depends on !BR2_POWERPC_CPU_HAS_SPE
47	select BR2_TOOLCHAIN_GCC_AT_LEAST_14
48
49endchoice
50
51# libcilkrts was introduced in gcc 4.9 and removed in gcc 8.x
52config BR2_GCC_SUPPORTS_LIBCILKRTS
53	bool
54	default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8
55
56config BR2_GCC_SUPPORTS_DLANG
57	bool
58	default y if BR2_aarch64
59	default y if BR2_arm
60	default y if BR2_i386
61	default y if BR2_mips || BR2_mipsel
62	default y if BR2_mips64 || BR2_mips64el
63	default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
64	default y if BR2_x86_64
65	default y if BR2_riscv && !BR2_RISCV_64
66	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9
67	depends on BR2_TOOLCHAIN_USES_GLIBC
68	# "The D front-end is now itself written in D, in order to build GDC, you
69	# will need a working GDC compiler (GCC version 9.1 or later)."
70	# https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5fee5ec362f7a243f459e6378fd49dfc89dc9fb5
71	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_12
72
73config BR2_GCC_VERSION
74	string
75	default "8.4.0"     if BR2_GCC_VERSION_POWERPC_SPE
76	default "12.3.0"    if BR2_GCC_VERSION_12_X
77	default "13.3.0"    if BR2_GCC_VERSION_13_X
78	default "14.1.0"    if BR2_GCC_VERSION_14_X
79	default "arc-2023.09-release" if BR2_GCC_VERSION_ARC
80
81config BR2_EXTRA_GCC_CONFIG_OPTIONS
82	string "Additional gcc options"
83	default ""
84	help
85	  Any additional gcc configure options you may want to
86	  include. Those options are applied for all of the gcc
87	  initial, gcc intermediate and gcc final passes.
88
89config BR2_TOOLCHAIN_BUILDROOT_CXX
90	bool "Enable C++ support"
91	select BR2_INSTALL_LIBSTDCPP
92	help
93	  Enable this option if you want your toolchain to support the
94	  C++ language and you want C++ libraries to be installed on
95	  your target system.
96
97comment "Fortran support needs a toolchain w/ wchar"
98	depends on BR2_TOOLCHAIN_HAS_LIBQUADMATH
99	depends on !BR2_USE_WCHAR # libquadmath
100
101config BR2_TOOLCHAIN_BUILDROOT_FORTRAN
102	bool "Enable Fortran support"
103	# on architecture building libquadmath, wchar is required
104	depends on !BR2_TOOLCHAIN_HAS_LIBQUADMATH || \
105		(BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR)
106	select BR2_TOOLCHAIN_HAS_FORTRAN
107	help
108	  Enable this option if you want your toolchain to support the
109	  Fortran language and you want Fortran libraries to be
110	  installed on your target system.
111
112config BR2_TOOLCHAIN_BUILDROOT_DLANG
113	bool "Enable D language support"
114	depends on BR2_GCC_SUPPORTS_DLANG
115	select BR2_TOOLCHAIN_HAS_DLANG
116	help
117	  Enable this option if you want your toolchain to support the
118	  D language and you want D libraries to be installed on your
119	  target system.
120
121config BR2_GCC_ENABLE_OPENMP
122	bool "Enable compiler OpenMP support"
123	depends on !BR2_PTHREADS_NONE && !BR2_arc && !BR2_microblaze
124	select BR2_TOOLCHAIN_HAS_OPENMP
125	help
126	  Enable OpenMP support for the compiler
127
128config BR2_GCC_ENABLE_GRAPHITE
129	bool "Enable graphite support"
130	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
131	help
132	  This option enables the graphite optimizations in the
133	  compiler.
134
135comment "graphite support needs gcc >= 5.x"
136	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5
137