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