Config.in.libc 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. choice
  4. prompt "Target C library"
  5. depends on !ADK_TARGET_CHOOSE_ARCH
  6. default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
  7. config ADK_TARGET_LIB_UCLIBC_NG
  8. bool "uClibc-ng"
  9. select ADK_PACKAGE_LIBGCC
  10. depends on (\
  11. ADK_TARGET_ARCH_AARCH64 || \
  12. ADK_TARGET_ARCH_ALPHA || \
  13. ADK_TARGET_ARCH_ARC || \
  14. ADK_TARGET_ARCH_ARM || \
  15. ADK_TARGET_ARCH_AVR32 || \
  16. ADK_TARGET_ARCH_BFIN || \
  17. ADK_TARGET_ARCH_C6X || \
  18. ADK_TARGET_ARCH_CRIS || \
  19. ADK_TARGET_ARCH_CSKY || \
  20. ADK_TARGET_ARCH_FRV || \
  21. ADK_TARGET_ARCH_H8300 || \
  22. ADK_TARGET_ARCH_HPPA || \
  23. ADK_TARGET_ARCH_IA64 || \
  24. ADK_TARGET_ARCH_LM32 || \
  25. ADK_TARGET_ARCH_M68K || \
  26. ADK_TARGET_ARCH_METAG || \
  27. ADK_TARGET_ARCH_MICROBLAZE || \
  28. ADK_TARGET_ARCH_MIPS || \
  29. ADK_TARGET_ARCH_MIPS64 || \
  30. ADK_TARGET_ARCH_NDS32 || \
  31. ADK_TARGET_ARCH_NIOS2 || \
  32. ADK_TARGET_ARCH_OR1K || \
  33. ADK_TARGET_ARCH_PPC || \
  34. ADK_TARGET_ARCH_RISCV64 || \
  35. ADK_TARGET_ARCH_SH || \
  36. ADK_TARGET_ARCH_SPARC || \
  37. ADK_TARGET_ARCH_SPARC64 || \
  38. ADK_TARGET_ARCH_TILE || \
  39. ADK_TARGET_ARCH_X86 || \
  40. ADK_TARGET_ARCH_X86_64 || \
  41. ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
  42. help
  43. https://uclibc-ng.org
  44. config ADK_TARGET_LIB_MUSL
  45. bool "musl"
  46. select ADK_PACKAGE_LIBGCC
  47. depends on (\
  48. ADK_TARGET_ARCH_AARCH64 || \
  49. ADK_TARGET_ARCH_ARM || \
  50. ADK_TARGET_ARCH_M68K || \
  51. ADK_TARGET_ARCH_MICROBLAZE || \
  52. ADK_TARGET_ARCH_MIPS || \
  53. ADK_TARGET_ARCH_MIPS64 || \
  54. ADK_TARGET_ARCH_OR1K || \
  55. ADK_TARGET_ARCH_PPC || \
  56. ADK_TARGET_ARCH_PPC64 || \
  57. ADK_TARGET_ARCH_S390 || \
  58. ADK_TARGET_ARCH_SH || \
  59. ADK_TARGET_ARCH_X86 || \
  60. ADK_TARGET_ARCH_X86_64 ) && ADK_TARGET_OS_LINUX
  61. help
  62. http://musl-libc.org
  63. config ADK_TARGET_LIB_GLIBC
  64. bool "glibc"
  65. select ADK_PACKAGE_LIBGCC
  66. depends on (\
  67. ADK_TARGET_ARCH_AARCH64 || \
  68. ADK_TARGET_ARCH_ALPHA || \
  69. ADK_TARGET_ARCH_ARM || \
  70. ADK_TARGET_ARCH_CSKY || \
  71. ADK_TARGET_ARCH_HPPA || \
  72. ADK_TARGET_ARCH_IA64 || \
  73. ADK_TARGET_ARCH_M68K || \
  74. ADK_TARGET_ARCH_MICROBLAZE || \
  75. ADK_TARGET_ARCH_MIPS || \
  76. ADK_TARGET_ARCH_MIPS64 || \
  77. ADK_TARGET_ARCH_NIOS2 || \
  78. ADK_TARGET_ARCH_PPC || \
  79. ADK_TARGET_ARCH_PPC64 || \
  80. ADK_TARGET_ARCH_S390 || \
  81. ADK_TARGET_CPU_SH_SH4 || \
  82. ADK_TARGET_CPU_SH_SH4A || \
  83. ADK_TARGET_ARCH_SPARC64 || \
  84. ADK_TARGET_ARCH_TILE || \
  85. ADK_TARGET_ARCH_RISCV32 || \
  86. ADK_TARGET_ARCH_RISCV64 || \
  87. ADK_TARGET_ARCH_X86 || \
  88. ADK_TARGET_ARCH_X86_64) && ADK_TARGET_OS_LINUX
  89. help
  90. http://www.gnu.org/libc
  91. config ADK_TARGET_LIB_NEWLIB
  92. bool "newlib"
  93. select ADK_TARGET_WITHOUT_THREADS
  94. depends on (\
  95. ADK_TARGET_ARCH_AARCH64 || \
  96. ADK_TARGET_ARCH_ARC || \
  97. ADK_TARGET_ARCH_ARM || \
  98. ADK_TARGET_ARCH_BFIN || \
  99. ADK_TARGET_ARCH_CR16 || \
  100. ADK_TARGET_ARCH_CRIS || \
  101. ADK_TARGET_ARCH_CSKY || \
  102. ADK_TARGET_ARCH_EPIPHANY || \
  103. ADK_TARGET_ARCH_FRV || \
  104. ADK_TARGET_ARCH_FT32 || \
  105. ADK_TARGET_ARCH_H8300 || \
  106. ADK_TARGET_ARCH_IA64 || \
  107. ADK_TARGET_ARCH_LM32 || \
  108. ADK_TARGET_ARCH_M32C || \
  109. ADK_TARGET_ARCH_M32R || \
  110. ADK_TARGET_ARCH_M68K || \
  111. ADK_TARGET_ARCH_MICROBLAZE || \
  112. ADK_TARGET_ARCH_MIPS || \
  113. ADK_TARGET_ARCH_MN10300 || \
  114. ADK_TARGET_ARCH_MOXIE || \
  115. ADK_TARGET_ARCH_MSP430 || \
  116. ADK_TARGET_ARCH_NIOS2 || \
  117. ADK_TARGET_ARCH_NDS32 || \
  118. ADK_TARGET_ARCH_OR1K || \
  119. ADK_TARGET_ARCH_PPC || \
  120. ADK_TARGET_ARCH_RISCV32 || \
  121. ADK_TARGET_ARCH_RISCV64 || \
  122. ADK_TARGET_ARCH_RX || \
  123. ADK_TARGET_ARCH_SH || \
  124. ADK_TARGET_ARCH_SPARC || \
  125. ADK_TARGET_ARCH_SPARC64 || \
  126. ADK_TARGET_ARCH_V850 || \
  127. ADK_TARGET_ARCH_X86 || \
  128. ADK_TARGET_ARCH_X86_64 || \
  129. ADK_TARGET_ARCH_XTENSA) && \
  130. (ADK_TARGET_OS_BAREMETAL || \
  131. ADK_TARGET_OS_FROSTED || \
  132. ADK_TARGET_OS_RTEMS || \
  133. ADK_TARGET_OS_ZEPHYR )
  134. help
  135. https://sourceware.org/newlib/
  136. endchoice
  137. choice
  138. prompt "Target C library version"
  139. depends on !ADK_TARGET_CHOOSE_ARCH
  140. config ADK_TARGET_LIB_UCLIBC_NG_1_0_31
  141. bool "1.0.31"
  142. depends on ADK_TARGET_LIB_UCLIBC_NG
  143. config ADK_TARGET_LIB_UCLIBC_NG_GIT
  144. bool "git"
  145. depends on ADK_TARGET_LIB_UCLIBC_NG && ADK_EXPERIMENTAL
  146. config ADK_TARGET_LIB_GLIBC_2_28
  147. bool "2.28"
  148. depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_CSKY
  149. config ADK_TARGET_LIB_GLIBC_CSKY
  150. bool "csky"
  151. depends on ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_CSKY
  152. config ADK_TARGET_LIB_GLIBC_GIT
  153. bool "git"
  154. depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_CSKY && ADK_EXPERIMENTAL
  155. config ADK_TARGET_LIB_MUSL_1_1_20
  156. bool "1.1.20"
  157. depends on ADK_TARGET_LIB_MUSL
  158. config ADK_TARGET_LIB_MUSL_GIT
  159. bool "git"
  160. depends on ADK_TARGET_LIB_MUSL && ADK_EXPERIMENTAL
  161. config ADK_TARGET_LIB_NEWLIB_3_0_0
  162. bool "3.0.0"
  163. depends on ADK_TARGET_LIB_NEWLIB \
  164. && !ADK_TARGET_ARCH_XTENSA \
  165. && !ADK_TARGET_OS_FROSTED \
  166. && !ADK_TARGET_OS_RTEMS
  167. config ADK_TARGET_LIB_NEWLIB_XTENSA
  168. bool "xtensa"
  169. depends on ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_XTENSA
  170. config ADK_TARGET_LIB_NEWLIB_FROSTED
  171. bool "frosted-git"
  172. depends on ADK_TARGET_LIB_NEWLIB && ADK_TARGET_OS_FROSTED
  173. config ADK_TARGET_LIB_NEWLIB_GIT
  174. bool "git"
  175. depends on ADK_TARGET_LIB_NEWLIB && !ADK_TARGET_OS_FROSTED && ADK_EXPERIMENTAL
  176. endchoice
  177. config ADK_TARGET_LIBC_UTILS
  178. bool
  179. default n if ADK_TARGET_ARCH_C6X
  180. default n if ADK_TARGET_ARCH_LM32
  181. default n if ADK_TARGET_ARCH_H8300
  182. default y
  183. config ADK_TARGET_LIBC
  184. string
  185. default "uclibc-ng" if ADK_TARGET_LIB_UCLIBC_NG
  186. default "glibc" if ADK_TARGET_LIB_GLIBC
  187. default "musl" if ADK_TARGET_LIB_MUSL
  188. default "newlib" if ADK_TARGET_LIB_NEWLIB
  189. config ADK_LIBC_VERSION
  190. string
  191. default "1.0.31" if ADK_TARGET_LIB_UCLIBC_NG_1_0_31
  192. default "1.1.20" if ADK_TARGET_LIB_MUSL_1_1_20
  193. default "2.28" if ADK_TARGET_LIB_GLIBC_2_28
  194. default "3.0.0" if ADK_TARGET_LIB_NEWLIB_3_0_0
  195. default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
  196. ADK_TARGET_LIB_MUSL_GIT || \
  197. ADK_TARGET_LIB_GLIBC_GIT || \
  198. ADK_TARGET_LIB_NEWLIB_GIT
  199. config ADK_TARGET_SUFFIX
  200. string
  201. default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
  202. default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM
  203. default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N64
  204. default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N32
  205. default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_O64
  206. default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_32 && ADK_LINUX_64
  207. default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
  208. default "gnuspe" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
  209. default "gnu" if ADK_TARGET_LIB_GLIBC
  210. default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
  211. default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
  212. default "uclinuxeabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_UCLINUX
  213. default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N64
  214. default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N32
  215. default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
  216. default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
  217. default "uclibcspe" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
  218. default "uclibcabiv2" if ADK_TARGET_LIB_UCLIBC_NG && (ADK_TARGET_CPU_CSKY_CK807 || ADK_TARGET_CPU_CSKY_CK810)
  219. default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
  220. default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
  221. default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
  222. default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N64
  223. default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N32
  224. default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_O32
  225. default "musl32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_32 && ADK_LINUX_64
  226. default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_X32 && ADK_LINUX_64
  227. default "muslfdpic" if ADK_TARGET_LIB_MUSL && ADK_TARGET_BINFMT_FDPIC
  228. default "musl" if ADK_TARGET_LIB_MUSL
  229. default "eabi" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_ARM
  230. default "elf" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_OS_BAREMETAL