1*4882a593Smuzhiyunmenu "Toolchain" 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun# Invisible option that makes sure the toolchain package always gets 4*4882a593Smuzhiyun# built 5*4882a593Smuzhiyunconfig BR2_TOOLCHAIN 6*4882a593Smuzhiyun bool 7*4882a593Smuzhiyun default y 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_PREFER_CLANG 10*4882a593Smuzhiyun bool "Prefer to use clang" 11*4882a593Smuzhiyun default n 12*4882a593Smuzhiyun help 13*4882a593Smuzhiyun Prefer to use clang when available. 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun# Should be selected for glibc or eglibc 16*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_USES_GLIBC 17*4882a593Smuzhiyun bool 18*4882a593Smuzhiyun select BR2_USE_WCHAR 19*4882a593Smuzhiyun select BR2_ENABLE_LOCALE 20*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_FULL_GETTEXT 21*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS 22*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS_DEBUG 23*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS_NPTL 24*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_UCONTEXT 25*4882a593Smuzhiyun select BR2_TOOLCHAIN_SUPPORTS_PIE 26*4882a593Smuzhiyun 27*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_USES_UCLIBC 28*4882a593Smuzhiyun bool 29*4882a593Smuzhiyun # ucontext is only available for a subset of the supported 30*4882a593Smuzhiyun # architectures 31*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_UCONTEXT if BR2_ARM_CPU_HAS_ARM || BR2_i386 \ 32*4882a593Smuzhiyun || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el \ 33*4882a593Smuzhiyun || BR2_sparc || BR2_x86_64 34*4882a593Smuzhiyun select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS 35*4882a593Smuzhiyun 36*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_USES_MUSL 37*4882a593Smuzhiyun bool 38*4882a593Smuzhiyun select BR2_USE_WCHAR 39*4882a593Smuzhiyun select BR2_ENABLE_LOCALE 40*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS 41*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS_DEBUG 42*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_THREADS_NPTL 43*4882a593Smuzhiyun select BR2_TOOLCHAIN_HAS_UCONTEXT 44*4882a593Smuzhiyun select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunchoice 47*4882a593Smuzhiyun prompt "Toolchain type" 48*4882a593Smuzhiyun help 49*4882a593Smuzhiyun Select whether to use the toolchain provided by buildroot 50*4882a593Smuzhiyun or an external toolchain. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun Some vendors provide toolchains in binary form, some in 53*4882a593Smuzhiyun source form. 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_BUILDROOT 56*4882a593Smuzhiyun bool "Buildroot toolchain" 57*4882a593Smuzhiyun depends on BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_EXTERNAL 60*4882a593Smuzhiyun bool "External toolchain" 61*4882a593Smuzhiyun help 62*4882a593Smuzhiyun Select if you want to use an existing cross-compiling 63*4882a593Smuzhiyun toolchain. Buildroot can either download automatically a 64*4882a593Smuzhiyun toolchain, or use an already installed toolchain. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunendchoice 67*4882a593Smuzhiyun 68*4882a593Smuzhiyunsource "toolchain/toolchain-buildroot/Config.in" 69*4882a593Smuzhiyunsource "toolchain/toolchain-external/Config.in" 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun# Generic toolchain options 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun# we want gdb config in the middle of both source and external 74*4882a593Smuzhiyun# toolchains, but mconf won't let us source the same file twice, 75*4882a593Smuzhiyun# so put it here instead 76*4882a593Smuzhiyunsource "package/gdb/Config.in.host" 77*4882a593Smuzhiyun 78*4882a593Smuzhiyuncomment "Toolchain Generic Options" 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun# https://sourceware.org/bugzilla/show_bug.cgi?id=21464 81*4882a593Smuzhiyun# Affect toolchains built with binutils 2.31.1, still not fixed. 82*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 83*4882a593Smuzhiyun bool 84*4882a593Smuzhiyun default y if BR2_or1k 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun# https://sourceware.org/bugzilla/show_bug.cgi?id=27597 87*4882a593Smuzhiyun# Affect toolchains built with binutils 2.36.1, still not fixed. 88*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 89*4882a593Smuzhiyun bool 90*4882a593Smuzhiyun default y if BR2_nios2 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun# Atomic types can be: 93*4882a593Smuzhiyun# - never lock-free 94*4882a593Smuzhiyun# - sometimes lock-free 95*4882a593Smuzhiyun# - always lock-free 96*4882a593Smuzhiyun# see https://en.cppreference.com/w/c/atomic/ATOMIC_LOCK_FREE_consts 97*4882a593Smuzhiyun# 98*4882a593Smuzhiyun# On most architectures, gcc provides "always lock-free" atomic types, 99*4882a593Smuzhiyun# but a few architectures are limited to "sometimes lock-free" 100*4882a593Smuzhiyun# types. This hidden option allows to know if the architecture 101*4882a593Smuzhiyun# provides "always lock-free" atomic types. 102*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 103*4882a593Smuzhiyun bool 104*4882a593Smuzhiyun default y 105*4882a593Smuzhiyun depends on !BR2_nios2 106*4882a593Smuzhiyun depends on !BR2_ARM_CPU_ARMV4 107*4882a593Smuzhiyun depends on !BR2_ARM_CPU_ARMV5 108*4882a593Smuzhiyun depends on !BR2_sparc_v8 109*4882a593Smuzhiyun depends on !BR2_m68k_cf5208 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun# GCC uses thunk functions to adjust the 'this' pointer when calling 112*4882a593Smuzhiyun# C++ member functions in classes derived with multiple inheritance. 113*4882a593Smuzhiyun# Generation of thunk functions requires support from the compiler 114*4882a593Smuzhiyun# back end. In the absence of that support target-independent code 115*4882a593Smuzhiyun# in the C++ front end is used to generate thunk functions, but it 116*4882a593Smuzhiyun# does not support vararg functions. 117*4882a593Smuzhiyun# or1k will support it in the gcc mainline starting with gcc-9. 118*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK 119*4882a593Smuzhiyun bool 120*4882a593Smuzhiyun default y 121*4882a593Smuzhiyun depends on !BR2_or1k 122*4882a593Smuzhiyun depends on !BR2_xtensa 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43744. This bug no 125*4882a593Smuzhiyun# reappeared on gcc 9.x and is still not fixed on gcc 11.x 126*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_43744 127*4882a593Smuzhiyun bool 128*4882a593Smuzhiyun default y if BR2_sh4 129*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 || \ 130*4882a593Smuzhiyun BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \ 131*4882a593Smuzhiyun BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \ 132*4882a593Smuzhiyun BR2_TOOLCHAIN_GCC_AT_LEAST_11 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no 135*4882a593Smuzhiyun# longer exists in gcc 8.x. 136*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_63261 137*4882a593Smuzhiyun bool 138*4882a593Smuzhiyun default y if BR2_microblaze 139*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun# Prior to gcc 7.x, exception_ptr, nested_exception and future from 142*4882a593Smuzhiyun# libstdc++ would only be provided on architectures that support 143*4882a593Smuzhiyun# always lock-free atomic ints. See 144*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735. This issue has 145*4882a593Smuzhiyun# been removed in GCC 7.x, where exception propagation is now 146*4882a593Smuzhiyun# supported without lock-free atomic int. 147*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_64735 148*4882a593Smuzhiyun bool 149*4882a593Smuzhiyun default y if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS && \ 150*4882a593Smuzhiyun !BR2_TOOLCHAIN_GCC_AT_LEAST_7 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68485. This bug still 153*4882a593Smuzhiyun# exists in gcc 9.x 154*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_68485 155*4882a593Smuzhiyun bool 156*4882a593Smuzhiyun default y if BR2_microblaze 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 159*4882a593Smuzhiyun# Error: invalid operands (*UND* and .text sections) for `-' on sh4. 160*4882a593Smuzhiyun# This bug no longer exists in gcc 10.x but reappeared on gcc 11.x and 161*4882a593Smuzhiyun# it still not been fixed yet. 162*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_83143 163*4882a593Smuzhiyun bool 164*4882a593Smuzhiyun default y if BR2_sh 165*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 || BR2_TOOLCHAIN_GCC_AT_LEAST_11 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. This bug no 168*4882a593Smuzhiyun# longer exists in gcc 8.x. 169*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_85180 170*4882a593Smuzhiyun bool 171*4882a593Smuzhiyun default y if BR2_microblaze 172*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85862 175*4882a593Smuzhiyun# An infinite loop exists in the find_base_term() logic of 6.x 176*4882a593Smuzhiyun# on microblaze. http://autobuild.buildroot.net/results/158e8ebb39713e1b436a5cc1a1916f46c30694df/ 177*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_85862 178*4882a593Smuzhiyun bool 179*4882a593Smuzhiyun default y if BR2_microblaze 180*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90620 183*4882a593Smuzhiyun# ICE: in do_output_reload, at reload1.c:7978 on microblaze. 184*4882a593Smuzhiyun# This bug no longer exists in gcc 10.x 185*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_90620 186*4882a593Smuzhiyun bool 187*4882a593Smuzhiyun default y if BR2_microblaze 188*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93847 191*4882a593Smuzhiyun# ICE: compiler error: Segmentation fault on Nios II. This bug 192*4882a593Smuzhiyun# no longer exists in gcc 9.x. 193*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_93847 194*4882a593Smuzhiyun bool 195*4882a593Smuzhiyun default y if BR2_nios2 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99410 198*4882a593Smuzhiyun# Error: branch offset out of range on Nios II. This bug 199*4882a593Smuzhiyun# no longer exists in gcc 8.x but reappeared on gcc 9.x and has been 200*4882a593Smuzhiyun# fixed on gcc 10.x. 201*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_99140 202*4882a593Smuzhiyun bool 203*4882a593Smuzhiyun default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8 204*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_9 && !BR2_TOOLCHAIN_GCC_AT_LEAST_10 205*4882a593Smuzhiyun depends on BR2_nios2 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101737 208*4882a593Smuzhiyun# ICE: SH4 -Os causes internal compiler error. This bug 209*4882a593Smuzhiyun# still exists in gcc = 11.1.0 210*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_101737 211*4882a593Smuzhiyun bool 212*4882a593Smuzhiyun default y if BR2_sh4 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101915 215*4882a593Smuzhiyun# ICE: in extract_insn, at recog.c:2294 on microblaze. 216*4882a593Smuzhiyun# This bug still exists in gcc = 11.1.0 217*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_101915 218*4882a593Smuzhiyun bool 219*4882a593Smuzhiyun default y if BR2_microblaze 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101916 222*4882a593Smuzhiyun# ICE: on SH4: Segmentation fault signal terminated program cc1. 223*4882a593Smuzhiyun# This bug still exists in gcc = 11.1.0 224*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_101916 225*4882a593Smuzhiyun bool 226*4882a593Smuzhiyun default y if BR2_sh4 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101952 229*4882a593Smuzhiyun# ICE: on SH4: unaligned opcodes detected in executable segment. 230*4882a593Smuzhiyun# This bug still exists in gcc = 11.1.0 231*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_GCC_BUG_101952 232*4882a593Smuzhiyun bool 233*4882a593Smuzhiyun default y if BR2_sh4 234*4882a593Smuzhiyun 235*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_NATIVE_RPC 236*4882a593Smuzhiyun bool 237*4882a593Smuzhiyun 238*4882a593Smuzhiyunconfig BR2_USE_WCHAR 239*4882a593Smuzhiyun bool 240*4882a593Smuzhiyun 241*4882a593Smuzhiyunconfig BR2_ENABLE_LOCALE 242*4882a593Smuzhiyun bool 243*4882a593Smuzhiyun 244*4882a593Smuzhiyunconfig BR2_INSTALL_LIBSTDCPP 245*4882a593Smuzhiyun bool 246*4882a593Smuzhiyun 247*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_DLANG 248*4882a593Smuzhiyun bool 249*4882a593Smuzhiyun 250*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_FORTRAN 251*4882a593Smuzhiyun bool 252*4882a593Smuzhiyun 253*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_THREADS 254*4882a593Smuzhiyun bool 255*4882a593Smuzhiyun 256*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_THREADS_DEBUG 257*4882a593Smuzhiyun bool 258*4882a593Smuzhiyun 259*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_THREADS_NPTL 260*4882a593Smuzhiyun bool 261*4882a593Smuzhiyun 262*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SSP 263*4882a593Smuzhiyun bool 264*4882a593Smuzhiyun 265*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SSP_STRONG 266*4882a593Smuzhiyun bool 267*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_HAS_SSP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 268*4882a593Smuzhiyun 269*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_UCONTEXT 270*4882a593Smuzhiyun bool 271*4882a593Smuzhiyun 272*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_OPENMP 273*4882a593Smuzhiyun bool 274*4882a593Smuzhiyun 275*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_SUPPORTS_PIE 276*4882a593Smuzhiyun bool 277*4882a593Smuzhiyun 278*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY 279*4882a593Smuzhiyun bool "Copy gconv libraries" 280*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_USES_GLIBC 281*4882a593Smuzhiyun help 282*4882a593Smuzhiyun The gconv libraries are used to convert between different 283*4882a593Smuzhiyun character sets (charsets). 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun Say 'y' if you need to store and/or display different 286*4882a593Smuzhiyun charsets. 287*4882a593Smuzhiyun 288*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST 289*4882a593Smuzhiyun string "Gconv libraries to copy" 290*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY 291*4882a593Smuzhiyun help 292*4882a593Smuzhiyun Set to the list of gconv libraries to copy. 293*4882a593Smuzhiyun Leave empty to copy all gconv libraries. 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun Specify only the basename of the libraries, leave 296*4882a593Smuzhiyun out the .so extension. Eg.: 297*4882a593Smuzhiyun IBM850 ISO8859-15 UNICODE 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun Note: the full set of gconv libs are ~8MiB (on ARM). 300*4882a593Smuzhiyun 301*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_EXTRA_LIBS 302*4882a593Smuzhiyun string "Extra toolchain libraries to be copied to target" 303*4882a593Smuzhiyun default BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS if BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS != "" # legacy 304*4882a593Smuzhiyun depends on !BR2_STATIC_LIBS 305*4882a593Smuzhiyun help 306*4882a593Smuzhiyun If your toolchain provides extra libraries that need to be 307*4882a593Smuzhiyun copied to the target filesystem, enter them here, separated 308*4882a593Smuzhiyun by spaces. The library should not include a suffix or any 309*4882a593Smuzhiyun type of pre/post wildcard. 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun Examples where this can be useful is for adding debug 312*4882a593Smuzhiyun libraries to the target like the GCC libsanitizer. 313*4882a593Smuzhiyun e.g. "libasan liblsan libtsan libubsan" 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun# This boolean is true if the toolchain provides a built-in full 316*4882a593Smuzhiyun# featured gettext implementation (glibc), and false if only a stub 317*4882a593Smuzhiyun# gettext implementation is provided (uclibc, musl) 318*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_FULL_GETTEXT 319*4882a593Smuzhiyun bool 320*4882a593Smuzhiyun 321*4882a593Smuzhiyunconfig BR2_USE_MMU 322*4882a593Smuzhiyun bool "Enable MMU support" if BR2_ARCH_HAS_MMU_OPTIONAL 323*4882a593Smuzhiyun default y if BR2_ARCH_HAS_MMU_OPTIONAL || BR2_ARCH_HAS_MMU_MANDATORY 324*4882a593Smuzhiyun help 325*4882a593Smuzhiyun If your target has a MMU, you should say Y here. If you 326*4882a593Smuzhiyun are unsure, just say Y. 327*4882a593Smuzhiyun 328*4882a593Smuzhiyunconfig BR2_TARGET_OPTIMIZATION 329*4882a593Smuzhiyun string "Target Optimizations" 330*4882a593Smuzhiyun default "" 331*4882a593Smuzhiyun help 332*4882a593Smuzhiyun Optimizations to use when building for the target host. 333*4882a593Smuzhiyun NOTE: gcc optimization level is defined in build options. 334*4882a593Smuzhiyun 335*4882a593Smuzhiyunconfig BR2_TARGET_LDFLAGS 336*4882a593Smuzhiyun string "Target linker options" 337*4882a593Smuzhiyun help 338*4882a593Smuzhiyun Extra options to pass to the linker when building for the 339*4882a593Smuzhiyun target. 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun Note that options with a '$' sign (eg. 342*4882a593Smuzhiyun -Wl,-rpath='$ORIGIN/../lib') are not supported. 343*4882a593Smuzhiyun 344*4882a593Smuzhiyunconfig BR2_ECLIPSE_REGISTER 345*4882a593Smuzhiyun bool "Register toolchain within Eclipse Buildroot plug-in" 346*4882a593Smuzhiyun help 347*4882a593Smuzhiyun This options tells Buildroot to generate the necessary 348*4882a593Smuzhiyun configuration files to make your toolchain appear within 349*4882a593Smuzhiyun Eclipse, through the Eclipse Buildroot plugin. 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun# Options for packages to depend on, if they require at least a 352*4882a593Smuzhiyun# specific version of the kernel headers. 353*4882a593Smuzhiyun# Toolchains should choose the adequate option (ie. the highest 354*4882a593Smuzhiyun# version, not all of them). 355*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 356*4882a593Smuzhiyun bool 357*4882a593Smuzhiyun 358*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 359*4882a593Smuzhiyun bool 360*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 361*4882a593Smuzhiyun 362*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 363*4882a593Smuzhiyun bool 364*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 365*4882a593Smuzhiyun 366*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 367*4882a593Smuzhiyun bool 368*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 369*4882a593Smuzhiyun 370*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 371*4882a593Smuzhiyun bool 372*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 373*4882a593Smuzhiyun 374*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 375*4882a593Smuzhiyun bool 376*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 377*4882a593Smuzhiyun 378*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 379*4882a593Smuzhiyun bool 380*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 381*4882a593Smuzhiyun 382*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 383*4882a593Smuzhiyun bool 384*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 385*4882a593Smuzhiyun 386*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 387*4882a593Smuzhiyun bool 388*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 389*4882a593Smuzhiyun 390*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 391*4882a593Smuzhiyun bool 392*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 393*4882a593Smuzhiyun 394*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 395*4882a593Smuzhiyun bool 396*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 397*4882a593Smuzhiyun 398*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 399*4882a593Smuzhiyun bool 400*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 401*4882a593Smuzhiyun 402*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 403*4882a593Smuzhiyun bool 404*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 405*4882a593Smuzhiyun 406*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 407*4882a593Smuzhiyun bool 408*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 409*4882a593Smuzhiyun 410*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 411*4882a593Smuzhiyun bool 412*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 413*4882a593Smuzhiyun 414*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 415*4882a593Smuzhiyun bool 416*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 417*4882a593Smuzhiyun 418*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 419*4882a593Smuzhiyun bool 420*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 421*4882a593Smuzhiyun 422*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 423*4882a593Smuzhiyun bool 424*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 425*4882a593Smuzhiyun 426*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 427*4882a593Smuzhiyun bool 428*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 429*4882a593Smuzhiyun 430*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 431*4882a593Smuzhiyun bool 432*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 433*4882a593Smuzhiyun 434*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 435*4882a593Smuzhiyun bool 436*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 437*4882a593Smuzhiyun 438*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 439*4882a593Smuzhiyun bool 440*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 441*4882a593Smuzhiyun 442*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 443*4882a593Smuzhiyun bool 444*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 445*4882a593Smuzhiyun 446*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 447*4882a593Smuzhiyun bool 448*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 449*4882a593Smuzhiyun 450*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 451*4882a593Smuzhiyun bool 452*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 453*4882a593Smuzhiyun 454*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 455*4882a593Smuzhiyun bool 456*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 457*4882a593Smuzhiyun 458*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 459*4882a593Smuzhiyun bool 460*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 461*4882a593Smuzhiyun 462*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 463*4882a593Smuzhiyun bool 464*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 465*4882a593Smuzhiyun 466*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 467*4882a593Smuzhiyun bool 468*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 469*4882a593Smuzhiyun 470*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 471*4882a593Smuzhiyun bool 472*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 473*4882a593Smuzhiyun 474*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 475*4882a593Smuzhiyun bool 476*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 477*4882a593Smuzhiyun 478*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 479*4882a593Smuzhiyun bool 480*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 481*4882a593Smuzhiyun 482*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 483*4882a593Smuzhiyun bool 484*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 485*4882a593Smuzhiyun 486*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 487*4882a593Smuzhiyun bool 488*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 489*4882a593Smuzhiyun 490*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 491*4882a593Smuzhiyun bool 492*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 493*4882a593Smuzhiyun 494*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 495*4882a593Smuzhiyun bool 496*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 497*4882a593Smuzhiyun 498*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 499*4882a593Smuzhiyun bool 500*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 501*4882a593Smuzhiyun 502*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 503*4882a593Smuzhiyun bool 504*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 505*4882a593Smuzhiyun 506*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 507*4882a593Smuzhiyun bool 508*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 509*4882a593Smuzhiyun 510*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 511*4882a593Smuzhiyun bool 512*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 513*4882a593Smuzhiyun 514*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 515*4882a593Smuzhiyun bool 516*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 517*4882a593Smuzhiyun 518*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 519*4882a593Smuzhiyun bool 520*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 521*4882a593Smuzhiyun 522*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 523*4882a593Smuzhiyun bool 524*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 525*4882a593Smuzhiyun 526*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 527*4882a593Smuzhiyun bool 528*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 529*4882a593Smuzhiyun 530*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 531*4882a593Smuzhiyun bool 532*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 533*4882a593Smuzhiyun 534*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 535*4882a593Smuzhiyun bool 536*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 537*4882a593Smuzhiyun 538*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 539*4882a593Smuzhiyun bool 540*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 541*4882a593Smuzhiyun 542*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 543*4882a593Smuzhiyun bool 544*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 545*4882a593Smuzhiyun 546*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 547*4882a593Smuzhiyun bool 548*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 549*4882a593Smuzhiyun 550*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 551*4882a593Smuzhiyun bool 552*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 553*4882a593Smuzhiyun 554*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 555*4882a593Smuzhiyun bool 556*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 557*4882a593Smuzhiyun 558*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 559*4882a593Smuzhiyun bool 560*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 561*4882a593Smuzhiyun 562*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 563*4882a593Smuzhiyun bool 564*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 565*4882a593Smuzhiyun 566*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 567*4882a593Smuzhiyun bool 568*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 569*4882a593Smuzhiyun 570*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 571*4882a593Smuzhiyun bool 572*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 573*4882a593Smuzhiyun 574*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 575*4882a593Smuzhiyun bool 576*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 577*4882a593Smuzhiyun 578*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 579*4882a593Smuzhiyun bool 580*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 581*4882a593Smuzhiyun 582*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16 583*4882a593Smuzhiyun bool 584*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 585*4882a593Smuzhiyun 586*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17 587*4882a593Smuzhiyun bool 588*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16 589*4882a593Smuzhiyun 590*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18 591*4882a593Smuzhiyun bool 592*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17 593*4882a593Smuzhiyun 594*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19 595*4882a593Smuzhiyun bool 596*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18 597*4882a593Smuzhiyun 598*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0 599*4882a593Smuzhiyun bool 600*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19 601*4882a593Smuzhiyun 602*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1 603*4882a593Smuzhiyun bool 604*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0 605*4882a593Smuzhiyun select BR2_TOOLCHAIN_HEADERS_LATEST 606*4882a593Smuzhiyun 607*4882a593Smuzhiyun# This should be selected by the latest version, above, to indicate that 608*4882a593Smuzhiyun# Buildroot does not know of more recent headers than the ones selected. 609*4882a593Smuzhiyun# This allows using toolchains with headers more recent than Buildroot 610*4882a593Smuzhiyun# knows about, while still enforcing strict check for older headers. 611*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_LATEST 612*4882a593Smuzhiyun bool 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun# This order guarantees that the highest version is set, as kconfig 615*4882a593Smuzhiyun# stops affecting a value on the first matching default. 616*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HEADERS_AT_LEAST 617*4882a593Smuzhiyun string 618*4882a593Smuzhiyun default "6.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1 619*4882a593Smuzhiyun default "6.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0 620*4882a593Smuzhiyun default "5.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19 621*4882a593Smuzhiyun default "5.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18 622*4882a593Smuzhiyun default "5.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17 623*4882a593Smuzhiyun default "5.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16 624*4882a593Smuzhiyun default "5.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 625*4882a593Smuzhiyun default "5.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14 626*4882a593Smuzhiyun default "5.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13 627*4882a593Smuzhiyun default "5.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12 628*4882a593Smuzhiyun default "5.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11 629*4882a593Smuzhiyun default "5.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 630*4882a593Smuzhiyun default "5.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9 631*4882a593Smuzhiyun default "5.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8 632*4882a593Smuzhiyun default "5.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7 633*4882a593Smuzhiyun default "5.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6 634*4882a593Smuzhiyun default "5.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5 635*4882a593Smuzhiyun default "5.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 636*4882a593Smuzhiyun default "5.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3 637*4882a593Smuzhiyun default "5.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 638*4882a593Smuzhiyun default "5.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 639*4882a593Smuzhiyun default "5.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 640*4882a593Smuzhiyun default "4.20" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20 641*4882a593Smuzhiyun default "4.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19 642*4882a593Smuzhiyun default "4.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 643*4882a593Smuzhiyun default "4.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17 644*4882a593Smuzhiyun default "4.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 645*4882a593Smuzhiyun default "4.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 646*4882a593Smuzhiyun default "4.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 647*4882a593Smuzhiyun default "4.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13 648*4882a593Smuzhiyun default "4.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 649*4882a593Smuzhiyun default "4.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11 650*4882a593Smuzhiyun default "4.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10 651*4882a593Smuzhiyun default "4.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9 652*4882a593Smuzhiyun default "4.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8 653*4882a593Smuzhiyun default "4.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 654*4882a593Smuzhiyun default "4.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 655*4882a593Smuzhiyun default "4.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 656*4882a593Smuzhiyun default "4.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 657*4882a593Smuzhiyun default "4.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 658*4882a593Smuzhiyun default "4.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 659*4882a593Smuzhiyun default "4.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1 660*4882a593Smuzhiyun default "4.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 661*4882a593Smuzhiyun default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 662*4882a593Smuzhiyun default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 663*4882a593Smuzhiyun default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 664*4882a593Smuzhiyun default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 665*4882a593Smuzhiyun default "3.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 666*4882a593Smuzhiyun default "3.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 667*4882a593Smuzhiyun default "3.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 668*4882a593Smuzhiyun default "3.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 669*4882a593Smuzhiyun default "3.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11 670*4882a593Smuzhiyun default "3.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 671*4882a593Smuzhiyun default "3.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 672*4882a593Smuzhiyun default "3.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 673*4882a593Smuzhiyun default "3.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 674*4882a593Smuzhiyun default "3.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 675*4882a593Smuzhiyun default "3.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 676*4882a593Smuzhiyun default "3.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 677*4882a593Smuzhiyun default "3.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 678*4882a593Smuzhiyun default "3.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 679*4882a593Smuzhiyun default "3.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 680*4882a593Smuzhiyun default "3.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 681*4882a593Smuzhiyun default "2.6" 682*4882a593Smuzhiyun 683*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 684*4882a593Smuzhiyun bool 685*4882a593Smuzhiyun 686*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 687*4882a593Smuzhiyun bool 688*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 689*4882a593Smuzhiyun 690*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 691*4882a593Smuzhiyun bool 692*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 693*4882a593Smuzhiyun 694*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 695*4882a593Smuzhiyun bool 696*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 697*4882a593Smuzhiyun 698*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 699*4882a593Smuzhiyun bool 700*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 701*4882a593Smuzhiyun 702*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 703*4882a593Smuzhiyun bool 704*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 705*4882a593Smuzhiyun 706*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 707*4882a593Smuzhiyun bool 708*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 709*4882a593Smuzhiyun 710*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_5 711*4882a593Smuzhiyun bool 712*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 713*4882a593Smuzhiyun 714*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_6 715*4882a593Smuzhiyun bool 716*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_5 717*4882a593Smuzhiyun 718*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_7 719*4882a593Smuzhiyun bool 720*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_6 721*4882a593Smuzhiyun 722*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_8 723*4882a593Smuzhiyun bool 724*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_7 725*4882a593Smuzhiyun 726*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_9 727*4882a593Smuzhiyun bool 728*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_8 729*4882a593Smuzhiyun 730*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_10 731*4882a593Smuzhiyun bool 732*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_9 733*4882a593Smuzhiyun 734*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_11 735*4882a593Smuzhiyun bool 736*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_10 737*4882a593Smuzhiyun 738*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST_12 739*4882a593Smuzhiyun bool 740*4882a593Smuzhiyun select BR2_TOOLCHAIN_GCC_AT_LEAST_11 741*4882a593Smuzhiyun 742*4882a593Smuzhiyun# This order guarantees that the highest version is set, as kconfig 743*4882a593Smuzhiyun# stops affecting a value on the first matching default. 744*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_GCC_AT_LEAST 745*4882a593Smuzhiyun string 746*4882a593Smuzhiyun default "12" if BR2_TOOLCHAIN_GCC_AT_LEAST_12 747*4882a593Smuzhiyun default "11" if BR2_TOOLCHAIN_GCC_AT_LEAST_11 748*4882a593Smuzhiyun default "10" if BR2_TOOLCHAIN_GCC_AT_LEAST_10 749*4882a593Smuzhiyun default "9" if BR2_TOOLCHAIN_GCC_AT_LEAST_9 750*4882a593Smuzhiyun default "8" if BR2_TOOLCHAIN_GCC_AT_LEAST_8 751*4882a593Smuzhiyun default "7" if BR2_TOOLCHAIN_GCC_AT_LEAST_7 752*4882a593Smuzhiyun default "6" if BR2_TOOLCHAIN_GCC_AT_LEAST_6 753*4882a593Smuzhiyun default "5" if BR2_TOOLCHAIN_GCC_AT_LEAST_5 754*4882a593Smuzhiyun default "4.9" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 755*4882a593Smuzhiyun default "4.8" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 756*4882a593Smuzhiyun default "4.7" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 757*4882a593Smuzhiyun default "4.6" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 758*4882a593Smuzhiyun default "4.5" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 759*4882a593Smuzhiyun default "4.4" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 760*4882a593Smuzhiyun default "4.3" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 761*4882a593Smuzhiyun 762*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_MNAN_OPTION 763*4882a593Smuzhiyun bool 764*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 765*4882a593Smuzhiyun 766*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SYNC_1 767*4882a593Smuzhiyun bool 768*4882a593Smuzhiyun default y 769*4882a593Smuzhiyun depends on !BR2_m68k_cf 770*4882a593Smuzhiyun depends on !BR2_microblaze 771*4882a593Smuzhiyun depends on !BR2_sparc 772*4882a593Smuzhiyun depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) 773*4882a593Smuzhiyun 774*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SYNC_2 775*4882a593Smuzhiyun bool 776*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_HAS_SYNC_1 777*4882a593Smuzhiyun 778*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SYNC_4 779*4882a593Smuzhiyun bool 780*4882a593Smuzhiyun default y 781*4882a593Smuzhiyun depends on !BR2_m68k_cf 782*4882a593Smuzhiyun depends on !BR2_sparc 783*4882a593Smuzhiyun depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) 784*4882a593Smuzhiyun 785*4882a593Smuzhiyun# The availability of __sync for 8-byte types on ARM is somewhat 786*4882a593Smuzhiyun# complicated: 787*4882a593Smuzhiyun# 788*4882a593Smuzhiyun# - It appeared in gcc starting with gcc 4.7. 789*4882a593Smuzhiyun# 790*4882a593Smuzhiyun# - On ARMv7, there is no problem, it can be directly implemented in 791*4882a593Smuzhiyun# userspace. 792*4882a593Smuzhiyun# 793*4882a593Smuzhiyun# - On < ARMv7, it requires help from the kernel. Unfortunately, the 794*4882a593Smuzhiyun# libgcc code implementing 8-byte __sync with the help from the 795*4882a593Smuzhiyun# kernel calls __write() when a failure occurs, which is a function 796*4882a593Smuzhiyun# internal to glibc, not available in uClibc and musl. This means 797*4882a593Smuzhiyun# that the 8-byte __sync operations are not available on < ARMv7 798*4882a593Smuzhiyun# with uClibc and musl. This problem was fixed as part of gcc 799*4882a593Smuzhiyun# PR68059, which was backported to the gcc 5 branch, but isn't yet 800*4882a593Smuzhiyun# part of any gcc 5.x release. 801*4882a593Smuzhiyun# 802*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_ARM_HAS_SYNC_8 803*4882a593Smuzhiyun bool 804*4882a593Smuzhiyun default y 805*4882a593Smuzhiyun depends on BR2_arm || BR2_armeb 806*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 807*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_ARM_CPU_ARMV7A 808*4882a593Smuzhiyun 809*4882a593Smuzhiyun# 8-byte intrinsics available on most x86 CPUs, except a few old ones 810*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_X86_HAS_SYNC_8 811*4882a593Smuzhiyun bool 812*4882a593Smuzhiyun default y 813*4882a593Smuzhiyun depends on BR2_i386 814*4882a593Smuzhiyun depends on !BR2_x86_i486 815*4882a593Smuzhiyun depends on !BR2_x86_c3 816*4882a593Smuzhiyun depends on !BR2_x86_winchip_c6 817*4882a593Smuzhiyun depends on !BR2_x86_winchip2 818*4882a593Smuzhiyun 819*4882a593Smuzhiyun# 8-byte intrinsics available: 820*4882a593Smuzhiyun# - On all 64 bits architecture 821*4882a593Smuzhiyun# - On a certain combinations of ARM platforms 822*4882a593Smuzhiyun# - On certain x86 32 bits CPUs 823*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_SYNC_8 824*4882a593Smuzhiyun bool 825*4882a593Smuzhiyun default y if BR2_ARCH_IS_64 826*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_ARM_HAS_SYNC_8 827*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_X86_HAS_SYNC_8 828*4882a593Smuzhiyun 829*4882a593Smuzhiyun# libatomic is available since gcc 4.8, when thread support is 830*4882a593Smuzhiyun# enabled. Also, libatomic doesn't recognize "uclinux" as a valid OS 831*4882a593Smuzhiyun# part of the tuple, and is therefore not build on uclinux targets, 832*4882a593Smuzhiyun# which is why BR2_BINFMT_FLAT configurations are excluded. 833*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_LIBATOMIC 834*4882a593Smuzhiyun bool 835*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && \ 836*4882a593Smuzhiyun !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 && \ 837*4882a593Smuzhiyun BR2_TOOLCHAIN_HAS_THREADS && \ 838*4882a593Smuzhiyun !BR2_BINFMT_FLAT 839*4882a593Smuzhiyun 840*4882a593Smuzhiyun# __atomic intrinsics are available: 841*4882a593Smuzhiyun# - with gcc 4.8, either through built-ins or libatomic, on all 842*4882a593Smuzhiyun# architectures. Since we don't want to separate the cases where 843*4882a593Smuzhiyun# libatomic is needed vs. not needed, we simplify thing and only 844*4882a593Smuzhiyun# support situations where libatomic is available, even if on some 845*4882a593Smuzhiyun# architectures libatomic is not strictly needed as all __atomic 846*4882a593Smuzhiyun# intrinsics might be built-in. The only case where libatomic is 847*4882a593Smuzhiyun# missing entirely is when the toolchain does not have support for 848*4882a593Smuzhiyun# threads. However, a package that does not need threads but still 849*4882a593Smuzhiyun# uses atomics is quite a corner case, which does not warrant the 850*4882a593Smuzhiyun# added complexity. 851*4882a593Smuzhiyun# - with gcc 4.7, libatomic did not exist, so only built-ins are 852*4882a593Smuzhiyun# available. This means that __atomic can only be used in a subset 853*4882a593Smuzhiyun# of the architectures 854*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_ATOMIC 855*4882a593Smuzhiyun bool 856*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_HAS_LIBATOMIC 857*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_arm 858*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_armeb 859*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_xtensa 860*4882a593Smuzhiyun default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_ARCH_IS_64 861*4882a593Smuzhiyun 862*4882a593Smuzhiyun# - libquadmath is not needed/available on all architectures (but gcc 863*4882a593Smuzhiyun# correctly handles this already). 864*4882a593Smuzhiyun# - At least, libquadmath is available on: 865*4882a593Smuzhiyun# - i*86 866*4882a593Smuzhiyun# - x86_64 867*4882a593Smuzhiyun# - When available, libquadmath requires wchar support. 868*4882a593Smuzhiyunconfig BR2_TOOLCHAIN_HAS_LIBQUADMATH 869*4882a593Smuzhiyun bool 870*4882a593Smuzhiyun default y if BR2_i386 || BR2_x86_64 871*4882a593Smuzhiyun 872*4882a593Smuzhiyunendmenu 873