From 8a0efa53e44919bcf5ccb1d3353618a82afdf8bc Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 17 Feb 2000 19:39:52 +0000 Subject: import newlib-2000-02-17 snapshot --- newlib/configure.host | 457 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 457 insertions(+) create mode 100644 newlib/configure.host (limited to 'newlib/configure.host') diff --git a/newlib/configure.host b/newlib/configure.host new file mode 100644 index 000000000..fcfaa5c9a --- /dev/null +++ b/newlib/configure.host @@ -0,0 +1,457 @@ +# 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", "") + +# 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 +# posix_dir "posix" to build libc/posix, "" otherwise +# signal_dir "signal" to build libc/signal, "" otherwise +# syscall_dir "syscalls" to build libc/syscalls, "" otherwise +# unix_dir "unix" to build libc/unix, "" otherwise + +newlib_cflags= +machine_dir= +sys_dir= +posix_dir= +signal_dir=signal +syscall_dir= +unix_dir= +mach_add_setjmp= + +case "${target_optspace}:${host}" in + yes:*) + newlib_cflags="${newlib_cflags} -Os" + ;; + :m32r-* | :d10v-* | :d30v-*) + 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}" in + a29k) + machine_dir=a29k + ;; + arc) + machine_dir= + ;; + arm) + machine_dir=arm + ;; + d10v*) + machine_dir=d10v + ;; + d30v*) + machine_dir=d30v + ;; + fr30) + machine_dir=fr30 + ;; + h8300) + machine_dir=h8300 + ;; + h8500) + machine_dir=h8500 + ;; + hppa*) + machine_dir=hppa + ;; + i960) + machine_dir=i960 + ;; + i[3456]86) + # Don't use for these since they provide their own setjmp. + case ${host} in + *-*-go32 | *-*-sco* | *-*-cygwin*) + machine_dir=i386 + ;; + *) + machine_dir=i386 + mach_add_setjmp=true + ;; + esac + ;; + m32r*) + machine_dir=m32r + ;; + m68*) + machine_dir=m68k + ;; + m88k) + machine_dir=m88k + newlib_cflags="${newlib_cflags} -m88000" + ;; + m88110) + machine_dir=m88k + newlib_cflags="${newlib_cflags} -m88110" + ;; + mcore) + ;; + mips*) + machine_dir=mips + ;; + mn10200) + machine_dir=mn10200 + ;; + mn10300) + machine_dir=mn10300 + ;; + powerpc*) + machine_dir=powerpc + ;; + sh) + 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 + ;; + thumb) + machine_dir=arm + ;; + tic80*) + machine_dir=tic80 + ;; + v70) + ;; + v810) + ;; + v850) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + v850e) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + v850ea) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + w65*) + machine_dir=w65 + ;; + z8k) + machine_dir=z8k + ;; + *) + echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2 + exit 1 + ;; +esac + +# Enable multibyte support if requested. + +if [ "${newlib_mb}" = "yes" ] ; then + newlib_cflags="${newlib_cflags} -DMB_CAPABLE" +fi + +# 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*) + sys_dir=cygwin + posix_dir=posix + ;; + *-*-netware*) + signal_dir= + sys_dir=netware + ;; + *-*-rtems*) # generic RTEMS support + sys_dir=rtems + # RTEMS POSIX support is all inside RTEMS + ;; + a29k-*-*) + sys_dir=a29khif + signal_dir= + ;; + arc-*-*) + sys_dir=arc + ;; + arm-*-*) + sys_dir=arm + ;; + d10v*) + sys_dir=d10v + ;; + d30v*) + sys_dir= + ;; + h8300-*-hms*) + sys_dir=h8300hms + ;; + h8300-*-xray*) + sys_dir=h8300xray + ;; + h8500-*-hms*) + sys_dir=h8500hms + ;; + i[3456]86-*-go32) + sys_dir=go32 + ;; + i[3456]86-*-sco*) + sys_dir=sysvi386 + unix_dir=unix + ;; + m68k-sun-sunos*) + unix_dir=unix + ;; + m8*-bug-*) + sys_dir=m88kbug + ;; + mips*-dec-*) + sys_dir=decstation + ;; + powerpcle-*-pe) + sys_dir=cygwin + posix_dir=posix + ;; + sh*-*) + sys_dir=sh + ;; + sparc-sun-sunos*) + sys_dir=sun4 + unix_dir=unix + ;; + sparc64*) + sys_dir=sparc64 + unix_dir=unix + ;; + strongarm-*-*) + sys_dir=arm + ;; + thumb-*-*) + sys_dir=arm + ;; + 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 + ;; + 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*) + newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB" + 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*) + newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR" + ;; +# 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" + ;; +# UDI doesn't have exec, so system() should fail the right way + a29k-amd-udi) + newlib_cflags="${newlib_cflags} -DNO_EXEC" + syscall_dir=syscalls + ;; + arc-*-*) + syscall_dir=syscalls + ;; + arm-*-pe) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Don't use the debugging protocols just yet. + ;; + arm-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# 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. +# See also thumb below. +# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + d10v*) + newlib_cflags="${newlib_cflags} -DSMALL_MEMORY" + syscall_dir=syscalls + ;; + d30v*) + newlib_cflags="${newlib_cflags} -DABORT_MESSAGE -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" + syscall_dir= + ;; + fr30-*-*) + newlib_cflags="${newlib_cflags}" + syscall_dir=syscalls + ;; + h8300*-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + h8500-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + i[3456]86-*-sco*) + newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" + ;; + i[3456]86-*-netware*) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DABORT_PROVIDED -DCLOCK_PROVIDED -DMALLOC_PROVIDED" + ;; + i[3456]86-*-go32) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC" + ;; + 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 + ;; + mcore-*-*) + newlib_cflags="${newlib_cflags}" + syscall_dir=syscalls + ;; + mn10?00-*-*) + syscall_dir=syscalls + ;; + powerpc*-*-eabi* | \ + powerpc*-*-elf* | \ + powerpc*-*-linux* | \ + powerpc*-*-rtem* | \ + powerpc*-*-sysv* | \ + powerpc*-*-solaris*) + newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES" + ;; + powerpcle-*-pe) + newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME" + syscall_dir=syscalls + ;; + sh*-*-*) + syscall_dir=syscalls + ;; + sparc-sun-sunos*) + newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" + ;; + sparc64-*-*) + newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_BLKSIZE -DHAVE_GETTIMEOFDAY" + # 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 + ;; + strongarm-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + thumb-*-pe) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Don't use the debugging protocols just yet. + ;; + thumb-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# 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. +# See also arm and strongarm above. +# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + tic80*) + syscall_dir=syscalls + ;; + v850-*-*) + syscall_dir=syscalls + ;; + v850e-*-*) + syscall_dir=syscalls + ;; + v850ea-*-*) + syscall_dir=syscalls + ;; + w65-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + z8k-*-*) + syscall_dir=syscalls + ;; + *) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" + syscall_dir= + ;; +esac -- cgit v1.2.3