URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [newlib/] [configure.host] - Rev 816
Compare with Previous | Blame | View Log
# 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 setnewlib_cflags=libm_machine_dir=machine_dir=sys_dir=posix_dir=signal_dir=signalstdio_dir=stdiostdio64_dir=syscall_dir=unix_dir=mach_add_setjmp=crt1=crt1_dir=have_crt0=use_libtool=nohave_sys_mach_dir=nodefault_newlib_io_c99_formats=nodefault_newlib_io_long_long=nodefault_newlib_io_long_double=nodefault_newlib_io_pos_args=nodefault_newlib_atexit_dynamic_alloc=yesaext=aoext=olpfx="lib_a-"case "${target_optspace}:${host}" inyes:*)newlib_cflags="${newlib_cflags} -Os";;:m32r-* | :d10v-* | :d30v-* | :avr-* | :m32c-* )newlib_cflags="${newlib_cflags} -Os";;no:* | :*)newlib_cflags="${newlib_cflags} -O2";;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}" ina29k)machine_dir=a29k;;arc)machine_dir=;;arm)machine_dir=arm;;avr*)newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mcall-prologues";;bfin)machine_dir=bfin;;cris | crisv32)machine_dir=cris;;crx*)machine_dir=crx;;d10v*)machine_dir=d10v;;d30v*)machine_dir=d30v;;ep9312)machine_dir=arm;;fido)machine_dir=m68knewlib_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=i386machine_dir=i386;;*)libm_machine_dir=i386machine_dir=i386mach_add_setjmp=true;;esac;;ia64*);;iq2000)machine_dir=iq2000;;lm32)machine_dir=lm32;;m32c)machine_dir=m32cnewlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DABORT_PROVIDED -DSMALL_MEMORY";;m32r*)machine_dir=m32r;;m68hc11|m6811|m68hc12|m6812)machine_dir=m68hc11newlib_cflags="-DPREFER_SIZE_OVER_SPEED -Os -mrelax"CFLAGS="-g -Os";;m68*)machine_dir=m68knewlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE";;m88k)machine_dir=m88knewlib_cflags="${newlib_cflags} -m88000";;m88110)machine_dir=m88knewlib_cflags="${newlib_cflags} -m88110";;mcore);;mep)machine_dir=mep;;mips*)machine_dir=mips;;mmix);;mn10200)machine_dir=mn10200;;mn10300)default_newlib_io_long_long="yes"machine_dir=mn10300;;mt*)machine_dir=mt;;or16);;or32)machine_dir=or32;;powerpc*)machine_dir=powerpc;;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";;strongarm)machine_dir=arm;;xscale)machine_dir=xscale;;thumb)machine_dir=arm;;tic4x|c4x)machine_dir=tic4x;;tic80*)machine_dir=tic80;;v70);;v810);;v850)machine_dir=v850newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 ";;v850e)machine_dir=v850newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED ";;w65*)machine_dir=w65;;x86_64)machine_dir=x86_64;;xstormy16)machine_dir=xstormy16newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED"newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED";;z8k)machine_dir=z8k;;spu)stdio_dir=libm_machine_dir=spumachine_dir=spunewlib_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>&2exit 1;;esac# Disable thread support if requested.if [ "${newlib_multithread}" = "no" ] ; thennewlib_cflags="${newlib_cflags} -D__SINGLE_THREAD__"fi# Disable syscall support if requested.if [ "${newlib_may_supply_syscalls}" = "no" ] ; thennewlib_cflags="${newlib_cflags} -D__NO_SYSCALLS__"fi# Enable multibyte support if requested or it is defaulted# for target.if [ "x${newlib_mb}" = "x" ]; thencase "${host}" ini[34567]86-pc-linux-*|*-*-cygwin*)newlib_mb=yes;;esacfi# Disable printf/scanf floating-point support if requested.if [ "${newlib_io_float}" = "no" ] ; thennewlib_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}" ini[34567]86-pc-linux-*)use_libtool=yeshave_sys_mach_dir=yesstdio64_dir=stdio64oext=lolpfx=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=posixstdio64_dir=stdio64;;*-*-netware*)signal_dir=sys_dir=netware;;*-*-rtems*) # generic RTEMS supportsys_dir=rtemsposix_dir=posixunix_dir=unix;;a29k-*-*)sys_dir=a29khifsignal_dir=;;arc-*-*)sys_dir=arc;;arm-*-*)sys_dir=armif [ "x${newlib_may_supply_syscalls}" = "xno" ] ; thenhave_crt0="no"fi;;bfin-*-*)sys_dir=;;crx*)sys_dir=;;d10v*)sys_dir=d10v;;d30v*)sys_dir=;;ep9312-*-*)sys_dir=armif [ "x${newlib_may_supply_syscalls}" = "xno" ] ; thenhave_crt0="no"fi;;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=rdosnewlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES";;i[34567]86-*-sco*)sys_dir=sysvi386unix_dir=unix;;i[34567]86-pc-linux-*)sys_dir=linuxunix_dir=unixposix_dir=posixcrt1=crt1.ocrt1_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 BUILDnewlib_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"# --- 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";;mips*-dec-*)sys_dir=decstation;;mmix-knuth-mmixware)sys_dir=mmixware;;powerpcle-*-pe)posix_dir=posix;;sh*-*)sys_dir=sh;;sparc-sun-sunos*)sys_dir=sun4unix_dir=unix;;sparc64*)sys_dir=sparc64unix_dir=unix;;spu-*-*)default_newlib_io_long_long="yes"default_newlib_atexit_dynamic_alloc="no";;strongarm-*-*)sys_dir=armif [ "x${newlib_may_supply_syscalls}" = "xno" ] ; thenhave_crt0="no"fi;;thumb-*-*)sys_dir=armif [ "x${newlib_may_supply_syscalls}" = "xno" ] ; thenhave_crt0="no"fi;;tic80*)sys_dir=tic80;;v70-nec-*)sys_dir=sysvnecv70;;v810-*-*)sys_dir=sysnec810;;v850-*-*)sys_dir=sysnecv850;;v850e-*-*)sys_dir=sysnecv850;;v850ea-*-*)sys_dir=sysnecv850;;w65-*-*)sys_dir=w65;;xscale-*-*)sys_dir=armif [ "x${newlib_may_supply_syscalls}" = "xno" ] ; thenhave_crt0="no"fi;;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_srcdirdefault_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} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_FCNTL"# turn off unsupported items in posix directorynewlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET";;# 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";;# UDI doesn't have exec, so system() should fail the right waya29k-amd-udi)newlib_cflags="${newlib_cflags} -DNO_EXEC"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.# See also thumb below.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;;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=;;ep9312-*-*)syscall_dir=syscallsif [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; thennewlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"fi;;fido-*-elf)newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES"syscall_dir=;;fr30-*-*)syscall_dir=syscalls;;frv-*-*)syscall_dir=syscallsdefault_newlib_io_long_long="yes";;h8300*-*-*)syscall_dir=syscallsdefault_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=syscallsnewlib_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=syscallsdefault_newlib_io_long_long="yes";;lm32-*-*)syscall_dir=syscalls;;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;;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;;or32-*-*)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"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}" inaoutv8 | *32p)newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=32" ;;*)newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=64" ;;esac;;strongarm-*-*)syscall_dir=syscalls;;thumb-*-pe)syscall_dir=syscalls# Don't use the debugging protocols just yet.;;thumb-*-*)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;;tic80*)syscall_dir=syscalls;;v850-*-*)syscall_dir=syscalls;;v850e-*-*)syscall_dir=syscalls;;v850ea-*-*)syscall_dir=syscalls;;w65-*-*)syscall_dir=syscallsnewlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY";;xscale-*-*)syscall_dir=syscallsnewlib_cflags="${newlib_cflags} -DHAVE_SYSTEM -DHAVE_RENAME"if [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; thennewlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"fi;;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" ]; thenif [ ${default_newlib_io_c99_formats} = "yes" ]; thennewlib_io_c99_formats="yes";fifi# Enable long long support in I/O routines if requested.if [ "x${newlib_io_long_long}" = "x" ]; thenif [ ${default_newlib_io_long_long} = "yes" ]; thennewlib_io_long_long="yes";fifi# Enable long double support in I/O routines if requested.if [ "x${newlib_io_long_double}" = "x" ]; thenif [ ${default_newlib_io_long_double} = "yes" ]; thennewlib_io_long_double="yes";fifi# Enable printf positional argument support if requested.if [ "x${newlib_io_pos_args}" = "x" ]; thenif [ ${default_newlib_io_pos_args} = "yes" ]; thennewlib_io_pos_args="yes";fifi# Disable atexit dynamic allocation if requested.if [ "x${newlib_atexit_dynamic_alloc}" = "x" ]; thenif [ ${default_newlib_atexit_dynamic_alloc} = "yes" ]; thennewlib_atexit_dynamic_alloc="yes";fifiif test -z "${have_crt0}" && test -n "${sys_dir}"; thenhave_crt0="yes"fi
