add new arch m32c (newlib toolchain)
[openadk.git] / target / config / Config.in.libc
blob219ccdcd2e34fc342de4b7a7a73652dc5322c7b2
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_SPARC64 || \
37                 ADK_TARGET_ARCH_X86 || \
38                 ADK_TARGET_ARCH_X86_64 || \
39                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
40         help
41           http://uclibc-ng.org
43 config ADK_TARGET_LIB_MUSL
44         bool "musl C library"
45         select ADK_PACKAGE_LIBGCC
46         depends on (\
47                 ADK_TARGET_ARCH_AARCH64 || \
48                 ADK_TARGET_ARCH_ARM || \
49                 ADK_TARGET_ARCH_MICROBLAZE || \
50                 ADK_TARGET_ARCH_MIPS || \
51                 ADK_TARGET_ARCH_MIPS64 || \
52                 ADK_TARGET_ARCH_OR1K || \
53                 ADK_TARGET_ARCH_PPC || \
54                 ADK_TARGET_ARCH_PPC64 || \
55                 ADK_TARGET_ARCH_S390 || \
56                 ADK_TARGET_ARCH_SH || \
57                 ADK_TARGET_ARCH_X86 || \
58                 ADK_TARGET_ARCH_X86_64 || \
59                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
60         help
61           http://musl-libc.org
63 config ADK_TARGET_LIB_GLIBC
64         bool "GNU C library"
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_HPPA || \
71                 ADK_TARGET_ARCH_IA64 || \
72                 ADK_TARGET_ARCH_MICROBLAZE || \
73                 ADK_TARGET_ARCH_MIPS || \
74                 ADK_TARGET_ARCH_MIPS64 || \
75                 ADK_TARGET_ARCH_NIOS2 || \
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_SPARC64 || \
82                 ADK_TARGET_ARCH_TILE || \
83                 ADK_TARGET_ARCH_RISCV32 || \
84                 ADK_TARGET_ARCH_RISCV64 || \
85                 ADK_TARGET_ARCH_X86 || \
86                 ADK_TARGET_ARCH_X86_64) && ADK_TARGET_OS_LINUX
87         help
88           http://www.gnu.org/libc
90 config ADK_TARGET_LIB_NEWLIB
91         bool "newlib C library"
92         select ADK_TARGET_WITHOUT_THREADS
93         depends on (\
94                 ADK_TARGET_ARCH_AARCH64 || \
95                 ADK_TARGET_ARCH_ARC || \
96                 ADK_TARGET_ARCH_ARM || \
97                 ADK_TARGET_ARCH_BFIN || \
98                 ADK_TARGET_ARCH_CR16 || \
99                 ADK_TARGET_ARCH_CRIS || \
100                 ADK_TARGET_ARCH_EPIPHANY || \
101                 ADK_TARGET_ARCH_FRV || \
102                 ADK_TARGET_ARCH_H8300 || \
103                 ADK_TARGET_ARCH_IA64 || \
104                 ADK_TARGET_ARCH_LM32 || \
105                 ADK_TARGET_ARCH_M32C || \
106                 ADK_TARGET_ARCH_M32R || \
107                 ADK_TARGET_ARCH_M68K || \
108                 ADK_TARGET_ARCH_MICROBLAZE || \
109                 ADK_TARGET_ARCH_MIPS || \
110                 ADK_TARGET_ARCH_MN10300 || \
111                 ADK_TARGET_ARCH_MOXIE || \
112                 ADK_TARGET_ARCH_MSP430 || \
113                 ADK_TARGET_ARCH_NIOS2 || \
114                 ADK_TARGET_ARCH_NDS32 || \
115                 ADK_TARGET_ARCH_OR1K || \
116                 ADK_TARGET_ARCH_PPC || \
117                 ADK_TARGET_ARCH_RISCV32 || \
118                 ADK_TARGET_ARCH_RISCV64 || \
119                 ADK_TARGET_ARCH_RX || \
120                 ADK_TARGET_ARCH_SH || \
121                 ADK_TARGET_ARCH_SPARC || \
122                 ADK_TARGET_ARCH_SPARC64 || \
123                 ADK_TARGET_ARCH_V850 || \
124                 ADK_TARGET_ARCH_X86 || \
125                 ADK_TARGET_ARCH_X86_64 || \
126                 ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_BAREMETAL
127         help
128           https://sourceware.org/newlib/
130 endchoice
132 choice
133 prompt "C library version"
135 config ADK_TARGET_LIB_UCLIBC_NG_1_0_25
136         bool "1.0.25"
137         depends on ADK_TARGET_LIB_UCLIBC_NG
139 config ADK_TARGET_LIB_UCLIBC_NG_GIT
140         bool "git"
141         depends on ADK_TARGET_LIB_UCLIBC_NG
143 config ADK_TARGET_LIB_GLIBC_2_25
144         bool "2.25"
145         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_RISCV32 && !ADK_TARGET_ARCH_RISCV64
147 config ADK_TARGET_LIB_GLIBC_RISCV
148         bool "riscv"
149         depends on ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
151 config ADK_TARGET_LIB_GLIBC_GIT
152         bool "git"
153         depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_RISCV32 && !ADK_TARGET_ARCH_RISCV64
155 config ADK_TARGET_LIB_MUSL_1_1_16
156         bool "1.1.16"
157         depends on ADK_TARGET_LIB_MUSL
159 config ADK_TARGET_LIB_MUSL_GIT
160         bool "git"
161         depends on ADK_TARGET_LIB_MUSL
163 config ADK_TARGET_LIB_NEWLIB_2_5_0
164         bool "2.5.0"
165         depends on ADK_TARGET_LIB_NEWLIB && !ADK_TARGET_ARCH_RISCV
167 config ADK_TARGET_LIB_NEWLIB_RISCV
168         bool "2.4.0-riscv"
169         depends on ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_RISCV
171 config ADK_TARGET_LIB_NEWLIB_GIT
172         bool "git"
173         depends on ADK_TARGET_LIB_NEWLIB && !ADK_TARGET_ARCH_RISCV
175 endchoice
177 choice
178 prompt "Threading"
180 config ADK_TARGET_WITH_NPTL
181         bool "enable NPTL"
182         depends on ADK_TARGET_SUPPORTS_NPTL && ADK_TARGET_SUPPORTS_THREADS && !ADK_TARGET_LIB_NEWLIB
184 config ADK_TARGET_WITH_LT
185         bool "enable Linuxthreads"
186         depends on ADK_TARGET_SUPPORTS_LT && ADK_TARGET_SUPPORTS_THREADS && ADK_TARGET_LIB_UCLIBC_NG
188 config ADK_TARGET_WITHOUT_THREADS
189         bool "disable threads"
190         depends on ADK_TARGET_LIB_UCLIBC_NG || ADK_TARGET_LIB_NEWLIB
192 endchoice
194 config ADK_TARGET_SUPPORTS_THREADS
195         bool
197 config ADK_TARGET_SUPPORTS_NPTL
198         bool
200 config ADK_TARGET_SUPPORTS_LT
201         bool
203 config ADK_TARGET_LIBC_UTILS
204         bool
205         default n if ADK_TARGET_ARCH_LM32
206         default n if ADK_TARGET_ARCH_H8300
207         default y
209 config ADK_TARGET_LIBC
210         string
211         default "uclibc-ng" if ADK_TARGET_LIB_UCLIBC_NG
212         default "glibc" if ADK_TARGET_LIB_GLIBC
213         default "musl" if ADK_TARGET_LIB_MUSL
214         default "newlib" if ADK_TARGET_LIB_NEWLIB
216 config ADK_LIBC_VERSION
217         string
218         default "1.0.25" if ADK_TARGET_LIB_UCLIBC_NG_1_0_25
219         default "1.1.16" if ADK_TARGET_LIB_MUSL_1_1_16
220         default "2.25" if ADK_TARGET_LIB_GLIBC_2_25
221         default "2.4.0" if ADK_TARGET_LIB_NEWLIB_2_4_0
222         default "2.4.0-riscv" if ADK_TARGET_LIB_NEWLIB_RISCV
223         default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
224                          ADK_TARGET_LIB_MUSL_GIT || \
225                          ADK_TARGET_LIB_GLIBC_GIT || \
226                          ADK_TARGET_LIB_NEWLIB_GIT
228 config ADK_TARGET_SUFFIX
229         string
230         default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
231         default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_ARM
232         default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N64
233         default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_N32
234         default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_O64
235         default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_32 && ADK_LINUX_64
236         default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
237         default "gnu" if ADK_TARGET_LIB_GLIBC
238         default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
239         default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
240         default "uclinuxeabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_WITHOUT_MMU
241         default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N64
242         default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N32
243         default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
244         default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
245         default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
246         default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
247         default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
248         default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N64
249         default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_N32
250         default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_O32
251         default "musl32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_32 && ADK_LINUX_64
252         default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ABI_X32 && ADK_LINUX_64
253         default "muslfdpic" if ADK_TARGET_LIB_MUSL && ADK_TARGET_BINFMT_FDPIC
254         default "musl" if ADK_TARGET_LIB_MUSL
255         default "eabi" if ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_ARM
256         default "elf" if ADK_TARGET_LIB_NEWLIB