source: trunk/libs/newlib/src/newlib/configure.host @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 22.6 KB
Line 
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
51newlib_cflags=
52libm_machine_dir=
53machine_dir=
54sys_dir=
55posix_dir=
56signal_dir=signal
57stdio_dir=stdio
58stdio64_dir=
59xdr_dir=
60syscall_dir=
61unix_dir=
62noinclude=
63mach_add_setjmp=
64crt1=
65crt1_dir=
66have_crt0=
67use_libtool=no
68have_sys_mach_dir=no
69default_newlib_io_c99_formats=no
70default_newlib_io_long_long=no
71default_newlib_io_long_double=no
72default_newlib_io_pos_args=no
73default_newlib_atexit_dynamic_alloc=yes
74default_newlib_nano_malloc=no
75aext=a
76oext=o
77lpfx="lib_a-"
78
79case "${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    ;;
88esac
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
95case "${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        ;;
332esac
333
334# Disable thread support if requested.
335
336if [ "${newlib_multithread}" = "no" ] ; then
337        newlib_cflags="${newlib_cflags} -D__SINGLE_THREAD__"
338fi
339
340# Disable syscall support if requested.
341
342if [ "${newlib_may_supply_syscalls}" = "no" ] ; then
343        newlib_cflags="${newlib_cflags} -D__NO_SYSCALLS__"
344fi
345
346# Enable multibyte support if requested or it is defaulted
347# for target.
348
349if [ "x${newlib_mb}" = "x" ]; then
350        case "${host}" in
351          i[34567]86-pc-linux-*|*-*-cygwin*)
352                newlib_mb=yes
353                ;;
354        esac
355fi
356
357# Disable printf/scanf floating-point support if requested.
358
359if [ "${newlib_io_float}" = "no" ] ; then
360        newlib_cflags="${newlib_cflags} -DNO_FLOATING_POINT"
361fi
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.
367case "${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}
376esac
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.
383case "${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        ;;
578esac
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.
583case "${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"
617newlib_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        ;;
874esac
875
876# Use defaults for certain settings if not specified by user
877
878# Enable C99 format support in I/O routines if requested.
879if [ "x${newlib_io_c99_formats}" = "x" ]; then
880        if [ ${default_newlib_io_c99_formats} = "yes" ]; then
881                newlib_io_c99_formats="yes";
882        fi
883fi
884
885# Enable long long support in I/O routines if requested.
886if [ "x${newlib_io_long_long}" = "x" ]; then
887        if [ ${default_newlib_io_long_long} = "yes" ]; then
888                newlib_io_long_long="yes";
889        fi
890fi
891
892# Enable long double support in I/O routines if requested.
893if [ "x${newlib_io_long_double}" = "x" ]; then
894        if [ ${default_newlib_io_long_double} = "yes" ]; then
895                newlib_io_long_double="yes";
896        fi
897fi
898
899# Enable printf positional argument support if requested.
900if [ "x${newlib_io_pos_args}" = "x" ]; then
901        if [ ${default_newlib_io_pos_args} = "yes" ]; then
902                newlib_io_pos_args="yes";
903        fi
904fi
905
906# Disable atexit dynamic allocation if requested.
907if [ "x${newlib_atexit_dynamic_alloc}" = "x" ]; then
908        if [ ${default_newlib_atexit_dynamic_alloc} = "yes" ]; then
909                newlib_atexit_dynamic_alloc="yes";
910        fi
911fi
912
913# Enable nano-malloc if requested.
914if [ "x${newlib_nano_malloc}" = "x" ]; then
915        if [ ${default_newlib_nano_malloc} = "yes" ]; then
916                newlib_nano_malloc="yes";
917        fi
918fi
919
920# Remove rpc headers if xdr_dir not specified
921if [ "x${xdr_dir}" = "x" ]; then
922        noinclude="${noinclude} rpc/types.h rpc/xdr.h"
923fi
924
925if test -z "${have_crt0}" && test -n "${sys_dir}"; then
926  have_crt0="yes"
927fi
Note: See TracBrowser for help on using the repository browser.