Config.in 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. # Config entries for internal toolchain backend
  2. if BR2_TOOLCHAIN_BUILDROOT
  3. comment "Toolchain Buildroot Options"
  4. config BR2_TOOLCHAIN_BUILDROOT_VENDOR
  5. string "custom toolchain vendor name"
  6. default "buildroot"
  7. help
  8. This option allows to customize the "vendor" part of the
  9. toolchain tuple, where the toolchain tuple has the form
  10. <arch>-<vendor>-<os>-<libc>. The default value, "buildroot",
  11. is fine for most cases, except in very specific situations
  12. where gcc might make different decisions based on the vendor
  13. part of the tuple. The value "unknown" is not allowed, as the
  14. cross-compiling toolchain might then be confused with the
  15. native toolchain when the target and host architecture are
  16. identical. The value can not be empty either.
  17. If you're not sure, just leave the default "buildroot" value.
  18. choice
  19. prompt "C library"
  20. default BR2_TOOLCHAIN_BUILDROOT_GLIBC
  21. config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
  22. bool "uClibc-ng"
  23. depends on BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || \
  24. BR2_arm || BR2_armeb || \
  25. BR2_i386 || BR2_m68k || BR2_microblaze || \
  26. BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
  27. BR2_or1k || BR2_powerpc || BR2_RISCV_64 || BR2_sh2a || \
  28. BR2_sh4 || BR2_sh4eb || BR2_sparc || BR2_xtensa || \
  29. BR2_x86_64
  30. select BR2_TOOLCHAIN_USES_UCLIBC
  31. help
  32. This option selects uClibc-ng as the C library for the
  33. cross-compilation toolchain.
  34. http://uclibc-ng.org
  35. config BR2_TOOLCHAIN_BUILDROOT_GLIBC
  36. bool "glibc"
  37. depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
  38. BR2_aarch64_be || BR2_i386 || BR2_mips || \
  39. BR2_mipsel || BR2_mips64 || BR2_mips64el|| \
  40. BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
  41. BR2_riscv || BR2_s390x || BR2_sh || \
  42. BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \
  43. BR2_nios2 || (BR2_arc && BR2_ARC_ATOMIC_EXT) || BR2_csky
  44. depends on BR2_USE_MMU
  45. depends on !BR2_STATIC_LIBS
  46. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
  47. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
  48. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
  49. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64
  50. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc
  51. depends on !BR2_powerpc_SPE
  52. depends on BR2_RISCV_ISA_RVA || !BR2_riscv
  53. select BR2_TOOLCHAIN_USES_GLIBC
  54. help
  55. This option selects glibc as the C library for the
  56. cross-compilation toolchain.
  57. http://www.gnu.org/software/libc/
  58. comment "glibc needs a toolchain w/ kernel headers >= 3.2"
  59. depends on BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
  60. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
  61. # glibc >= 2.26 require kernel headers >= 3.10 on powerpc64le.
  62. comment "glibc on powerpc64le needs a toolchain w/ headers >= 3.10"
  63. depends on BR2_powerpc64le
  64. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
  65. # Support for MIPS NAN2008 needs headers >= 4.5
  66. comment "glibc on MIPS w/ NAN2008 needs a toolchain w/ headers >= 4.5"
  67. depends on BR2_MIPS_NAN_2008
  68. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
  69. comment "glibc on RISC-V 64-bit needs a toolchain w/ headers >= 5.0"
  70. depends on BR2_RISCV_64
  71. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0
  72. comment "glibc on RISC-V 32-bit needs a toolchain w/ headers >= 5.4"
  73. depends on BR2_RISCV_32
  74. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
  75. comment "glibc on ARC needs a toolchain w/ headers >= 5.1"
  76. depends on BR2_arc
  77. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
  78. comment "glibc on or1k needs a toolchain w/ headers >= 5.4"
  79. depends on BR2_or1k
  80. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
  81. config BR2_TOOLCHAIN_BUILDROOT_MUSL
  82. bool "musl"
  83. depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \
  84. BR2_microblaze || BR2_mips || BR2_mipsel || BR2_mips64 || \
  85. BR2_mips64el || BR2_or1k || BR2_powerpc || BR2_powerpc64 || \
  86. BR2_powerpc64le || BR2_RISCV_64 || BR2_sh || BR2_x86_64
  87. depends on !BR2_powerpc_SPE # not supported, build breaks
  88. depends on !(BR2_powerpc64 || BR2_powerpc64le) || BR2_POWERPC_CPU_HAS_ALTIVEC
  89. # sh2 nommu is supported by musl, but we don't have support
  90. # for it in Buildroot.
  91. depends on BR2_USE_MMU
  92. select BR2_TOOLCHAIN_USES_MUSL
  93. help
  94. This option selects musl as the C library for the
  95. cross-compilation toolchain.
  96. https://www.musl-libc.org/
  97. config BR2_TOOLCHAIN_BUILDROOT_NONE
  98. bool "none"
  99. depends on !BR2_PACKAGE_UCLIBC_SUPPORTS && \
  100. !BR2_PACKAGE_GLIBC_SUPPORTS && \
  101. !BR2_PACKAGE_MUSL_SUPPORTS
  102. help
  103. This option is visible if no C library is available for the
  104. currently selected configuration. If you select this option,
  105. the build will refuse to start as Buildroot needs a C
  106. library to build a toolchain. Change your configuration
  107. settings to make sure one of the C libraries is selected.
  108. endchoice
  109. config BR2_TOOLCHAIN_BUILDROOT_LIBC
  110. string
  111. default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
  112. default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC
  113. default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL
  114. source "package/linux-headers/Config.in.host"
  115. source "package/linux-headers/Config.in"
  116. source "package/musl/Config.in"
  117. source "package/uclibc/Config.in"
  118. source "package/glibc/Config.in"
  119. source "package/binutils/Config.in.host"
  120. source "package/gcc/Config.in.host"
  121. source "package/elf2flt/Config.in.host"
  122. endif