1 | # configure.host |
---|
2 | |
---|
3 | # This shell script handles all host based configuration for newlib. |
---|
4 | # It sets various shell variables based on the the host and the |
---|
5 | # configuration options. You can modify this shell script without |
---|
6 | # needing to rerun autoconf. |
---|
7 | |
---|
8 | # This shell script should be invoked as |
---|
9 | # . configure.host |
---|
10 | # If it encounters an error, it will exit with a message. |
---|
11 | |
---|
12 | # FIXME: This script is too complicated. It does things in too many |
---|
13 | # different ways. This was taken from the old Cygnus configure script |
---|
14 | # with only minor changes. It should be cleaned up. |
---|
15 | |
---|
16 | # FIXME: The general approach of picking and choosing which |
---|
17 | # directories to configure, other than machine_dir and sys_dir, is |
---|
18 | # potentially confusing. |
---|
19 | |
---|
20 | # It uses the following shell variables: |
---|
21 | # host The configuration host |
---|
22 | # host_cpu The configuration host CPU |
---|
23 | # newlib_mb --enable-newlib-mb ("yes", "no") |
---|
24 | # target_optspace --enable-target-optspace ("yes", "no", "") |
---|
25 | # newlib_multithread --enable-newlib-multithread ("yes", "no", "yes") |
---|
26 | # newlib_elix_level --enable-newlib-elix-level ("1","2","3","4") ("4") |
---|
27 | # newlib_io_c99_formats --enable-newlib-io-c99-formats ("yes", "no", "") |
---|
28 | # newlib_io_long_long --enable-newlib-io-long-long ("yes", "no", "") |
---|
29 | # newlib_io_long_double --enable-newlib-io-long-double ("yes", "no", "") |
---|
30 | |
---|
31 | # It sets the following shell variables: |
---|
32 | # newlib_cflags Special CFLAGS to use when building |
---|
33 | # machine_dir Subdirectory of libc/machine to configure |
---|
34 | # sys_dir Subdirectory of libc/sys to configure |
---|
35 | # have_sys_mach_dir Is there a machine subdirectory in sys subdirectory |
---|
36 | # posix_dir "posix" to build libc/posix, "" otherwise |
---|
37 | # signal_dir "signal" to build libc/signal, "" otherwise |
---|
38 | # stdio64_dir "stdio64" to build libc/stdio64, "" otherwise |
---|
39 | # syscall_dir "syscalls" to build libc/syscalls, "" otherwise |
---|
40 | # unix_dir "unix" to build libc/unix, "" otherwise |
---|
41 | # use_libtool flag: use libtool to build newlib? |
---|
42 | # aext library extension - needed for libtool support |
---|
43 | # oext object file extension - needed for libtool support |
---|
44 | # lpfx library object prefix - generated when no libtool |
---|
45 | # crt1 name of crt1 object if one is provided |
---|
46 | # crt1_dir directory where crt1 object is found |
---|
47 | # have_crt0 "yes"/"no" if crt0 is/isn't provided. |
---|
48 | # "" if crt0 is provided when sys_dir is set |
---|
49 | # noinclude list of include files to not install |
---|
50 | |
---|
51 | newlib_cflags= |
---|
52 | libm_machine_dir= |
---|
53 | machine_dir= |
---|
54 | sys_dir= |
---|
55 | posix_dir= |
---|
56 | signal_dir=signal |
---|
57 | stdio_dir=stdio |
---|
58 | stdio64_dir= |
---|
59 | xdr_dir= |
---|
60 | syscall_dir= |
---|
61 | unix_dir= |
---|
62 | noinclude= |
---|
63 | mach_add_setjmp= |
---|
64 | crt1= |
---|
65 | crt1_dir= |
---|
66 | have_crt0= |
---|
67 | use_libtool=no |
---|
68 | have_sys_mach_dir=no |
---|
69 | default_newlib_io_c99_formats=no |
---|
70 | default_newlib_io_long_long=no |
---|
71 | default_newlib_io_long_double=no |
---|
72 | default_newlib_io_pos_args=no |
---|
73 | default_newlib_atexit_dynamic_alloc=yes |
---|
74 | default_newlib_nano_malloc=no |
---|
75 | aext=a |
---|
76 | oext=o |
---|
77 | lpfx="lib_a-" |
---|
78 | |
---|
79 | case "${target_optspace}:${host}" in |
---|
80 | yes:*) |
---|
81 | newlib_cflags="${newlib_cflags} -Os" |
---|
82 | ;; |
---|
83 | :m32r-* | :d10v-* | :d30v-* | :avr-* | :m32c-* | :msp430*-* | :nds32* | :rl78-* ) |
---|
84 | newlib_cflags="${newlib_cflags} -Os" |
---|
85 | ;; |
---|
86 | no:* | :*) |
---|
87 | ;; |
---|
88 | esac |
---|
89 | |
---|
90 | # Get the source directories to use for the CPU type. |
---|
91 | # machine_dir should supply CPU dependent routines, such as setjmp. |
---|
92 | # newlib_cflags is passed to gcc when compiling. |
---|
93 | # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
---|
94 | |
---|
95 | case "${host_cpu}" in |
---|
96 | a29k) |
---|
97 | machine_dir=a29k |
---|
98 | ;; |
---|
99 | aarch64*) |
---|
100 | machine_dir=aarch64 |
---|
101 | libm_machine_dir=aarch64 |
---|
102 | ;; |
---|
103 | arc*) |
---|
104 | machine_dir=arc |
---|
105 | ;; |
---|
106 | arm*) |
---|
107 | machine_dir=arm |
---|
108 | libm_machine_dir=arm |
---|
109 | ;; |
---|
110 | avr*) |
---|
111 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mcall-prologues" |
---|
112 | ;; |
---|
113 | bfin) |
---|
114 | machine_dir=bfin |
---|
115 | ;; |
---|
116 | cr16*) |
---|
117 | machine_dir=cr16 |
---|
118 | ;; |
---|
119 | cris | crisv32) |
---|
120 | machine_dir=cris |
---|
121 | ;; |
---|
122 | crx*) |
---|
123 | machine_dir=crx |
---|
124 | ;; |
---|
125 | d10v*) |
---|
126 | machine_dir=d10v |
---|
127 | ;; |
---|
128 | d30v*) |
---|
129 | machine_dir=d30v |
---|
130 | ;; |
---|
131 | epiphany) |
---|
132 | machine_dir=epiphany |
---|
133 | ;; |
---|
134 | fido) |
---|
135 | machine_dir=m68k |
---|
136 | newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
---|
137 | ;; |
---|
138 | fr30) |
---|
139 | machine_dir=fr30 |
---|
140 | ;; |
---|
141 | frv) |
---|
142 | machine_dir=frv |
---|
143 | ;; |
---|
144 | ft32*) |
---|
145 | machine_dir=ft32 |
---|
146 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED" |
---|
147 | ;; |
---|
148 | h8300) |
---|
149 | machine_dir=h8300 |
---|
150 | ;; |
---|
151 | h8500) |
---|
152 | machine_dir=h8500 |
---|
153 | ;; |
---|
154 | hppa*) |
---|
155 | machine_dir=hppa |
---|
156 | ;; |
---|
157 | i960) |
---|
158 | machine_dir=i960 |
---|
159 | ;; |
---|
160 | i[34567]86) |
---|
161 | # Don't use for these since they provide their own setjmp. |
---|
162 | case ${host} in |
---|
163 | *-*-sco* | *-*-cygwin*) |
---|
164 | libm_machine_dir=i386 |
---|
165 | machine_dir=i386 |
---|
166 | ;; |
---|
167 | *) |
---|
168 | libm_machine_dir=i386 |
---|
169 | machine_dir=i386 |
---|
170 | mach_add_setjmp=true |
---|
171 | ;; |
---|
172 | esac |
---|
173 | ;; |
---|
174 | ia64*) |
---|
175 | ;; |
---|
176 | iq2000) |
---|
177 | machine_dir=iq2000 |
---|
178 | ;; |
---|
179 | lm32) |
---|
180 | machine_dir=lm32 |
---|
181 | ;; |
---|
182 | m32c) |
---|
183 | machine_dir=m32c |
---|
184 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
---|
185 | ;; |
---|
186 | |
---|
187 | m32r*) |
---|
188 | machine_dir=m32r |
---|
189 | ;; |
---|
190 | |
---|
191 | m68hc11|m6811|m68hc12|m6812) |
---|
192 | machine_dir=m68hc11 |
---|
193 | newlib_cflags="-DPREFER_SIZE_OVER_SPEED -Os -mrelax" |
---|
194 | CFLAGS="-g -Os" |
---|
195 | ;; |
---|
196 | |
---|
197 | m68*) |
---|
198 | machine_dir=m68k |
---|
199 | newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
---|
200 | ;; |
---|
201 | m88k) |
---|
202 | machine_dir=m88k |
---|
203 | newlib_cflags="${newlib_cflags} -m88000" |
---|
204 | ;; |
---|
205 | m88110) |
---|
206 | machine_dir=m88k |
---|
207 | newlib_cflags="${newlib_cflags} -m88110" |
---|
208 | ;; |
---|
209 | mcore) |
---|
210 | ;; |
---|
211 | microblaze*) |
---|
212 | machine_dir=microblaze |
---|
213 | ;; |
---|
214 | mep) |
---|
215 | machine_dir=mep |
---|
216 | ;; |
---|
217 | mips*) |
---|
218 | machine_dir=mips |
---|
219 | ;; |
---|
220 | mmix) |
---|
221 | ;; |
---|
222 | mn10200) |
---|
223 | machine_dir=mn10200 |
---|
224 | ;; |
---|
225 | mn10300) |
---|
226 | default_newlib_io_long_long="yes" |
---|
227 | machine_dir=mn10300 |
---|
228 | ;; |
---|
229 | moxie) |
---|
230 | machine_dir=moxie |
---|
231 | ;; |
---|
232 | msp430*) |
---|
233 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
---|
234 | newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
---|
235 | newlib_cflags="${newlib_cflags} -mOs " |
---|
236 | newlib_cflags="${newlib_cflags} -mhwmult=none " |
---|
237 | machine_dir=msp430 |
---|
238 | default_newlib_nano_malloc="yes" |
---|
239 | ;; |
---|
240 | mt*) |
---|
241 | machine_dir=mt |
---|
242 | ;; |
---|
243 | nds32*) |
---|
244 | machine_dir=nds32 |
---|
245 | libm_machine_dir=nds32 |
---|
246 | newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections" |
---|
247 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME" |
---|
248 | ;; |
---|
249 | nios2*) |
---|
250 | machine_dir=nios2 |
---|
251 | ;; |
---|
252 | or1k*|or1knd*) |
---|
253 | machine_dir=or1k |
---|
254 | ;; |
---|
255 | powerpc*) |
---|
256 | machine_dir=powerpc |
---|
257 | ;; |
---|
258 | riscv*) |
---|
259 | libm_machine_dir=riscv |
---|
260 | machine_dir=riscv |
---|
261 | newlib_cflags="${newlib_cflags} -DHAVE_NANOSLEEP" |
---|
262 | default_newlib_atexit_dynamic_alloc="no" |
---|
263 | ;; |
---|
264 | rl78) |
---|
265 | machine_dir=rl78 |
---|
266 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
---|
267 | newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
---|
268 | ;; |
---|
269 | rx) |
---|
270 | machine_dir=rx |
---|
271 | default_newlib_io_long_long="yes" |
---|
272 | newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
---|
273 | ;; |
---|
274 | sh | sh64) |
---|
275 | machine_dir=sh |
---|
276 | ;; |
---|
277 | sparc*) |
---|
278 | machine_dir=sparc |
---|
279 | # FIXME: Might wish to make MALLOC_ALIGNMENT more generic. |
---|
280 | newlib_cflags="${newlib_cflags} -DMALLOC_ALIGNMENT=8" |
---|
281 | ;; |
---|
282 | tic4x|c4x) |
---|
283 | machine_dir=tic4x |
---|
284 | ;; |
---|
285 | tic6x) |
---|
286 | machine_dir=tic6x |
---|
287 | ;; |
---|
288 | tic80*) |
---|
289 | machine_dir=tic80 |
---|
290 | ;; |
---|
291 | v70) |
---|
292 | ;; |
---|
293 | v810) |
---|
294 | ;; |
---|
295 | v850*) |
---|
296 | machine_dir=v850 |
---|
297 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED " |
---|
298 | ;; |
---|
299 | visium) |
---|
300 | machine_dir=visium |
---|
301 | ;; |
---|
302 | w65*) |
---|
303 | machine_dir=w65 |
---|
304 | ;; |
---|
305 | x86_64) |
---|
306 | machine_dir=x86_64 |
---|
307 | ;; |
---|
308 | xc16x*) |
---|
309 | machine_dir=xc16x |
---|
310 | ;; |
---|
311 | xstormy16) |
---|
312 | machine_dir=xstormy16 |
---|
313 | newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED" |
---|
314 | newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED" |
---|
315 | ;; |
---|
316 | z8k) |
---|
317 | machine_dir=z8k |
---|
318 | ;; |
---|
319 | spu) |
---|
320 | stdio_dir= |
---|
321 | libm_machine_dir=spu |
---|
322 | machine_dir=spu |
---|
323 | newlib_cflags="${newlib_cflags} -D_POSIX_MODE" |
---|
324 | newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED" |
---|
325 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
326 | newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
---|
327 | ;; |
---|
328 | *) |
---|
329 | echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2 |
---|
330 | exit 1 |
---|
331 | ;; |
---|
332 | esac |
---|
333 | |
---|
334 | # Disable thread support if requested. |
---|
335 | |
---|
336 | if [ "${newlib_multithread}" = "no" ] ; then |
---|
337 | newlib_cflags="${newlib_cflags} -D__SINGLE_THREAD__" |
---|
338 | fi |
---|
339 | |
---|
340 | # Disable syscall support if requested. |
---|
341 | |
---|
342 | if [ "${newlib_may_supply_syscalls}" = "no" ] ; then |
---|
343 | newlib_cflags="${newlib_cflags} -D__NO_SYSCALLS__" |
---|
344 | fi |
---|
345 | |
---|
346 | # Enable multibyte support if requested or it is defaulted |
---|
347 | # for target. |
---|
348 | |
---|
349 | if [ "x${newlib_mb}" = "x" ]; then |
---|
350 | case "${host}" in |
---|
351 | i[34567]86-pc-linux-*|*-*-cygwin*) |
---|
352 | newlib_mb=yes |
---|
353 | ;; |
---|
354 | esac |
---|
355 | fi |
---|
356 | |
---|
357 | # Disable printf/scanf floating-point support if requested. |
---|
358 | |
---|
359 | if [ "${newlib_io_float}" = "no" ] ; then |
---|
360 | newlib_cflags="${newlib_cflags} -DNO_FLOATING_POINT" |
---|
361 | fi |
---|
362 | |
---|
363 | # Verify if shared newlib support is allowed and set appropriate variables |
---|
364 | # We don't want to use libtool for platforms that we are not going to |
---|
365 | # support shared libraries. This is because it adds executable tests which |
---|
366 | # we don't want for most embedded platforms. |
---|
367 | case "${host}" in |
---|
368 | i[34567]86-pc-linux-*) |
---|
369 | use_libtool=yes |
---|
370 | have_sys_mach_dir=yes |
---|
371 | stdio64_dir=stdio64 |
---|
372 | oext=lo |
---|
373 | lpfx= |
---|
374 | aext=la ;; |
---|
375 | *) ;; #shared library not supported for ${host} |
---|
376 | esac |
---|
377 | |
---|
378 | # Get the source directories to use for the host. unix_dir is set |
---|
379 | # to unix to get some standard Unix routines. posix_dir is set to get some |
---|
380 | # standard Posix routines. sys_dir should supply system dependent routines |
---|
381 | # including crt0. |
---|
382 | # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
---|
383 | case "${host}" in |
---|
384 | *-almosmkh*) |
---|
385 | sys_dir=almosmkh |
---|
386 | posix_dir=posix |
---|
387 | have_crt0="no" |
---|
388 | ;; |
---|
389 | *-*-cygwin*) |
---|
390 | posix_dir=posix |
---|
391 | stdio64_dir=stdio64 |
---|
392 | xdr_dir=xdr |
---|
393 | ;; |
---|
394 | *-*-netware*) |
---|
395 | signal_dir= |
---|
396 | sys_dir=netware |
---|
397 | ;; |
---|
398 | *-*-phoenix*) |
---|
399 | sys_dir=phoenix |
---|
400 | posix_dir=posix |
---|
401 | unix_dir=unix |
---|
402 | ;; |
---|
403 | *-*-rtems*) # generic RTEMS support |
---|
404 | sys_dir=rtems |
---|
405 | posix_dir=posix |
---|
406 | unix_dir=unix |
---|
407 | ;; |
---|
408 | *-*-tirtos*) |
---|
409 | sys_dir=tirtos |
---|
410 | have_crt0="no" |
---|
411 | ;; |
---|
412 | a29k-*-*) |
---|
413 | sys_dir=a29khif |
---|
414 | signal_dir= |
---|
415 | ;; |
---|
416 | arm*-*-*) |
---|
417 | sys_dir=arm |
---|
418 | if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then |
---|
419 | have_crt0="no" |
---|
420 | fi |
---|
421 | ;; |
---|
422 | bfin-*-*) |
---|
423 | sys_dir= |
---|
424 | ;; |
---|
425 | cr16-*-*) |
---|
426 | sys_dir= |
---|
427 | ;; |
---|
428 | crx*) |
---|
429 | sys_dir= |
---|
430 | ;; |
---|
431 | d10v*) |
---|
432 | sys_dir=d10v |
---|
433 | ;; |
---|
434 | d30v*) |
---|
435 | sys_dir= |
---|
436 | ;; |
---|
437 | epiphany-*-*) |
---|
438 | sys_dir=epiphany |
---|
439 | # crt0 is provided by libgloss. |
---|
440 | have_crt0="no" |
---|
441 | ;; |
---|
442 | frv*) |
---|
443 | sys_dir= |
---|
444 | ;; |
---|
445 | ft32*) |
---|
446 | sys_dir= |
---|
447 | ;; |
---|
448 | h8300-*-hms*) |
---|
449 | sys_dir=h8300hms |
---|
450 | ;; |
---|
451 | h8300-*-elf*) |
---|
452 | sys_dir=h8300hms |
---|
453 | ;; |
---|
454 | h8300-*-coff*) |
---|
455 | sys_dir=h8300hms |
---|
456 | ;; |
---|
457 | h8300-*-xray*) |
---|
458 | sys_dir=h8300xray |
---|
459 | ;; |
---|
460 | h8500-*-hms*) |
---|
461 | sys_dir=h8500hms |
---|
462 | ;; |
---|
463 | h8500-*-elf*) |
---|
464 | sys_dir=h8500hms |
---|
465 | ;; |
---|
466 | i[34567]86-*-rdos*) |
---|
467 | sys_dir=rdos |
---|
468 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
469 | newlib_cflags="${newlib_cflags} -D_I386MACH_DISABLE_HW_INTERRUPTS" |
---|
470 | ;; |
---|
471 | i[34567]86-*-sco*) |
---|
472 | sys_dir=sysvi386 |
---|
473 | unix_dir=unix |
---|
474 | ;; |
---|
475 | i[34567]86-pc-linux-*) |
---|
476 | sys_dir=linux |
---|
477 | unix_dir=unix |
---|
478 | posix_dir=posix |
---|
479 | crt1=crt1.o |
---|
480 | crt1_dir=libc/sys/${sys_dir} |
---|
481 | gcc_dir=`gcc -print-search-dirs | awk '/^install:/{print $2}'` |
---|
482 | default_newlib_io_c99_formats="yes" |
---|
483 | default_newlib_io_long_double="yes" |
---|
484 | default_newlib_io_long_long="yes" |
---|
485 | default_newlib_io_pos_args="yes" |
---|
486 | #newlib_cflags="${newlib_cflags} -Werror" # DEBUGGING ONLY;BREAKS BUILD |
---|
487 | newlib_cflags="${newlib_cflags} -Wall" |
---|
488 | newlib_cflags="${newlib_cflags} -DHAVE_FCNTL" |
---|
489 | newlib_cflags="${newlib_cflags} -DHAVE_GETOPT" |
---|
490 | newlib_cflags="${newlib_cflags} -D_NO_POSIX_SPAWN" |
---|
491 | # --- Required when building a shared library ------------------------ |
---|
492 | newlib_cflags="${newlib_cflags} -fPIC -D_I386MACH_NEED_SOTYPE_FUNCTION" |
---|
493 | # --- The three lines below are optional ------------------------------ |
---|
494 | ##newlib_cflags="${newlib_cflags} -nostdinc" |
---|
495 | ##newlib_cflags="${newlib_cflags} -I`newlib-flags --kernel-dir`/include" |
---|
496 | ##newlib_cflags="${newlib_cflags} -idirafter ${gcc_dir}include" |
---|
497 | ;; |
---|
498 | |
---|
499 | m68hc11-*-*|m6811-*-*|m6812-*-*|m68hc12-*-*) |
---|
500 | ;; |
---|
501 | |
---|
502 | m68k-sun-sunos*) |
---|
503 | unix_dir=unix |
---|
504 | ;; |
---|
505 | m8*-bug-*) |
---|
506 | sys_dir=m88kbug |
---|
507 | ;; |
---|
508 | mep-*-*) |
---|
509 | default_newlib_io_long_long="yes" |
---|
510 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
511 | ;; |
---|
512 | microblaze*-*-*) |
---|
513 | machine_dir=microblaze |
---|
514 | ;; |
---|
515 | mips*-dec-*) |
---|
516 | sys_dir=decstation |
---|
517 | ;; |
---|
518 | mmix-knuth-mmixware) |
---|
519 | sys_dir=mmixware |
---|
520 | ;; |
---|
521 | moxie*) |
---|
522 | sys_dir= |
---|
523 | ;; |
---|
524 | nios2*) |
---|
525 | sys_dir= |
---|
526 | ;; |
---|
527 | or1k-*-elf | or1knd-*-elf) |
---|
528 | sys_dir=or1k |
---|
529 | newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED " |
---|
530 | have_crt0="no" |
---|
531 | ;; |
---|
532 | powerpcle-*-pe) |
---|
533 | posix_dir=posix |
---|
534 | ;; |
---|
535 | sh*-*) |
---|
536 | sys_dir=sh |
---|
537 | ;; |
---|
538 | sparc-sun-sunos*) |
---|
539 | sys_dir=sun4 |
---|
540 | unix_dir=unix |
---|
541 | ;; |
---|
542 | sparc64*) |
---|
543 | sys_dir=sparc64 |
---|
544 | unix_dir=unix |
---|
545 | ;; |
---|
546 | spu-*-*) |
---|
547 | default_newlib_io_long_long="yes" |
---|
548 | default_newlib_atexit_dynamic_alloc="no" |
---|
549 | ;; |
---|
550 | tic6x*) |
---|
551 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
552 | have_crt0="no" |
---|
553 | ;; |
---|
554 | tic80*) |
---|
555 | sys_dir=tic80 |
---|
556 | ;; |
---|
557 | v70-nec-*) |
---|
558 | sys_dir=sysvnecv70 |
---|
559 | ;; |
---|
560 | v810-*-*) |
---|
561 | sys_dir=sysnec810 |
---|
562 | ;; |
---|
563 | v850*-*-*) |
---|
564 | sys_dir=sysnecv850 |
---|
565 | if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then |
---|
566 | have_crt0="no" |
---|
567 | fi |
---|
568 | ;; |
---|
569 | visium-*-*) |
---|
570 | sys_dir= |
---|
571 | ;; |
---|
572 | w65-*-*) |
---|
573 | sys_dir=w65 |
---|
574 | ;; |
---|
575 | z8k-*-coff) |
---|
576 | sys_dir=z8ksim |
---|
577 | ;; |
---|
578 | esac |
---|
579 | |
---|
580 | # Host specific flag settings -- usually for features that are not |
---|
581 | # general enough or broad enough to be handled above. |
---|
582 | # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
---|
583 | case "${host}" in |
---|
584 | *-almosmkh*) |
---|
585 | syscall_dir=syscalls |
---|
586 | newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DHAVE_OPENDIR" |
---|
587 | CFLAGS="${CFLAGS/-std=gnu89/} -I${SHARED_INCLUDE} -I${HAL}/generic -I${LIBALMOSMKH_INCLUDE}" #newlib not compiling with gnu89 and require SHARED_INCLUDE and HAL |
---|
588 | |
---|
589 | ;; |
---|
590 | *-*-cygwin*) |
---|
591 | test -z "$cygwin_srcdir" && cygwin_srcdir=`cd ${srcdir}/../winsup/cygwin; pwd` |
---|
592 | export cygwin_srcdir |
---|
593 | default_newlib_io_c99_formats="yes" |
---|
594 | default_newlib_io_long_long="yes" |
---|
595 | default_newlib_io_long_double="yes" |
---|
596 | default_newlib_io_pos_args="yes" |
---|
597 | CC="${CC} -I${cygwin_srcdir}/include" |
---|
598 | newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DGETREENT_PROVIDED -DSIGNAL_PROVIDED -D_COMPILING_NEWLIB -DHAVE_BLKSIZE -DHAVE_FCNTL -DMALLOC_PROVIDED" |
---|
599 | syscall_dir=syscalls |
---|
600 | ;; |
---|
601 | *-*-phoenix*) |
---|
602 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -D_COMPILING_NEWLIB -DHAVE_BLKSIZE -DHAVE_NANOSLEEP" |
---|
603 | default_newlib_io_long_long="yes" |
---|
604 | syscall_dir= |
---|
605 | ;; |
---|
606 | # RTEMS supplies its own versions of some routines: |
---|
607 | # malloc() (reentrant version) |
---|
608 | # exit() RTEMS has a "global" reent to flush |
---|
609 | # signal()/raise() RTEMS has its own including pthread signals |
---|
610 | # _XYZ_r() RTEMS has its own reentrant routines |
---|
611 | # |
---|
612 | # NOTE: When newlib malloc uses a semaphore, RTEMS will switch to that. |
---|
613 | *-*-rtems*) |
---|
614 | default_newlib_io_long_long="yes" |
---|
615 | default_newlib_io_c99_formats="yes" |
---|
616 | newlib_cflags="${newlib_cflags} -D_COMPILING_NEWLIB" |
---|
617 | newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DGETREENT_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC" |
---|
618 | # turn off unsupported items in posix directory |
---|
619 | newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_WORDEXP -D_NO_POPEN -D_NO_POSIX_SPAWN" |
---|
620 | ;; |
---|
621 | # VxWorks supplies its own version of malloc, and the newlib one |
---|
622 | # doesn't work because VxWorks does not have sbrk. |
---|
623 | *-wrs-vxworks*) |
---|
624 | newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DMISSING_SYSCALL_NAMES -DHAVE_FCNTL" |
---|
625 | ;; |
---|
626 | # TIRTOS supplies its own version of malloc |
---|
627 | *-*-tirtos*) |
---|
628 | newlib_cflags="${newlib_cflags} -D__DYNAMIC_REENT__ -DMALLOC_PROVIDED" |
---|
629 | ;; |
---|
630 | # UDI doesn't have exec, so system() should fail the right way |
---|
631 | a29k-amd-udi) |
---|
632 | newlib_cflags="${newlib_cflags} -DNO_EXEC" |
---|
633 | syscall_dir=syscalls |
---|
634 | ;; |
---|
635 | aarch64*-*-*) |
---|
636 | default_newlib_io_long_long="yes" |
---|
637 | syscall_dir=syscalls |
---|
638 | ;; |
---|
639 | arc*-*-*) |
---|
640 | syscall_dir=syscalls |
---|
641 | default_newlib_io_long_long="yes" |
---|
642 | ;; |
---|
643 | arm*-*-pe) |
---|
644 | syscall_dir=syscalls |
---|
645 | ;; |
---|
646 | arm*-*-*) |
---|
647 | syscall_dir=syscalls |
---|
648 | # If newlib is supplying syscalls, select which debug protocol is being used. |
---|
649 | # ARM_RDP_MONITOR selects the Demon monitor. |
---|
650 | # ARM_RDI_MONITOR selects the Angel monitor. |
---|
651 | # If neither are defined, then hard coded defaults will be used |
---|
652 | # to create the program's environment. |
---|
653 | # If --disable-newlib-supplied-syscalls is specified, then the end-user |
---|
654 | # may specify the protocol via gcc spec files supplied by libgloss. |
---|
655 | if [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; then |
---|
656 | # newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" |
---|
657 | newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" |
---|
658 | fi |
---|
659 | ;; |
---|
660 | avr*) |
---|
661 | newlib_cflags="${newlib_cflags} -DNO_EXEC -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
---|
662 | ;; |
---|
663 | bfin*) |
---|
664 | syscall_dir=syscalls |
---|
665 | ;; |
---|
666 | cris-*-* | crisv32-*-*) |
---|
667 | default_newlib_io_long_long="yes" |
---|
668 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME -D_USE_WRITE -DCOMPACT_CTYPE" |
---|
669 | syscall_dir=syscalls |
---|
670 | ;; |
---|
671 | cr16-*-*) |
---|
672 | syscall_dir=syscalls |
---|
673 | ;; |
---|
674 | crx-*-*) |
---|
675 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DMISSING_SYSCALL_NAMES" |
---|
676 | syscall_dir= |
---|
677 | ;; |
---|
678 | d10v*) |
---|
679 | newlib_cflags="${newlib_cflags} -DSMALL_MEMORY" |
---|
680 | syscall_dir=syscalls |
---|
681 | ;; |
---|
682 | d30v*) |
---|
683 | newlib_cflags="${newlib_cflags} -DABORT_MESSAGE -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
---|
684 | syscall_dir= |
---|
685 | ;; |
---|
686 | epiphany*) |
---|
687 | syscall_dir=syscalls |
---|
688 | newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" |
---|
689 | ;; |
---|
690 | fido-*-elf) |
---|
691 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
---|
692 | syscall_dir= |
---|
693 | ;; |
---|
694 | fr30-*-*) |
---|
695 | syscall_dir=syscalls |
---|
696 | ;; |
---|
697 | frv-*-*) |
---|
698 | syscall_dir=syscalls |
---|
699 | default_newlib_io_long_long="yes" |
---|
700 | ;; |
---|
701 | ft32*-*-*) |
---|
702 | syscall_dir=syscalls |
---|
703 | ;; |
---|
704 | h8300*-*-*) |
---|
705 | syscall_dir=syscalls |
---|
706 | default_newlib_io_long_long="yes" |
---|
707 | newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
---|
708 | # Simulator only extensions for H8300. |
---|
709 | # Uncomment the next line to enable them. |
---|
710 | # newlib_cflags="${newlib_cflags} -D__SIMULATOR__" |
---|
711 | ;; |
---|
712 | h8500-*-*) |
---|
713 | syscall_dir=syscalls |
---|
714 | newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
---|
715 | ;; |
---|
716 | i[34567]86-*-sco*) |
---|
717 | newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED -DHAVE_FCNTL" |
---|
718 | ;; |
---|
719 | i[34567]86-*-netware*) |
---|
720 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DABORT_PROVIDED -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DHAVE_FCNTL" |
---|
721 | ;; |
---|
722 | i[3-7]86-*-elfiamcu) |
---|
723 | newlib_cflags="${newlib_cflags} -Os -DPREFER_SIZE_OVER_SPEED -ffunction-sections -fomit-frame-pointer -DREENTRANT_SYSCALL_PROVIDED" |
---|
724 | if [ "${newlib_multithread}" = "no" ] ; then |
---|
725 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
726 | else |
---|
727 | syscall_dir=syscalls |
---|
728 | newlib_cflags="${newlib_cflags} -D__DYNAMIC_REENT__" |
---|
729 | fi |
---|
730 | ;; |
---|
731 | iq2000*) |
---|
732 | syscall_dir=syscalls |
---|
733 | default_newlib_io_long_long="yes" |
---|
734 | ;; |
---|
735 | lm32-*-*) |
---|
736 | syscall_dir=syscalls |
---|
737 | ;; |
---|
738 | m32c-*-*) |
---|
739 | default_newlib_io_long_long="yes" |
---|
740 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DABORT_PROVIDED" |
---|
741 | syscall_dir= |
---|
742 | ;; |
---|
743 | m32r-*-*) |
---|
744 | # Pass -msdata=sdata so _impure_ptr goes in .sdata. |
---|
745 | # We don't generate sda relocs however for upward compatibility. |
---|
746 | # FIXME: This is necessary because the default multilib doesn't |
---|
747 | # use --print-multi-lib. |
---|
748 | newlib_cflags="${newlib_cflags} -msdata=sdata" |
---|
749 | syscall_dir=syscalls |
---|
750 | ;; |
---|
751 | m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) |
---|
752 | newlib_cflags="${newlib_cflags} -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
---|
753 | ;; |
---|
754 | m68k-unknown-elf) |
---|
755 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
---|
756 | syscall_dir= |
---|
757 | ;; |
---|
758 | mcore-*-*) |
---|
759 | syscall_dir=syscalls |
---|
760 | ;; |
---|
761 | microblaze*-*-*) |
---|
762 | default_newlib_io_long_long="yes" |
---|
763 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DSMALL_MEMORY -D_REENT_SMALL" |
---|
764 | ;; |
---|
765 | mips64vr*-*-*) |
---|
766 | default_newlib_io_long_long="yes" |
---|
767 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
768 | ;; |
---|
769 | mips*-*-elf*) |
---|
770 | default_newlib_io_long_long="yes" |
---|
771 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
772 | ;; |
---|
773 | mmix-*) |
---|
774 | syscall_dir=syscalls |
---|
775 | # We need every symbol 32-bit aligned, so the invalid |
---|
776 | # construct with attribute ((alias ("_ctype_b+127"))) breaks. |
---|
777 | newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
---|
778 | ;; |
---|
779 | mn10?00-*-*) |
---|
780 | syscall_dir=syscalls |
---|
781 | ;; |
---|
782 | moxie-*-elf* | moxie-*-rtems*) |
---|
783 | syscall_dir=syscalls |
---|
784 | default_newlib_io_long_long="yes" |
---|
785 | ;; |
---|
786 | moxie-*-moxiebox) |
---|
787 | syscall_dir=syscalls |
---|
788 | default_newlib_io_long_long="yes" |
---|
789 | newlib_cflags="${newlib_cflags} -Os -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
---|
790 | ;; |
---|
791 | nios2*) |
---|
792 | syscall_dir= |
---|
793 | newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
---|
794 | ;; |
---|
795 | nds32*) |
---|
796 | syscall_dir=syscalls |
---|
797 | ;; |
---|
798 | or1k*|or1knd*) |
---|
799 | syscall_dir=syscalls |
---|
800 | ;; |
---|
801 | powerpc*-*-eabialtivec*) |
---|
802 | default_newlib_io_long_long="yes" |
---|
803 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
804 | ;; |
---|
805 | powerpc*-*-eabispe*) |
---|
806 | default_newlib_io_long_long="yes" |
---|
807 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
808 | ;; |
---|
809 | powerpc*-*-eabi* | \ |
---|
810 | powerpc*-*-elf* | \ |
---|
811 | powerpc*-*-linux* | \ |
---|
812 | powerpc*-*-rtem* | \ |
---|
813 | powerpc*-*-sysv* | \ |
---|
814 | powerpc*-*-solaris*) |
---|
815 | default_newlib_io_long_long="yes" |
---|
816 | newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES" |
---|
817 | ;; |
---|
818 | powerpcle-*-pe) |
---|
819 | newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DHAVE_FCNTL -D_NO_POSIX_SPAWN" |
---|
820 | syscall_dir=syscalls |
---|
821 | ;; |
---|
822 | riscv*-*-*) |
---|
823 | syscall_dir=syscalls |
---|
824 | ;; |
---|
825 | sh*-*-*) |
---|
826 | default_newlib_io_long_long="yes" |
---|
827 | syscall_dir=syscalls |
---|
828 | ;; |
---|
829 | sparc-sun-sunos*) |
---|
830 | newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" |
---|
831 | ;; |
---|
832 | sparc64-*-*) |
---|
833 | newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_BLKSIZE -DHAVE_FCNTL" |
---|
834 | # This either belongs elsewhere or nowhere. But I need *something*, |
---|
835 | # so for now it's here ... |
---|
836 | case "${host_os}" in |
---|
837 | aoutv8 | *32p) |
---|
838 | newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=32" ;; |
---|
839 | *) |
---|
840 | newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=64" ;; |
---|
841 | esac |
---|
842 | ;; |
---|
843 | tic6x*) |
---|
844 | syscall_dir= |
---|
845 | newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED" |
---|
846 | ;; |
---|
847 | tic80*) |
---|
848 | syscall_dir=syscalls |
---|
849 | ;; |
---|
850 | v850*-*-*) |
---|
851 | syscall_dir=syscalls |
---|
852 | ;; |
---|
853 | visium-*-*) |
---|
854 | newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
---|
855 | syscall_dir= |
---|
856 | ;; |
---|
857 | w65-*-*) |
---|
858 | syscall_dir=syscalls |
---|
859 | newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
---|
860 | ;; |
---|
861 | xc16x-*) |
---|
862 | syscall_dir=syscalls |
---|
863 | ;; |
---|
864 | xstormy16-*-*) |
---|
865 | syscall_dir=syscalls |
---|
866 | ;; |
---|
867 | z8k-*-*) |
---|
868 | syscall_dir=syscalls |
---|
869 | ;; |
---|
870 | *) |
---|
871 | newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
---|
872 | syscall_dir= |
---|
873 | ;; |
---|
874 | esac |
---|
875 | |
---|
876 | # Use defaults for certain settings if not specified by user |
---|
877 | |
---|
878 | # Enable C99 format support in I/O routines if requested. |
---|
879 | if [ "x${newlib_io_c99_formats}" = "x" ]; then |
---|
880 | if [ ${default_newlib_io_c99_formats} = "yes" ]; then |
---|
881 | newlib_io_c99_formats="yes"; |
---|
882 | fi |
---|
883 | fi |
---|
884 | |
---|
885 | # Enable long long support in I/O routines if requested. |
---|
886 | if [ "x${newlib_io_long_long}" = "x" ]; then |
---|
887 | if [ ${default_newlib_io_long_long} = "yes" ]; then |
---|
888 | newlib_io_long_long="yes"; |
---|
889 | fi |
---|
890 | fi |
---|
891 | |
---|
892 | # Enable long double support in I/O routines if requested. |
---|
893 | if [ "x${newlib_io_long_double}" = "x" ]; then |
---|
894 | if [ ${default_newlib_io_long_double} = "yes" ]; then |
---|
895 | newlib_io_long_double="yes"; |
---|
896 | fi |
---|
897 | fi |
---|
898 | |
---|
899 | # Enable printf positional argument support if requested. |
---|
900 | if [ "x${newlib_io_pos_args}" = "x" ]; then |
---|
901 | if [ ${default_newlib_io_pos_args} = "yes" ]; then |
---|
902 | newlib_io_pos_args="yes"; |
---|
903 | fi |
---|
904 | fi |
---|
905 | |
---|
906 | # Disable atexit dynamic allocation if requested. |
---|
907 | if [ "x${newlib_atexit_dynamic_alloc}" = "x" ]; then |
---|
908 | if [ ${default_newlib_atexit_dynamic_alloc} = "yes" ]; then |
---|
909 | newlib_atexit_dynamic_alloc="yes"; |
---|
910 | fi |
---|
911 | fi |
---|
912 | |
---|
913 | # Enable nano-malloc if requested. |
---|
914 | if [ "x${newlib_nano_malloc}" = "x" ]; then |
---|
915 | if [ ${default_newlib_nano_malloc} = "yes" ]; then |
---|
916 | newlib_nano_malloc="yes"; |
---|
917 | fi |
---|
918 | fi |
---|
919 | |
---|
920 | # Remove rpc headers if xdr_dir not specified |
---|
921 | if [ "x${xdr_dir}" = "x" ]; then |
---|
922 | noinclude="${noinclude} rpc/types.h rpc/xdr.h" |
---|
923 | fi |
---|
924 | |
---|
925 | if test -z "${have_crt0}" && test -n "${sys_dir}"; then |
---|
926 | have_crt0="yes" |
---|
927 | fi |
---|