]> sourceware.org Git - newlib-cygwin.git/blobdiff - newlib/configure.host
2008-03-07 Jeff Johnston <jjohnstn@redhat.com>
[newlib-cygwin.git] / newlib / configure.host
index bfc64e9e622a76e017d8ab1f1a3ab4bdc9f5899c..bbdfff31fca7946b3524ea552d127271c13adbf6 100644 (file)
@@ -24,6 +24,9 @@
 #   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
 #   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
 
 newlib_cflags=
 libm_machine_dir=
@@ -47,22 +53,30 @@ machine_dir=
 sys_dir=
 posix_dir=
 signal_dir=signal
+stdio_dir=stdio
 stdio64_dir=
 syscall_dir=
 unix_dir=
 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-*)
+  :m32r-* | :d10v-* | :d30v-* | :avr-* | :m32c-* )
     newlib_cflags="${newlib_cflags} -Os"
     ;;
   no:* | :*)
@@ -88,6 +102,15 @@ case "${host_cpu}" in
   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
        ;;
@@ -97,6 +120,10 @@ case "${host_cpu}" in
   ep9312)
        machine_dir=arm
        ;;
+  fido)
+       machine_dir=m68k
+       newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE"
+       ;;
   fr30)
        machine_dir=fr30
        ;;
@@ -134,6 +161,11 @@ case "${host_cpu}" in
   iq2000)
        machine_dir=iq2000
        ;;
+  m32c)
+       machine_dir=m32c
+       newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -DABORT_PROVIDED -DSMALL_MEMORY"
+       ;;
+
   m32r*)
        machine_dir=m32r
        ;;
@@ -158,6 +190,9 @@ case "${host_cpu}" in
        ;;
   mcore)
        ;;
+  mep)
+       machine_dir=mep
+       ;;
   mips*)
        machine_dir=mips
        ;;
@@ -167,8 +202,12 @@ case "${host_cpu}" in
        machine_dir=mn10200
        ;;
   mn10300)
+       default_newlib_io_long_long="yes"
        machine_dir=mn10300
        ;;
+  mt*)
+       machine_dir=mt
+       ;;
   or16)
        ;;
   or32)
@@ -214,13 +253,23 @@ case "${host_cpu}" in
   w65*)
        machine_dir=w65
        ;;
+  x86_64)
+       machine_dir=x86_64
+       ;;
   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 -ffunction-sections -fdata-sections "
+       ;;
   *)
        echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2
        exit 1
@@ -256,12 +305,6 @@ if [ "${newlib_io_float}" = "no" ] ; then
        newlib_cflags="${newlib_cflags} -DNO_FLOATING_POINT"
 fi
 
-# Enable printf positional argument support if requested.
-
-if [ "${newlib_io_pos_args}" = "yes" ] ; then
-       newlib_cflags="${newlib_cflags} -DWANT_IO_POS_ARGS"
-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
@@ -272,6 +315,7 @@ case "${host}" in
     have_sys_mach_dir=yes
     stdio64_dir=stdio64
     oext=lo
+    lpfx=
     aext=la ;;
   *) ;; #shared library not supported for ${host}
 esac
@@ -303,7 +347,16 @@ case "${host}" in
        sys_dir=arc
        ;;
   arm-*-*)
-       sys_dir=arm 
+       sys_dir=arm
+       if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then
+         have_crt0="no"
+       fi
+       ;;
+  bfin-*-*)
+       sys_dir=
+       ;;
+  crx*)
+       sys_dir=
        ;;
   d10v*)
        sys_dir=d10v
@@ -313,7 +366,13 @@ case "${host}" in
        ;;
   ep9312-*-*)
        sys_dir=arm
+       if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then
+         have_crt0="no"
+       fi
        ;;
+  frv*)
+        sys_dir=
+        ;;
   h8300-*-hms*)
        sys_dir=h8300hms
        ;;
@@ -332,6 +391,10 @@ case "${host}" in
   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
@@ -343,11 +406,15 @@ case "${host}" in
        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} -DWANT_IO_POS_ARGS -DWANT_IO_LONG_DBL"
+       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 ------------------------------
@@ -365,6 +432,10 @@ case "${host}" in
   m8*-bug-*)
        sys_dir=m88kbug
        ;;
+  mep-*-*)
+       default_newlib_io_long_long="yes"
+       newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
+       ;;
   mips*-dec-*)
        sys_dir=decstation
        ;;
@@ -385,14 +456,21 @@ case "${host}" in
        sys_dir=sparc64
        unix_dir=unix
        ;;
-  strongarm-*-*)
-       sys_dir=arm 
+  spu-*-*)
+       default_newlib_io_long_long="yes"
+       default_newlib_atexit_dynamic_alloc="no"
        ;;
-  xscale-*-*)
-       sys_dir=arm 
+  strongarm-*-*)
+       sys_dir=arm
+       if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then
+         have_crt0="no"
+       fi
        ;;
   thumb-*-*)
-       sys_dir=arm 
+       sys_dir=arm
+       if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then
+         have_crt0="no"
+       fi
        ;;
   tic80*)
        sys_dir=tic80
@@ -412,12 +490,15 @@ case "${host}" in
   v850ea-*-*)
        sys_dir=sysnecv850
        ;;
-  frv*)
-        sys_dir=
-        ;;
   w65-*-*)
        sys_dir=w65
        ;;
+  xscale-*-*)
+       sys_dir=arm
+       if [ "x${newlib_may_supply_syscalls}" = "xno" ] ; then
+         have_crt0="no"
+       fi
+       ;;
   z8k-*-coff)
        sys_dir=z8ksim
        ;;
@@ -431,7 +512,12 @@ case "${host}" in
   *-*-cygwin*)
        test -z "$cygwin_srcdir" && cygwin_srcdir=`cd ${srcdir}/../winsup/cygwin; pwd`
        export cygwin_srcdir
-       newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_IO_POS_ARGS -DWANT_IO_LONG_DBL -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB -DHAVE_FCNTL -DMALLOC_PROVIDED -I${cygwin_srcdir}/include"
+       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:
@@ -442,7 +528,8 @@ case "${host}" in
 #
 #  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 -DNO_EXEC -DWANT_PRINTF_LONG_LONG -DHAVE_FCNTL"
+       default_newlib_io_long_long="yes"
+       newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR -DNO_EXEC -DHAVE_FCNTL"
        ;;
 # VxWorks supplies its own version of malloc, and the newlib one
 # doesn't work because VxWorks does not have sbrk.
@@ -459,24 +546,40 @@ case "${host}" in
        ;;
   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.
+# 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.
-#      newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR"
-       newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+       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
@@ -487,19 +590,24 @@ case "${host}" in
        ;;
   ep9312-*-*)
        syscall_dir=syscalls
-       newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"
-       newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+       if [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; then
+         newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+       fi
+       ;;
+  fido-*-elf)
+       newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES"
+       syscall_dir=
        ;;
   fr30-*-*)
-       newlib_cflags="${newlib_cflags}"
        syscall_dir=syscalls
        ;;
   frv-*-*)
         syscall_dir=syscalls
-       newlib_cflags="${newlib_cflags} -DWANT_PRINTF_LONG_LONG"
+       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.
@@ -517,7 +625,7 @@ case "${host}" in
        ;;
   iq2000*)
        syscall_dir=syscalls
-       newlib_cflags="${newlib_cflags} -DWANT_PRINTF_LONG_LONG"
+       default_newlib_io_long_long="yes"
        ;;
   m32r-*-*)
        # Pass -msdata=sdata so _impure_ptr goes in .sdata.
@@ -530,12 +638,20 @@ case "${host}" in
   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-*-*)
-       newlib_cflags="${newlib_cflags}"
        syscall_dir=syscalls
        ;;
   mips64vr*-*-*)
-       newlib_cflags="${newlib_cflags} -DWANT_PRINTF_LONG_LONG -DMISSING_SYSCALL_NAMES"
+       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
@@ -547,10 +663,12 @@ case "${host}" in
        syscall_dir=syscalls
        ;;
   powerpc*-*-eabialtivec*)
-       newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DWANT_PRINTF_LONG_LONG"
+       default_newlib_io_long_long="yes"
+       newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
        ;;
   powerpc*-*-eabispe*)
-       newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DWANT_PRINTF_LONG_LONG"
+       default_newlib_io_long_long="yes"
+       newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
        ;;
   powerpc*-*-eabi* | \
   powerpc*-*-elf* | \
@@ -558,21 +676,22 @@ case "${host}" in
   powerpc*-*-rtem* | \
   powerpc*-*-sysv* | \
   powerpc*-*-solaris*)
-       newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES -DWANT_PRINTF_LONG_LONG"
+       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*-*-*)
-       newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY -DWANT_PRINTF_LONG_LONG"
+       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_GETTIMEOFDAY -DHAVE_FCNTL"
+       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
@@ -584,31 +703,24 @@ case "${host}" in
        ;;
   strongarm-*-*)
        syscall_dir=syscalls
-       newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"
-       newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
-       ;;
-  xscale-*-*)
-       syscall_dir=syscalls
-       newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"
-       newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
-       newlib_cflags="${newlib_cflags} -DHAVE_SYSTEM -DHAVE_RENAME"
        ;;
   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.
+# 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.
-# See also arm and strongarm above.
-#      newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR"
-       newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+# 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
@@ -626,8 +738,14 @@ case "${host}" in
        syscall_dir=syscalls    
        newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY"
        ;;      
+  xscale-*-*)
+       syscall_dir=syscalls
+       newlib_cflags="${newlib_cflags} -DHAVE_SYSTEM -DHAVE_RENAME"
+       if [ "x${newlib_may_supply_syscalls}" = "xyes" ] ; then
+         newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+       fi
+       ;;
   xstormy16-*-*)
-       newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY"
        syscall_dir=syscalls
        ;;
   z8k-*-*)
@@ -638,3 +756,44 @@ case "${host}" in
        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
+
+if test -z "${have_crt0}" && test -n "${sys_dir}"; then
+  have_crt0="yes"
+fi
This page took 0.035332 seconds and 5 git commands to generate.