blob: b682e4d7014cd8bb78bf7ed6f55b8ea3f76de062 [file] [log] [blame]
Yann E. MORIN2508b162010-07-28 00:08:16 +02001# Generic toolchain options
2
3# we want gdb config in the middle of both source and external
4# toolchains, but mconf won't let us source the same file twice,
5# so put it here instead
Thomas Petazzonia0b6faa2013-04-07 00:04:33 +00006source "package/gdb/Config.in.host"
Yann E. MORIN2508b162010-07-28 00:08:16 +02007
Romain Naour5dce3c02016-02-20 13:42:46 +01008# https://sourceware.org/bugzilla/show_bug.cgi?id=19405
9config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405
10 bool
11
Thomas Petazzoni0858e002012-11-03 18:47:49 +010012config BR2_TOOLCHAIN_HAS_NATIVE_RPC
Thomas Petazzonifff71172010-12-13 17:27:37 +010013 bool
14
15config BR2_USE_WCHAR
16 bool
Daniel Laird040bd642009-01-30 16:28:26 +000017
18config BR2_ENABLE_LOCALE
Thomas Petazzonifff71172010-12-13 17:27:37 +010019 bool
20
Thomas Petazzoni6b578c82010-12-13 17:27:41 +010021config BR2_INSTALL_LIBSTDCPP
22 bool
23
Samuel Martinb8a05372016-07-03 15:47:40 +020024config BR2_TOOLCHAIN_HAS_FORTRAN
25 bool
26
Thomas Petazzoni9eaad202010-12-13 17:27:44 +010027config BR2_TOOLCHAIN_HAS_THREADS
28 bool
29
Peter Korsgaard5931db02011-11-24 14:26:52 +010030config BR2_TOOLCHAIN_HAS_THREADS_DEBUG
Peter Korsgaard5931db02011-11-24 14:26:52 +010031 bool
32
Thomas Petazzonic64f9482014-02-18 22:08:59 +010033config BR2_TOOLCHAIN_HAS_THREADS_NPTL
34 bool
35
Thomas Petazzonib9882922011-05-30 23:56:57 +020036config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
37 bool
38
Thomas Petazzonic5866be2013-09-02 18:06:36 +020039config BR2_TOOLCHAIN_HAS_SSP
40 bool
41
Waldemar Brodkorb3c939012016-07-11 16:35:14 +020042config BR2_TOOLCHAIN_SUPPORTS_PIE
43 bool
44
Yann E. MORIN11c10762014-07-27 21:28:32 +020045config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
46 bool "Copy gconv libraries"
47 depends on BR2_TOOLCHAIN_USES_GLIBC
48 help
49 The gconv libraries are used to convert between different
50 character sets (charsets).
51
52 Say 'y' if you need to store and/or display different charsets.
53
54config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST
55 string "Gconv libraries to copy"
56 depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
57 help
58 Set to the list of gconv libraries to copy.
59 Leave empty to copy all gconv libraries.
60
61 Specify only the basename of the libraries, leave
62 out the .so extension. Eg.:
63 IBM850 ISO8859-15 UNICODE
64
65 Note: the full set of gconv libs are ~8MiB (on ARM).
66
Thomas Petazzoni4caf7882010-05-24 21:17:50 +020067# glibc and eglibc directly include gettext, so a separatly compiled
68# gettext isn't needed and shouldn't be built to avoid conflicts. Some
69# packages always need gettext, other packages only need gettext when
70# locale support is enabled. See the documentation for how packages
71# should rely on the following two options.
72
Thomas Petazzoni54d64792010-05-13 22:21:08 +020073config BR2_NEEDS_GETTEXT
74 bool
Thomas Petazzoni381616e2013-06-30 21:29:09 +020075 default y if BR2_TOOLCHAIN_USES_UCLIBC
Thomas Petazzoni4caf7882010-05-24 21:17:50 +020076
77config BR2_NEEDS_GETTEXT_IF_LOCALE
78 bool
79 default y if (BR2_NEEDS_GETTEXT && BR2_ENABLE_LOCALE)
Thomas Petazzoni54d64792010-05-13 22:21:08 +020080
Mike Frysingere5e5f5d2011-01-10 09:28:41 -050081config BR2_USE_MMU
Guido Martínez29563042015-06-03 19:34:03 -030082 bool "Enable MMU support" if BR2_ARCH_HAS_MMU_OPTIONAL
83 default y if BR2_ARCH_HAS_MMU_OPTIONAL || BR2_ARCH_HAS_MMU_MANDATORY
Mike Frysingere5e5f5d2011-01-10 09:28:41 -050084 help
85 If your target has a MMU, you should say Y here. If you
86 are unsure, just say Y.
87
Daniel Laird040bd642009-01-30 16:28:26 +000088config BR2_TARGET_OPTIMIZATION
89 string "Target Optimizations"
Yann E. MORIN01c34b32014-12-21 14:00:25 +010090 default ""
Daniel Laird040bd642009-01-30 16:28:26 +000091 help
92 Optimizations to use when building for the target host.
Paul Jones36391de2010-06-14 22:36:04 +100093 NOTE: gcc optimization level is defined in build options.
Baruch Siachec8eda42011-06-23 12:21:21 +030094
95config BR2_TARGET_LDFLAGS
96 string "Target linker options"
97 help
Thomas De Schampheleire8f8d4142012-01-13 20:23:23 +010098 Extra options to pass to the linker when building for the target.
Thomas Petazzoni217ef082013-01-13 04:52:13 +000099
Yann E. MORINa930d9c2014-07-31 00:57:15 +0200100 Note that options with a '$' sign (eg. -Wl,-rpath='$ORIGIN/../lib')
101 are not supported.
102
Thomas Petazzoni217ef082013-01-13 04:52:13 +0000103config BR2_ECLIPSE_REGISTER
104 bool "Register toolchain within Eclipse Buildroot plug-in"
105 help
106 This options tells Buildroot to generate the necessary
107 configuration files to make your toolchain appear within
108 Eclipse, through the Eclipse Buildroot plugin.
Yann E. MORINb155f5a2014-03-01 15:52:57 +0100109
110# Options for packages to depend on, if they require at least a
111# specific version of the kernel headers.
112# Toolchains should choose the adequate option (ie. the highest
113# version, not all of them).
114config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
115 bool
116
117config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
118 bool
119 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
120
121config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
122 bool
123 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
124
125config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
126 bool
127 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
128
129config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
130 bool
131 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
132
133config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
134 bool
135 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
136
137config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
138 bool
139 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
140
141config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
142 bool
143 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
144
145config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
146 bool
147 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
148
149config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
150 bool
151 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
152
153config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
154 bool
155 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
156
157config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
158 bool
159 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
160
161config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
162 bool
163 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
164
165config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
166 bool
167 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
Yann E. MORINa5a30962014-03-01 15:53:01 +0100168
Gustavo Zacarias4916b882014-04-01 06:19:48 -0300169config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
170 bool
171 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
172
Gustavo Zacariasfb29afe2014-06-09 08:30:33 -0300173config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
174 bool
175 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
176
Gustavo Zacarias911516f2014-08-03 23:29:22 -0300177config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
178 bool
179 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
180
Gustavo Zacarias2d312b72014-10-06 08:44:39 -0300181config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
182 bool
183 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
184
Gustavo Zacariasbf6f74d2014-12-08 08:10:39 -0300185config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
186 bool
187 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
188
Peter Korsgaard81366ed2015-02-09 13:31:23 +0100189config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
190 bool
191 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
192
Gustavo Zacariase714ee92015-04-13 10:00:23 -0300193config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
194 bool
195 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
196
Gustavo Zacariasdae7d8a2015-06-22 10:11:03 -0300197config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
198 bool
199 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
200
Peter Korsgaard8dc68292015-09-01 10:05:20 +0200201config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
202 bool
203 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
204
Vicente Olivert Rieraaef2df82015-11-02 15:56:51 +0100205config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
206 bool
207 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
208
Gustavo Zacariasdf2ad612016-01-11 07:52:36 -0300209config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
210 bool
211 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
212
Gustavo Zacarias3ece3fa2016-03-14 07:14:10 -0300213config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
214 bool
215 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
216
Gustavo Zacarias51800d22016-05-16 08:58:12 -0300217config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
218 bool
219 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
220
Fabio Estevame36bf632016-07-24 20:56:09 -0300221config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
222 bool
223 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
224
Fabio Estevamd3ac2bc2016-09-12 13:15:54 -0300225config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
226 bool
227 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
228
Yann E. MORINa5a30962014-03-01 15:53:01 +0100229# This order guarantees that the highest version is set, as kconfig
230# stops affecting a value on the first matching default.
231config BR2_TOOLCHAIN_HEADERS_AT_LEAST
232 string
Fabio Estevamd3ac2bc2016-09-12 13:15:54 -0300233 default "4.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
Fabio Estevame36bf632016-07-24 20:56:09 -0300234 default "4.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
Gustavo Zacarias51800d22016-05-16 08:58:12 -0300235 default "4.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
Gustavo Zacarias3ece3fa2016-03-14 07:14:10 -0300236 default "4.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
Gustavo Zacariasdf2ad612016-01-11 07:52:36 -0300237 default "4.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
Vicente Olivert Rieraaef2df82015-11-02 15:56:51 +0100238 default "4.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
Peter Korsgaard8dc68292015-09-01 10:05:20 +0200239 default "4.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
Gustavo Zacariasdae7d8a2015-06-22 10:11:03 -0300240 default "4.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
Gustavo Zacariase714ee92015-04-13 10:00:23 -0300241 default "4.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
Peter Korsgaard81366ed2015-02-09 13:31:23 +0100242 default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
Gustavo Zacariasbf6f74d2014-12-08 08:10:39 -0300243 default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
Gustavo Zacarias2d312b72014-10-06 08:44:39 -0300244 default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
Gustavo Zacarias911516f2014-08-03 23:29:22 -0300245 default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
Gustavo Zacariasfb29afe2014-06-09 08:30:33 -0300246 default "3.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
Gustavo Zacarias4916b882014-04-01 06:19:48 -0300247 default "3.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
Yann E. MORINa5a30962014-03-01 15:53:01 +0100248 default "3.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
249 default "3.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
250 default "3.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
251 default "3.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
252 default "3.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
253 default "3.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
254 default "3.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
255 default "3.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
256 default "3.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
257 default "3.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
258 default "3.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
259 default "3.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
260 default "3.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
261 default "3.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
262 default "2.6"
Thomas Petazzoni8ba2a762015-08-04 20:00:33 +0200263
264config BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
265 bool
266
267config BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
268 bool
269 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
270
271config BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
272 bool
273 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
274
275config BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
276 bool
277 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
278
279config BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
280 bool
281 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
282
283config BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
284 bool
285 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
286
287config BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
288 bool
289 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
290
291config BR2_TOOLCHAIN_GCC_AT_LEAST_5
292 bool
293 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
294
Thomas Petazzoni519d83b2016-04-27 15:54:03 +0200295config BR2_TOOLCHAIN_GCC_AT_LEAST_6
296 bool
297 select BR2_TOOLCHAIN_GCC_AT_LEAST_5
298
Thomas Petazzoni8ba2a762015-08-04 20:00:33 +0200299# This order guarantees that the highest version is set, as kconfig
300# stops affecting a value on the first matching default.
301config BR2_TOOLCHAIN_GCC_AT_LEAST
302 string
Thomas Petazzoni519d83b2016-04-27 15:54:03 +0200303 default "6" if BR2_TOOLCHAIN_GCC_AT_LEAST_6
Thomas Petazzoni8ba2a762015-08-04 20:00:33 +0200304 default "5" if BR2_TOOLCHAIN_GCC_AT_LEAST_5
305 default "4.9" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
306 default "4.8" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
307 default "4.7" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
308 default "4.6" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
309 default "4.5" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
310 default "4.4" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
311 default "4.3" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100312
313config BR2_TOOLCHAIN_HAS_SYNC_1
314 bool
315 default y
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100316 depends on !BR2_bfin
Waldemar Brodkorbdf00b172016-06-13 08:03:03 +0200317 depends on !BR2_m68k_cf
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100318 depends on !BR2_microblaze
319 depends on !BR2_sparc
320 depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
321
322config BR2_TOOLCHAIN_HAS_SYNC_2
323 bool
324 default y if BR2_TOOLCHAIN_HAS_SYNC_1
325
326config BR2_TOOLCHAIN_HAS_SYNC_4
327 bool
328 default y
Waldemar Brodkorbdf00b172016-06-13 08:03:03 +0200329 depends on !BR2_m68k_cf
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100330 depends on !BR2_sparc
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100331 depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
332
333# The availability of __sync for 8-byte types on ARM is somewhat
334# complicated:
335#
336# - It appeared in gcc starting with gcc 4.7.
337#
338# - On ARMv7, there is no problem, it can be directly implemented in
339# userspace.
340#
341# - On < ARMv7, it requires help from the kernel. Unfortunately, the
342# libgcc code implementing 8-byte __sync with the help from the
343# kernel calls __write() when a failure occurs, which is a function
344# internal to glibc, not available in uClibc and musl. This means
345# that the 8-byte __sync operations are not available on < ARMv7
346# with uClibc and musl. This problem was fixed as part of gcc
347# PR68059, which was backported to the gcc 5 branch, but isn't yet
348# part of any gcc 5.x release.
349#
350config BR2_TOOLCHAIN_ARM_HAS_SYNC_8
351 bool
352 default y
353 depends on BR2_arm || BR2_armeb
354 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
355 depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_ARM_CPU_ARMV7A
356
357# 8-byte intrinsics available on most x86 CPUs, except a few old ones
358config BR2_TOOLCHAIN_X86_HAS_SYNC_8
359 bool
360 default y
361 depends on BR2_i386
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100362 depends on !BR2_x86_i486
363 depends on !BR2_x86_c3
364 depends on !BR2_x86_winchip_c6
365 depends on !BR2_x86_winchip2
366
367# 8-byte intrinsics available:
368# - On all 64 bits architecture
369# - On a certain combinations of ARM platforms
370# - On certain x86 32 bits CPUs
371config BR2_TOOLCHAIN_HAS_SYNC_8
372 bool
373 default y if BR2_ARCH_IS_64
374 default y if BR2_TOOLCHAIN_ARM_HAS_SYNC_8
375 default y if BR2_TOOLCHAIN_X86_HAS_SYNC_8
376
Thomas Petazzoni42735cb2016-03-06 21:47:16 +0100377# libatomic is available since gcc 4.8, when thread support is
Romain Naourb3d1fb22016-08-02 19:25:55 +0200378# enabled. Also, libatomic doesn't recognize "uclinux" as a valid OS
379# part of the tuple, and is therefore not build on uclinux targets,
380# which is why BR2_BINFMT_FLAT configurations are excluded.
Thomas Petazzoni42735cb2016-03-06 21:47:16 +0100381config BR2_TOOLCHAIN_HAS_LIBATOMIC
382 bool
383 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && \
Romain Naourb3d1fb22016-08-02 19:25:55 +0200384 BR2_TOOLCHAIN_HAS_THREADS && \
385 !BR2_BINFMT_FLAT
Thomas Petazzoni42735cb2016-03-06 21:47:16 +0100386
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100387# __atomic intrinsics are available:
388# - with gcc 4.8, either through built-ins or libatomic, on all
Thomas Petazzoni42735cb2016-03-06 21:47:16 +0100389# architectures. Since we don't want to separate the cases where
390# libatomic is needed vs. not needed, we simplify thing and only
391# support situations where libatomic is available, even if on some
392# architectures libatomic is not strictly needed as all __atomic
393# intrinsics might be built-in. The only case where libatomic is
394# missing entirely is when the toolchain does not have support for
395# threads. However, a package that does not need threads but still
396# uses atomics is quite a corner case, which does not warrant the
397# added complexity.
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100398# - with gcc 4.7, libatomic did not exist, so only built-ins are
399# available. This means that __atomic can only be used in a subset
400# of the architectures
401config BR2_TOOLCHAIN_HAS_ATOMIC
402 bool
Thomas Petazzoni42735cb2016-03-06 21:47:16 +0100403 default y if BR2_TOOLCHAIN_HAS_LIBATOMIC
Thomas Petazzoni6856e412016-02-02 16:31:20 +0100404 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_arm
405 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_armeb
406 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_xtensa
407 default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_ARCH_IS_64
Samuel Martinb16f8c72016-07-03 15:47:37 +0200408
409# - libquadmath is not needed/available on all architectures (but gcc
410# correctly handles this already).
411# - At least, libquadmath is available on:
412# - i*86
413# - x86_64
414# - When available, libquadmath requires wchar support.
415config BR2_TOOLCHAIN_HAS_LIBQUADMATH
416 bool
417 default y if BR2_i386 || BR2_x86_64