1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
5 prompt "Target C library"
6 depends on !ADK_TARGET_CHOOSE_ARCH
7 default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX
9 config ADK_TARGET_LIB_UCLIBC_NG
11 select ADK_PACKAGE_LIBGCC
13 ADK_TARGET_ARCH_AARCH64 || \
14 ADK_TARGET_ARCH_ALPHA || \
15 ADK_TARGET_ARCH_ARC || \
16 ADK_TARGET_ARCH_ARM || \
17 ADK_TARGET_ARCH_AVR32 || \
18 ADK_TARGET_ARCH_BFIN || \
19 ADK_TARGET_ARCH_C6X || \
20 ADK_TARGET_ARCH_CRIS || \
21 ADK_TARGET_ARCH_CSKY || \
22 ADK_TARGET_ARCH_FRV || \
23 ADK_TARGET_ARCH_H8300 || \
24 ADK_TARGET_ARCH_HPPA || \
25 ADK_TARGET_ARCH_IA64 || \
26 ADK_TARGET_ARCH_KVX || \
27 ADK_TARGET_ARCH_LM32 || \
28 ADK_TARGET_ARCH_M68K || \
29 ADK_TARGET_ARCH_METAG || \
30 ADK_TARGET_ARCH_MICROBLAZE || \
31 ADK_TARGET_ARCH_MIPS || \
32 ADK_TARGET_ARCH_MIPS64 || \
33 ADK_TARGET_ARCH_NDS32 || \
34 ADK_TARGET_ARCH_NIOS2 || \
35 ADK_TARGET_ARCH_OR1K || \
36 ADK_TARGET_ARCH_PPC || \
37 ADK_TARGET_ARCH_RISCV32 || \
38 ADK_TARGET_ARCH_RISCV64 || \
39 ADK_TARGET_ARCH_SH || \
40 ADK_TARGET_ARCH_SPARC || \
41 ADK_TARGET_ARCH_SPARC64 || \
42 ADK_TARGET_ARCH_TILE || \
43 ADK_TARGET_ARCH_X86 || \
44 ADK_TARGET_ARCH_X86_64 || \
45 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
49 config ADK_TARGET_LIB_MUSL
51 select ADK_PACKAGE_LIBGCC
53 ADK_TARGET_ARCH_AARCH64 || \
54 ADK_TARGET_ARCH_ARM || \
55 ADK_TARGET_ARCH_M68K || \
56 ADK_TARGET_ARCH_LOONGARCH || \
57 ADK_TARGET_ARCH_MICROBLAZE || \
58 ADK_TARGET_ARCH_MIPS || \
59 ADK_TARGET_ARCH_MIPS64 || \
60 ADK_TARGET_ARCH_OR1K || \
61 ADK_TARGET_ARCH_PPC || \
62 ADK_TARGET_ARCH_PPC64 || \
63 ADK_TARGET_ARCH_RISCV32 || \
64 ADK_TARGET_ARCH_RISCV64 || \
65 ADK_TARGET_ARCH_S390 || \
66 ADK_TARGET_ARCH_SH || \
67 ADK_TARGET_ARCH_X86 || \
68 ADK_TARGET_ARCH_X86_64 ) && ADK_TARGET_OS_LINUX
72 config ADK_TARGET_LIB_GLIBC
74 select ADK_PACKAGE_LIBGCC
76 ADK_TARGET_ARCH_AARCH64 || \
77 ADK_TARGET_ARCH_ALPHA || \
78 ADK_TARGET_ARCH_ARC || \
79 ADK_TARGET_ARCH_ARM || \
80 ADK_TARGET_ARCH_CSKY || \
81 ADK_TARGET_ARCH_HPPA || \
82 ADK_TARGET_ARCH_IA64 || \
83 ADK_TARGET_ARCH_LOONGARCH || \
84 ADK_TARGET_ARCH_M68K || \
85 ADK_TARGET_ARCH_MICROBLAZE || \
86 ADK_TARGET_ARCH_MIPS || \
87 ADK_TARGET_ARCH_MIPS64 || \
88 ADK_TARGET_ARCH_NIOS2 || \
89 ADK_TARGET_ARCH_OR1K || \
90 ADK_TARGET_ARCH_PPC || \
91 ADK_TARGET_ARCH_PPC64 || \
92 ADK_TARGET_ARCH_S390 || \
93 ADK_TARGET_CPU_SH_SH4 || \
94 ADK_TARGET_CPU_SH_SH4A || \
95 ADK_TARGET_ARCH_SPARC64 || \
96 ADK_TARGET_ARCH_RISCV32 || \
97 ADK_TARGET_ARCH_RISCV64 || \
98 ADK_TARGET_ARCH_X86 || \
99 ADK_TARGET_ARCH_X86_64) && ADK_TARGET_OS_LINUX
101 http://www.gnu.org/libc
103 config ADK_TARGET_LIB_NEWLIB
105 select ADK_TARGET_WITHOUT_THREADS
107 ADK_TARGET_ARCH_AARCH64 || \
108 ADK_TARGET_ARCH_ARC || \
109 ADK_TARGET_ARCH_ARM || \
110 ADK_TARGET_ARCH_BFIN || \
111 ADK_TARGET_ARCH_C6X || \
112 ADK_TARGET_ARCH_CR16 || \
113 ADK_TARGET_ARCH_CRIS || \
114 ADK_TARGET_ARCH_CSKY || \
115 ADK_TARGET_ARCH_EPIPHANY || \
116 ADK_TARGET_ARCH_FRV || \
117 ADK_TARGET_ARCH_FT32 || \
118 ADK_TARGET_ARCH_H8300 || \
119 ADK_TARGET_ARCH_IA64 || \
120 ADK_TARGET_ARCH_LM32 || \
121 ADK_TARGET_ARCH_M32C || \
122 ADK_TARGET_ARCH_M32R || \
123 ADK_TARGET_ARCH_M68K || \
124 ADK_TARGET_ARCH_MICROBLAZE || \
125 ADK_TARGET_ARCH_MIPS || \
126 ADK_TARGET_ARCH_MN10300 || \
127 ADK_TARGET_ARCH_MOXIE || \
128 ADK_TARGET_ARCH_MSP430 || \
129 ADK_TARGET_ARCH_NIOS2 || \
130 ADK_TARGET_ARCH_NDS32 || \
131 ADK_TARGET_ARCH_OR1K || \
132 ADK_TARGET_ARCH_PPC || \
133 ADK_TARGET_ARCH_RISCV32 || \
134 ADK_TARGET_ARCH_RISCV64 || \
135 ADK_TARGET_ARCH_RX || \
136 ADK_TARGET_ARCH_SH || \
137 ADK_TARGET_ARCH_SPARC || \
138 ADK_TARGET_ARCH_SPARC64 || \
139 ADK_TARGET_ARCH_V850 || \
140 ADK_TARGET_ARCH_X86 || \
141 ADK_TARGET_ARCH_X86_64 || \
142 ADK_TARGET_ARCH_XTENSA) && \
143 ADK_TARGET_OS_BAREMETAL
145 https://sourceware.org/newlib/
150 prompt "Target C library version"
151 depends on !ADK_TARGET_CHOOSE_ARCH
153 config ADK_TARGET_LIB_UCLIBC_NG_1_0_49
155 depends on ADK_TARGET_LIB_UCLIBC_NG
157 config ADK_TARGET_LIB_UCLIBC_NG_GIT
159 depends on ADK_TARGET_LIB_UCLIBC_NG && ADK_EXPERIMENTAL
161 config ADK_TARGET_LIB_GLIBC_2_40
163 depends on ADK_TARGET_LIB_GLIBC
165 config ADK_TARGET_LIB_GLIBC_GIT
167 depends on ADK_TARGET_LIB_GLIBC && ADK_EXPERIMENTAL
169 config ADK_TARGET_LIB_MUSL_1_2_5
171 depends on ADK_TARGET_LIB_MUSL
173 config ADK_TARGET_LIB_MUSL_GIT
175 depends on ADK_TARGET_LIB_MUSL && ADK_EXPERIMENTAL
177 config ADK_TARGET_LIB_NEWLIB_4_4_0
179 depends on ADK_TARGET_LIB_NEWLIB
181 config ADK_TARGET_LIB_NEWLIB_GIT
183 depends on ADK_TARGET_LIB_NEWLIB && ADK_EXPERIMENTAL
187 config ADK_TARGET_LIBC_UTILS
189 default n if ADK_TARGET_ARCH_C6X
190 default n if ADK_TARGET_ARCH_LM32
191 default n if ADK_TARGET_ARCH_H8300
194 config ADK_TARGET_LIBC
196 default "uclibc-ng" if ADK_TARGET_LIB_UCLIBC_NG
197 default "glibc" if ADK_TARGET_LIB_GLIBC
198 default "musl" if ADK_TARGET_LIB_MUSL
199 default "newlib" if ADK_TARGET_LIB_NEWLIB
201 config ADK_LIBC_VERSION
203 default "1.0.49" if ADK_TARGET_LIB_UCLIBC_NG_1_0_49
204 default "1.2.5" if ADK_TARGET_LIB_MUSL_1_2_5
205 default "2.40" if ADK_TARGET_LIB_GLIBC_2_40
206 default "4.4.0" if ADK_TARGET_LIB_NEWLIB_4_4_0
207 default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
208 ADK_TARGET_LIB_MUSL_GIT || \
209 ADK_TARGET_LIB_GLIBC_GIT || \
210 ADK_TARGET_LIB_NEWLIB_GIT
212 config ADK_TARGET_SUFFIX
214 default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
215 default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM
216 default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N64
217 default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N32
218 default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_O64
219 default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_32 && ADK_LINUX_64
220 default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
221 default "gnuspe" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
222 default "gnu" if ADK_TARGET_LIB_GLIBC
223 default "uclibcfdpic" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_XTENSA && ADK_TARGET_BINFMT_FDPIC
224 default "uclinuxfdpiceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_BINFMT_FDPIC
225 default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
226 default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
227 default "uclinuxeabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_UCLINUX
228 default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N64
229 default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N32
230 default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
231 default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
232 default "uclibcspe" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
233 default "uclibcabiv2" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_CSKY
234 default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
235 default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
236 default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
237 default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N64
238 default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N32
239 default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_O32
240 default "musl32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_32 && ADK_LINUX_64
241 default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_X32 && ADK_LINUX_64
242 default "muslfdpic" if ADK_TARGET_LIB_MUSL && ADK_TARGET_BINFMT_FDPIC
243 default "musl" if ADK_TARGET_LIB_MUSL
244 default "eabi" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_ARM
245 default "elf" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_OS_BAREMETAL