sh2-nommu/j2: add better support and add required patches from musl-cross-make
[openadk.git] / target / config / Config.in.libc
blobc384434fa16f54b30dcbddf4e2ecfb2fd4f62b61
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 choice
5 prompt "C library"
6 default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX
8 config ADK_TARGET_LIB_UCLIBC_NG
9         bool "uClibc-ng embedded C library"
10         select ADK_PACKAGE_LIBGCC
11         depends on (\
12                 ADK_TARGET_ARCH_AARCH64 || \
13                 ADK_TARGET_ARCH_ALPHA || \
14                 ADK_TARGET_ARCH_ARC || \
15                 ADK_TARGET_ARCH_ARM || \
16                 ADK_TARGET_ARCH_AVR32 || \
17                 ADK_TARGET_ARCH_BFIN || \
18                 ADK_TARGET_ARCH_C6X || \
19                 ADK_TARGET_ARCH_CRIS || \
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_SH || \
35                 ADK_TARGET_ARCH_SPARC || \
36                 ADK_TARGET_ARCH_X86 || \
37                 ADK_TARGET_ARCH_X86_64 || \
38                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
39         help
40           http://uclibc-ng.org
42 config ADK_TARGET_LIB_MUSL
43         bool "musl C library"
44         select ADK_PACKAGE_LIBGCC
45         depends on (\
46                 ADK_TARGET_ARCH_AARCH64 || \
47                 ADK_TARGET_ARCH_ARM || \
48                 ADK_TARGET_ARCH_MICROBLAZE || \
49                 ADK_TARGET_ARCH_MIPS || \
50                 ADK_TARGET_ARCH_MIPS64 || \
51                 ADK_TARGET_ARCH_OR1K || \
52                 ADK_TARGET_ARCH_PPC || \
53                 ADK_TARGET_ARCH_PPC64 || \
54                 ADK_TARGET_ARCH_S390 || \
55                 ADK_TARGET_ARCH_SH || \
56                 ADK_TARGET_ARCH_X86 || \
57                 ADK_TARGET_ARCH_X86_64 || \
58                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
59         help
60           http://musl-libc.org
62 config ADK_TARGET_LIB_GLIBC
63         bool "GNU C library"
64         select ADK_PACKAGE_LIBGCC
65         depends on (\
66                 ADK_TARGET_ARCH_AARCH64 || \
67                 ADK_TARGET_ARCH_ALPHA || \
68                 ADK_TARGET_ARCH_ARM || \
69                 ADK_TARGET_ARCH_HPPA || \
70                 ADK_TARGET_ARCH_IA64 || \
71                 ADK_TARGET_ARCH_MICROBLAZE || \
72                 ADK_TARGET_ARCH_MIPS || \
73                 ADK_TARGET_ARCH_MIPS64 || \
74                 ADK_TARGET_ARCH_NIOS2 || \
75                 ADK_TARGET_ARCH_OR1K || \
76                 ADK_TARGET_ARCH_PPC || \
77                 ADK_TARGET_ARCH_PPC64 || \
78                 ADK_TARGET_ARCH_S390 || \
79                 ADK_TARGET_CPU_SH_SH4 || \
80                 ADK_TARGET_CPU_SH_SH4A || \
81                 ADK_TARGET_ARCH_SPARC || \
82                 ADK_TARGET_ARCH_SPARC64 || \
83                 ADK_TARGET_ARCH_TILE || \
84                 ADK_TARGET_ARCH_X86 || \
85                 ADK_TARGET_ARCH_X86_64) && ADK_TARGET_OS_LINUX
86         help
87           http://www.gnu.org/libc
89 config ADK_TARGET_LIB_NEWLIB
90         bool "newlib C library"
91         select ADK_TARGET_WITHOUT_THREADS
92         depends on (\
93                 ADK_TARGET_ARCH_AARCH64 || \
94                 ADK_TARGET_ARCH_ARC || \
95                 ADK_TARGET_ARCH_ARM || \
96                 ADK_TARGET_ARCH_BFIN || \
97                 ADK_TARGET_ARCH_CR16 || \
98                 ADK_TARGET_ARCH_CRIS || \
99                 ADK_TARGET_ARCH_EPIPHANY || \
100                 ADK_TARGET_ARCH_FRV || \
101                 ADK_TARGET_ARCH_H8300 || \
102                 ADK_TARGET_ARCH_LM32 || \
103                 ADK_TARGET_ARCH_M32R || \
104                 ADK_TARGET_ARCH_M68K || \
105                 ADK_TARGET_ARCH_MICROBLAZE || \
106                 ADK_TARGET_ARCH_MIPS || \
107                 ADK_TARGET_ARCH_MN10300 || \
108                 ADK_TARGET_ARCH_MOXIE || \
109                 ADK_TARGET_ARCH_MSP430 || \
110                 ADK_TARGET_ARCH_NIOS2 || \
111                 ADK_TARGET_ARCH_NDS32 || \
112                 ADK_TARGET_ARCH_OR1K || \
113                 ADK_TARGET_ARCH_PPC || \
114                 ADK_TARGET_ARCH_SPARC || \
115                 ADK_TARGET_ARCH_SPARC64 || \
116                 ADK_TARGET_ARCH_V850 || \
117                 ADK_TARGET_ARCH_X86 || \
118                 ADK_TARGET_ARCH_X86_64 || \
119                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_BAREMETAL
120         help
121           https://sourceware.org/newlib/
123 endchoice
125 choice
126 prompt "C library version"
128 config ADK_TARGET_LIB_UCLIBC_NG_1_0_20
129         bool "1.0.20"
130         depends on ADK_TARGET_LIB_UCLIBC_NG
132 config ADK_TARGET_LIB_UCLIBC_NG_1_0_19
133         bool "1.0.19"
134         depends on ADK_TARGET_LIB_UCLIBC_NG
136 config ADK_TARGET_LIB_UCLIBC_NG_1_0_18
137         bool "1.0.18"
138         depends on ADK_TARGET_LIB_UCLIBC_NG
140 config ADK_TARGET_LIB_UCLIBC_NG_GIT
141         bool "git"
142         depends on ADK_TARGET_LIB_UCLIBC_NG
144 config ADK_TARGET_LIB_GLIBC_2_24
145         bool "2.24"
146         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_OR1K
148 config ADK_TARGET_LIB_GLIBC_2_23
149         bool "2.23"
150         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_OR1K
152 config ADK_TARGET_LIB_GLIBC_2_22
153         bool "2.22"
154         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_HPPA \
155                                         && !ADK_TARGET_ARCH_OR1K
157 config ADK_TARGET_LIB_GLIBC_OR1K
158         bool "2.20-or1k"
159         depends on ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_OR1K
161 config ADK_TARGET_LIB_GLIBC_GIT
162         bool "git"
163         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_OR1K
165 config ADK_TARGET_LIB_MUSL_1_1_15
166         bool "1.1.15"
167         depends on ADK_TARGET_LIB_MUSL
169 config ADK_TARGET_LIB_MUSL_1_1_14
170         bool "1.1.14"
171         depends on ADK_TARGET_LIB_MUSL
173 config ADK_TARGET_LIB_MUSL_1_1_13
174         bool "1.1.13"
175         depends on ADK_TARGET_LIB_MUSL
177 config ADK_TARGET_LIB_MUSL_GIT
178         bool "git"
179         depends on ADK_TARGET_LIB_MUSL
181 config ADK_TARGET_LIB_NEWLIB_2_4_0
182         bool "2.4.0"
183         depends on ADK_TARGET_LIB_NEWLIB
185 config ADK_TARGET_LIB_NEWLIB_2_3_0
186         bool "2.3.0"
187         depends on ADK_TARGET_LIB_NEWLIB
189 config ADK_TARGET_LIB_NEWLIB_2_2_0
190         bool "2.2.0"
191         depends on ADK_TARGET_LIB_NEWLIB
193 config ADK_TARGET_LIB_NEWLIB_GIT
194         bool "git"
195         depends on ADK_TARGET_LIB_NEWLIB
197 endchoice
199 choice
200 prompt "Threading"
202 config ADK_TARGET_WITH_NPTL
203         bool "enable NPTL"
204         depends on ADK_TARGET_SUPPORTS_NPTL && ADK_TARGET_SUPPORTS_THREADS
206 config ADK_TARGET_WITH_LT
207         bool "enable Linuxthreads"
208         depends on ADK_TARGET_SUPPORTS_LT && ADK_TARGET_SUPPORTS_THREADS && ADK_TARGET_LIB_UCLIBC_NG
210 config ADK_TARGET_WITHOUT_THREADS
211         bool "disable threads"
212         depends on ADK_TARGET_LIB_UCLIBC_NG
214 endchoice
216 config ADK_TARGET_SUPPORTS_THREADS
217         bool
219 config ADK_TARGET_SUPPORTS_NPTL
220         bool
222 config ADK_TARGET_SUPPORTS_LT
223         bool
225 config ADK_TARGET_LIBC
226         string
227         default "uclibc-ng" if ADK_TARGET_LIB_UCLIBC_NG
228         default "glibc" if ADK_TARGET_LIB_GLIBC
229         default "musl" if ADK_TARGET_LIB_MUSL
230         default "newlib" if ADK_TARGET_LIB_NEWLIB
232 config ADK_LIBC_VERSION
233         string
234         default "1.0.20" if ADK_TARGET_LIB_UCLIBC_NG_1_0_20
235         default "1.0.19" if ADK_TARGET_LIB_UCLIBC_NG_1_0_19
236         default "1.0.18" if ADK_TARGET_LIB_UCLIBC_NG_1_0_18
237         default "1.1.15" if ADK_TARGET_LIB_MUSL_1_1_15
238         default "1.1.14" if ADK_TARGET_LIB_MUSL_1_1_14
239         default "1.1.13" if ADK_TARGET_LIB_MUSL_1_1_13
240         default "2.23" if ADK_TARGET_LIB_GLIBC_2_23
241         default "2.22" if ADK_TARGET_LIB_GLIBC_2_22
242         default "2.21" if ADK_TARGET_LIB_GLIBC_2_21
243         default "2.20-or1k" if ADK_TARGET_LIB_GLIBC_OR1K
244         default "2.4.0" if ADK_TARGET_LIB_NEWLIB_2_4_0
245         default "2.3.0" if ADK_TARGET_LIB_NEWLIB_2_3_0
246         default "2.2.0" if ADK_TARGET_LIB_NEWLIB_2_2_0
247         default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
248                          ADK_TARGET_LIB_MUSL_GIT || \
249                          ADK_TARGET_LIB_GLIBC_GIT || \
250                          ADK_TARGET_LIB_NEWLIB_GIT
252 config ADK_TARGET_SUFFIX
253         string
254         default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
255         default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM
256         default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N64
257         default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N32
258         default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_O64
259         default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_32 && ADK_LINUX_64
260         default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
261         default "gnu" if ADK_TARGET_LIB_GLIBC
262         default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
263         default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
264         default "uclinuxeabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_WITHOUT_MMU
265         default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N64
266         default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N32
267         default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
268         default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
269         default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
270         default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
271         default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
272         default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N64
273         default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N32
274         default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_O32
275         default "musl32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_32 && ADK_LINUX_64
276         default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_X32 && ADK_LINUX_64
277         default "muslfdpic" if ADK_TARGET_LIB_MUSL && ADK_TARGET_BINFMT_FDPIC
278         default "musl" if ADK_TARGET_LIB_MUSL
279         default "eabi" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_ARM
280         default "elf" if ADK_TARGET_LIB_NEWLIB