| # configure.host |
| |
| # This shell script handles all host based configuration for newlib. |
| # It sets various shell variables based on the the host and the |
| # configuration options. You can modify this shell script without |
| # needing to rerun autoconf. |
| |
| # This shell script should be invoked as |
| # . configure.host |
| # If it encounters an error, it will exit with a message. |
| |
| # FIXME: This script is too complicated. It does things in too many |
| # different ways. This was taken from the old Cygnus configure script |
| # with only minor changes. It should be cleaned up. |
| |
| # FIXME: The general approach of picking and choosing which |
| # directories to configure, other than machine_dir and sys_dir, is |
| # potentially confusing. |
| |
| # It uses the following shell variables: |
| # host The configuration host |
| # host_cpu The configuration host CPU |
| # newlib_mb --enable-newlib-mb ("yes", "no") |
| # target_optspace --enable-target-optspace ("yes", "no", "") |
| # newlib_multithread --enable-newlib-multithread ("yes", "no", "yes") |
| # newlib_elix_level --enable-newlib-elix-level ("1","2","3","4") ("4") |
| # newlib_io_c99_formats --enable-newlib-io-c99-formats ("yes", "no", "") |
| # newlib_io_long_long --enable-newlib-io-long-long ("yes", "no", "") |
| # newlib_io_long_double --enable-newlib-io-long-double ("yes", "no", "") |
| |
| # It sets the following shell variables: |
| # newlib_cflags Special CFLAGS to use when building |
| # machine_dir Subdirectory of libc/machine to configure |
| # sys_dir Subdirectory of libc/sys to configure |
| # have_sys_mach_dir Is there a machine subdirectory in sys subdirectory |
| # posix_dir "posix" to build libc/posix, "" otherwise |
| # signal_dir "signal" to build libc/signal, "" otherwise |
| # stdio64_dir "stdio64" to build libc/stdio64, "" otherwise |
| # syscall_dir "syscalls" to build libc/syscalls, "" otherwise |
| # unix_dir "unix" to build libc/unix, "" otherwise |
| # use_libtool flag: use libtool to build newlib? |
| # aext library extension - needed for libtool support |
| # oext object file extension - needed for libtool support |
| # lpfx library object prefix - generated when no libtool |
| # crt1 name of crt1 object if one is provided |
| # crt1_dir directory where crt1 object is found |
| # have_crt0 "yes"/"no" if crt0 is/isn't provided. |
| # "" if crt0 is provided when sys_dir is set |
| # noinclude list of include files to not install |
| |
| newlib_cflags= |
| libm_machine_dir= |
| machine_dir= |
| sys_dir= |
| posix_dir= |
| signal_dir=signal |
| stdio_dir=stdio |
| stdio64_dir= |
| xdr_dir= |
| syscall_dir= |
| unix_dir= |
| noinclude= |
| mach_add_setjmp= |
| crt1= |
| crt1_dir= |
| have_crt0= |
| use_libtool=no |
| have_sys_mach_dir=no |
| default_newlib_io_c99_formats=no |
| default_newlib_io_long_long=no |
| default_newlib_io_long_double=no |
| default_newlib_io_pos_args=no |
| default_newlib_atexit_dynamic_alloc=yes |
| aext=a |
| oext=o |
| lpfx="lib_a-" |
| |
| case "${target_optspace}:${host}" in |
| yes:*) |
| newlib_cflags="${newlib_cflags} -Os" |
| ;; |
| :m32r-* | :d10v-* | :d30v-* | :avr-* | :m32c-* | :msp430*-* | :nds32* | :rl78-* ) |
| newlib_cflags="${newlib_cflags} -Os" |
| ;; |
| no:* | :*) |
| ;; |
| esac |
| |
| # Get the source directories to use for the CPU type. |
| # machine_dir should supply CPU dependent routines, such as setjmp. |
| # newlib_cflags is passed to gcc when compiling. |
| # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
| |
| case "${host_cpu}" in |
| a29k) |
| machine_dir=a29k |
| ;; |
| aarch64*) |
| machine_dir=aarch64 |
| libm_machine_dir=aarch64 |
| ;; |
| arc) |
| machine_dir= |
| ;; |
| arm*) |
| machine_dir=arm |
| libm_machine_dir=arm |
| ;; |
| avr*) |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mcall-prologues" |
| ;; |
| bfin) |
| machine_dir=bfin |
| ;; |
| cr16*) |
| machine_dir=cr16 |
| ;; |
| cris | crisv32) |
| machine_dir=cris |
| ;; |
| crx*) |
| machine_dir=crx |
| ;; |
| d10v*) |
| machine_dir=d10v |
| ;; |
| d30v*) |
| machine_dir=d30v |
| ;; |
| epiphany) |
| machine_dir=epiphany |
| ;; |
| fido) |
| machine_dir=m68k |
| newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
| ;; |
| fr30) |
| machine_dir=fr30 |
| ;; |
| frv) |
| machine_dir=frv |
| ;; |
| h8300) |
| machine_dir=h8300 |
| ;; |
| h8500) |
| machine_dir=h8500 |
| ;; |
| hppa*) |
| machine_dir=hppa |
| ;; |
| i960) |
| machine_dir=i960 |
| ;; |
| i[34567]86) |
| # Don't use for these since they provide their own setjmp. |
| case ${host} in |
| *-*-sco* | *-*-cygwin*) |
| libm_machine_dir=i386 |
| machine_dir=i386 |
| ;; |
| *) |
| libm_machine_dir=i386 |
| machine_dir=i386 |
| mach_add_setjmp=true |
| ;; |
| esac |
| ;; |
| ia64*) |
| ;; |
| iq2000) |
| machine_dir=iq2000 |
| ;; |
| lm32) |
| machine_dir=lm32 |
| ;; |
| m32c) |
| machine_dir=m32c |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
| ;; |
| |
| m32r*) |
| machine_dir=m32r |
| ;; |
| |
| m68hc11|m6811|m68hc12|m6812) |
| machine_dir=m68hc11 |
| newlib_cflags="-DPREFER_SIZE_OVER_SPEED -Os -mrelax" |
| CFLAGS="-g -Os" |
| ;; |
| |
| m68*) |
| machine_dir=m68k |
| newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
| ;; |
| m88k) |
| machine_dir=m88k |
| newlib_cflags="${newlib_cflags} -m88000" |
| ;; |
| m88110) |
| machine_dir=m88k |
| newlib_cflags="${newlib_cflags} -m88110" |
| ;; |
| mcore) |
| ;; |
| microblaze*) |
| machine_dir=microblaze |
| ;; |
| mep) |
| machine_dir=mep |
| ;; |
| mips*) |
| machine_dir=mips |
| ;; |
| mmix) |
| ;; |
| mn10200) |
| machine_dir=mn10200 |
| ;; |
| mn10300) |
| default_newlib_io_long_long="yes" |
| machine_dir=mn10300 |
| ;; |
| moxie) |
| machine_dir=moxie |
| ;; |
| msp430*) |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
| newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
| newlib_cflags="${newlib_cflags} -mOs " |
| machine_dir=msp430 |
| ;; |
| mt*) |
| machine_dir=mt |
| ;; |
| nds32*) |
| machine_dir=nds32 |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED " |
| newlib_cflags="${newlib_cflags} -DSMALL_MEMORY " |
| newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections" |
| ;; |
| nios2*) |
| machine_dir=nios2 |
| ;; |
| or16) |
| ;; |
| or32) |
| ;; |
| powerpc*) |
| machine_dir=powerpc |
| ;; |
| rl78) |
| machine_dir=rl78 |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY" |
| newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
| ;; |
| rx) |
| machine_dir=rx |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
| ;; |
| sh | sh64) |
| machine_dir=sh |
| ;; |
| sparc*) |
| machine_dir=sparc |
| # FIXME: Might wish to make MALLOC_ALIGNMENT more generic. |
| newlib_cflags="${newlib_cflags} -DMALLOC_ALIGNMENT=8" |
| ;; |
| tic4x|c4x) |
| machine_dir=tic4x |
| ;; |
| tic6x) |
| machine_dir=tic6x |
| ;; |
| tic80*) |
| machine_dir=tic80 |
| ;; |
| v70) |
| ;; |
| v810) |
| ;; |
| v850*) |
| machine_dir=v850 |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED " |
| ;; |
| w65*) |
| machine_dir=w65 |
| ;; |
| x86_64) |
| machine_dir=x86_64 |
| ;; |
| xc16x*) |
| machine_dir=xc16x |
| ;; |
| xstormy16) |
| machine_dir=xstormy16 |
| newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED" |
| newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED" |
| ;; |
| z8k) |
| machine_dir=z8k |
| ;; |
| spu) |
| stdio_dir= |
| libm_machine_dir=spu |
| machine_dir=spu |
| newlib_cflags="${newlib_cflags} -D_POSIX_MODE" |
| newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections " |
| ;; |
| *) |
| echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2 |
| exit 1 |
| ;; |
| esac |
| |
| # Disable thread support if requested. |
| |
| if [ "${newlib_multithread}" = "no" ] ; then |
| newlib_cflags="${newlib_cflags} -D__SINGLE_THREAD__" |
| fi |
| |
| # Disable syscall support if requested. |
| |
| if [ "${newlib_may_supply_syscalls}" = "no" ] ; then |
| newlib_cflags="${newlib_cflags} -D__NO_SYSCALLS__" |
| fi |
| |
| # Enable multibyte support if requested or it is defaulted |
| # for target. |
| |
| if [ "x${newlib_mb}" = "x" ]; then |
| case "${host}" in |
| i[34567]86-pc-linux-*|*-*-cygwin*) |
| newlib_mb=yes |
| ;; |
| esac |
| fi |
| |
| # Disable printf/scanf floating-point support if requested. |
| |
| if [ "${newlib_io_float}" = "no" ] ; then |
| newlib_cflags="${newlib_cflags} -DNO_FLOATING_POINT" |
| fi |
| |
| # Verify if shared newlib support is allowed and set appropriate variables |
| # We don't want to use libtool for platforms that we are not going to |
| # support shared libraries. This is because it adds executable tests which |
| # we don't want for most embedded platforms. |
| case "${host}" in |
| i[34567]86-pc-linux-*) |
| use_libtool=yes |
| have_sys_mach_dir=yes |
| stdio64_dir=stdio64 |
| oext=lo |
| lpfx= |
| aext=la ;; |
| *) ;; #shared library not supported for ${host} |
| esac |
| |
| # Get the source directories to use for the host. unix_dir is set |
| # to unix to get some standard Unix routines. posix_dir is set to get some |
| # standard Posix routines. sys_dir should supply system dependent routines |
| # including crt0. |
| # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
| |
| case "${host}" in |
| *-*-cygwin*) |
| posix_dir=posix |
| stdio64_dir=stdio64 |
| xdr_dir=xdr |
| ;; |
| *-*-netware*) |
| signal_dir= |
| sys_dir=netware |
| ;; |
| *-*-rtems*) # generic RTEMS support |
| sys_dir=rtems |
| posix_dir=posix |
| unix_dir=unix |
| ;; |
| *-*-tirtos*) |
| sys_dir=tirtos |
| have_crt0="no" |
| ;; |
| a29k-*-*) |
| sys_dir=a29khif |
| signal_dir= |
| ;; |
| arc-*-*) |
| sys_dir=arc |
| ;; |
| arm*-*-*) |
| sys_dir=arm |
| if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then |
| have_crt0="no" |
| fi |
| ;; |
| bfin-*-*) |
| sys_dir= |
| ;; |
| cr16-*-*) |
| sys_dir= |
| ;; |
| crx*) |
| sys_dir= |
| ;; |
| d10v*) |
| sys_dir=d10v |
| ;; |
| d30v*) |
| sys_dir= |
| ;; |
| epiphany-*-*) |
| sys_dir=epiphany |
| # crt0 is provided by libgloss. |
| have_crt0="no" |
| ;; |
| frv*) |
| sys_dir= |
| ;; |
| h8300-*-hms*) |
| sys_dir=h8300hms |
| ;; |
| h8300-*-elf*) |
| sys_dir=h8300hms |
| ;; |
| h8300-*-coff*) |
| sys_dir=h8300hms |
| ;; |
| h8300-*-xray*) |
| sys_dir=h8300xray |
| ;; |
| h8500-*-hms*) |
| sys_dir=h8500hms |
| ;; |
| h8500-*-elf*) |
| sys_dir=h8500hms |
| ;; |
| i[34567]86-*-rdos*) |
| sys_dir=rdos |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| i[34567]86-*-sco*) |
| sys_dir=sysvi386 |
| unix_dir=unix |
| ;; |
| i[34567]86-pc-linux-*) |
| sys_dir=linux |
| unix_dir=unix |
| posix_dir=posix |
| crt1=crt1.o |
| crt1_dir=libc/sys/${sys_dir} |
| gcc_dir=`gcc -print-search-dirs | awk '/^install:/{print $2}'` |
| default_newlib_io_c99_formats="yes" |
| default_newlib_io_long_double="yes" |
| default_newlib_io_long_long="yes" |
| default_newlib_io_pos_args="yes" |
| #newlib_cflags="${newlib_cflags} -Werror" # DEBUGGING ONLY;BREAKS BUILD |
| newlib_cflags="${newlib_cflags} -Wall" |
| newlib_cflags="${newlib_cflags} -D_I386MACH_ALLOW_HW_INTERRUPTS" |
| newlib_cflags="${newlib_cflags} -DHAVE_FCNTL" |
| newlib_cflags="${newlib_cflags} -DHAVE_GETOPT" |
| newlib_cflags="${newlib_cflags} -D_NO_POSIX_SPAWN" |
| # --- Required when building a shared library ------------------------ |
| newlib_cflags="${newlib_cflags} -fPIC -D_I386MACH_NEED_SOTYPE_FUNCTION" |
| # --- The three lines below are optional ------------------------------ |
| ##newlib_cflags="${newlib_cflags} -nostdinc" |
| ##newlib_cflags="${newlib_cflags} -I`newlib-flags --kernel-dir`/include" |
| ##newlib_cflags="${newlib_cflags} -idirafter ${gcc_dir}include" |
| ;; |
| |
| m68hc11-*-*|m6811-*-*|m6812-*-*|m68hc12-*-*) |
| ;; |
| |
| m68k-sun-sunos*) |
| unix_dir=unix |
| ;; |
| m8*-bug-*) |
| sys_dir=m88kbug |
| ;; |
| mep-*-*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| microblaze*-*-*) |
| machine_dir=microblaze |
| ;; |
| mips*-dec-*) |
| sys_dir=decstation |
| ;; |
| mmix-knuth-mmixware) |
| sys_dir=mmixware |
| ;; |
| moxie*) |
| sys_dir= |
| ;; |
| nios2*) |
| sys_dir= |
| ;; |
| powerpcle-*-pe) |
| posix_dir=posix |
| ;; |
| sh*-*) |
| sys_dir=sh |
| ;; |
| sparc-sun-sunos*) |
| sys_dir=sun4 |
| unix_dir=unix |
| ;; |
| sparc64*) |
| sys_dir=sparc64 |
| unix_dir=unix |
| ;; |
| spu-*-*) |
| default_newlib_io_long_long="yes" |
| default_newlib_atexit_dynamic_alloc="no" |
| ;; |
| tic6x*) |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| have_crt0="no" |
| ;; |
| tic80*) |
| sys_dir=tic80 |
| ;; |
| v70-nec-*) |
| sys_dir=sysvnecv70 |
| ;; |
| v810-*-*) |
| sys_dir=sysnec810 |
| ;; |
| v850*-*-*) |
| sys_dir=sysnecv850 |
| if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then |
| have_crt0="no" |
| fi |
| ;; |
| w65-*-*) |
| sys_dir=w65 |
| ;; |
| z8k-*-coff) |
| sys_dir=z8ksim |
| ;; |
| esac |
| |
| # Host specific flag settings -- usually for features that are not |
| # general enough or broad enough to be handled above. |
| # THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. |
| |
| case "${host}" in |
| *-*-cygwin*) |
| test -z "$cygwin_srcdir" && cygwin_srcdir=`cd ${srcdir}/../winsup/cygwin; pwd` |
| export cygwin_srcdir |
| default_newlib_io_c99_formats="yes" |
| default_newlib_io_long_long="yes" |
| default_newlib_io_long_double="yes" |
| default_newlib_io_pos_args="yes" |
| CC="${CC} -I${cygwin_srcdir}/include" |
| newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -D_COMPILING_NEWLIB -DHAVE_BLKSIZE -DHAVE_FCNTL -DMALLOC_PROVIDED" |
| syscall_dir=syscalls |
| ;; |
| # RTEMS supplies its own versions of some routines: |
| # malloc() (reentrant version) |
| # exit() RTEMS has a "global" reent to flush |
| # signal()/raise() RTEMS has its own including pthread signals |
| # _XYZ_r() RTEMS has its own reentrant routines |
| # |
| # NOTE: When newlib malloc uses a semaphore, RTEMS will switch to that. |
| *-*-rtems*) |
| default_newlib_io_long_long="yes" |
| default_newlib_io_c99_formats="yes" |
| newlib_cflags="${newlib_cflags} -D_COMPILING_NEWLIB" |
| newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC" |
| # turn off unsupported items in posix directory |
| 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" |
| ;; |
| # VxWorks supplies its own version of malloc, and the newlib one |
| # doesn't work because VxWorks does not have sbrk. |
| *-wrs-vxworks*) |
| newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DMISSING_SYSCALL_NAMES -DHAVE_FCNTL" |
| ;; |
| # TIRTOS supplies its own version of malloc |
| *-*-tirtos*) |
| newlib_cflags="${newlib_cflags} -D__DYNAMIC_REENT__ -DMALLOC_PROVIDED" |
| ;; |
| # UDI doesn't have exec, so system() should fail the right way |
| a29k-amd-udi) |
| newlib_cflags="${newlib_cflags} -DNO_EXEC" |
| syscall_dir=syscalls |
| ;; |
| aarch64*-*-*) |
| default_newlib_io_long_long="yes" |
| syscall_dir=syscalls |
| ;; |
| arc-*-*) |
| syscall_dir=syscalls |
| ;; |
| arm*-*-pe) |
| syscall_dir=syscalls |
| ;; |
| arm*-*-*) |
| syscall_dir=syscalls |
| # If newlib is supplying syscalls, select which debug protocol is being used. |
| # ARM_RDP_MONITOR selects the Demon monitor. |
| # ARM_RDI_MONITOR selects the Angel monitor. |
| # If neither are defined, then hard coded defaults will be used |
| # to create the program's environment. |
| # If --disable-newlib-supplied-syscalls is specified, then the end-user |
| # may specify the protocol via gcc spec files supplied by libgloss. |
| if [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; then |
| # newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" |
| newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" |
| fi |
| ;; |
| arc*) |
| newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED" |
| ;; |
| avr*) |
| newlib_cflags="${newlib_cflags} -DNO_EXEC -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
| ;; |
| bfin*) |
| syscall_dir=syscalls |
| ;; |
| cris-*-* | crisv32-*-*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DHAVE_RENAME -D_USE_WRITE -DCOMPACT_CTYPE" |
| syscall_dir=syscalls |
| ;; |
| cr16-*-*) |
| syscall_dir=syscalls |
| ;; |
| crx-*-*) |
| newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DMISSING_SYSCALL_NAMES" |
| syscall_dir= |
| ;; |
| d10v*) |
| newlib_cflags="${newlib_cflags} -DSMALL_MEMORY" |
| syscall_dir=syscalls |
| ;; |
| d30v*) |
| newlib_cflags="${newlib_cflags} -DABORT_MESSAGE -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
| syscall_dir= |
| ;; |
| epiphany*) |
| syscall_dir=syscalls |
| newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" |
| ;; |
| fido-*-elf) |
| newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
| syscall_dir= |
| ;; |
| fr30-*-*) |
| syscall_dir=syscalls |
| ;; |
| frv-*-*) |
| syscall_dir=syscalls |
| default_newlib_io_long_long="yes" |
| ;; |
| h8300*-*-*) |
| syscall_dir=syscalls |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
| # Simulator only extensions for H8300. |
| # Uncomment the next line to enable them. |
| # newlib_cflags="${newlib_cflags} -D__SIMULATOR__" |
| ;; |
| h8500-*-*) |
| syscall_dir=syscalls |
| newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
| ;; |
| i[34567]86-*-sco*) |
| newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED -DHAVE_FCNTL" |
| ;; |
| i[34567]86-*-netware*) |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DABORT_PROVIDED -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DHAVE_FCNTL" |
| ;; |
| iq2000*) |
| syscall_dir=syscalls |
| default_newlib_io_long_long="yes" |
| ;; |
| lm32-*-*) |
| syscall_dir=syscalls |
| ;; |
| m32c-*-*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DABORT_PROVIDED" |
| syscall_dir= |
| ;; |
| m32r-*-*) |
| # Pass -msdata=sdata so _impure_ptr goes in .sdata. |
| # We don't generate sda relocs however for upward compatibility. |
| # FIXME: This is necessary because the default multilib doesn't |
| # use --print-multi-lib. |
| newlib_cflags="${newlib_cflags} -msdata=sdata" |
| syscall_dir=syscalls |
| ;; |
| m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) |
| newlib_cflags="${newlib_cflags} -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" |
| ;; |
| m68k-unknown-elf) |
| newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
| syscall_dir= |
| ;; |
| mcore-*-*) |
| syscall_dir=syscalls |
| ;; |
| microblaze*-*-*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DSMALL_MEMORY -D_REENT_SMALL" |
| ;; |
| mips64vr*-*-*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| mips*-*-elf*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| mmix-*) |
| syscall_dir=syscalls |
| # We need every symbol 32-bit aligned, so the invalid |
| # construct with attribute ((alias ("_ctype_b+127"))) breaks. |
| newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" |
| ;; |
| mn10?00-*-*) |
| syscall_dir=syscalls |
| ;; |
| moxie-*-*) |
| syscall_dir=syscalls |
| default_newlib_io_long_long="yes" |
| ;; |
| nios2*) |
| syscall_dir= |
| newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES" |
| ;; |
| nds32*) |
| syscall_dir=syscalls |
| ;; |
| powerpc*-*-eabialtivec*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| powerpc*-*-eabispe*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| ;; |
| powerpc*-*-eabi* | \ |
| powerpc*-*-elf* | \ |
| powerpc*-*-linux* | \ |
| powerpc*-*-rtem* | \ |
| powerpc*-*-sysv* | \ |
| powerpc*-*-solaris*) |
| default_newlib_io_long_long="yes" |
| newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES" |
| ;; |
| powerpcle-*-pe) |
| newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DHAVE_FCNTL -D_NO_POSIX_SPAWN" |
| syscall_dir=syscalls |
| ;; |
| sh*-*-*) |
| default_newlib_io_long_long="yes" |
| syscall_dir=syscalls |
| ;; |
| sparc-sun-sunos*) |
| newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" |
| ;; |
| sparc64-*-*) |
| newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_BLKSIZE -DHAVE_FCNTL" |
| # This either belongs elsewhere or nowhere. But I need *something*, |
| # so for now it's here ... |
| case "${host_os}" in |
| aoutv8 | *32p) |
| newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=32" ;; |
| *) |
| newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=64" ;; |
| esac |
| ;; |
| tic6x*) |
| syscall_dir= |
| newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED" |
| ;; |
| tic80*) |
| syscall_dir=syscalls |
| ;; |
| v850*-*-*) |
| syscall_dir=syscalls |
| ;; |
| w65-*-*) |
| syscall_dir=syscalls |
| newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" |
| ;; |
| xc16x-*) |
| syscall_dir=syscalls |
| ;; |
| xstormy16-*-*) |
| syscall_dir=syscalls |
| ;; |
| z8k-*-*) |
| syscall_dir=syscalls |
| ;; |
| *) |
| newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" |
| syscall_dir= |
| ;; |
| esac |
| |
| # Use defaults for certain settings if not specified by user |
| |
| # Enable C99 format support in I/O routines if requested. |
| if [ "x${newlib_io_c99_formats}" = "x" ]; then |
| if [ ${default_newlib_io_c99_formats} = "yes" ]; then |
| newlib_io_c99_formats="yes"; |
| fi |
| fi |
| |
| # Enable long long support in I/O routines if requested. |
| if [ "x${newlib_io_long_long}" = "x" ]; then |
| if [ ${default_newlib_io_long_long} = "yes" ]; then |
| newlib_io_long_long="yes"; |
| fi |
| fi |
| |
| # Enable long double support in I/O routines if requested. |
| if [ "x${newlib_io_long_double}" = "x" ]; then |
| if [ ${default_newlib_io_long_double} = "yes" ]; then |
| newlib_io_long_double="yes"; |
| fi |
| fi |
| |
| # Enable printf positional argument support if requested. |
| if [ "x${newlib_io_pos_args}" = "x" ]; then |
| if [ ${default_newlib_io_pos_args} = "yes" ]; then |
| newlib_io_pos_args="yes"; |
| fi |
| fi |
| |
| # Disable atexit dynamic allocation if requested. |
| if [ "x${newlib_atexit_dynamic_alloc}" = "x" ]; then |
| if [ ${default_newlib_atexit_dynamic_alloc} = "yes" ]; then |
| newlib_atexit_dynamic_alloc="yes"; |
| fi |
| fi |
| |
| # Remove rpc headers if xdr_dir not specified |
| if [ "x${xdr_dir}" = "x" ]; then |
| noinclude="${noinclude} rpc/types.h rpc/xdr.h" |
| fi |
| |
| if test -z "${have_crt0}" && test -n "${sys_dir}"; then |
| have_crt0="yes" |
| fi |