X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=ac379cfb3fe68bdc7931c0e5d2fba98731c257ef;hb=f2591d19fd7d762c3738fc949cd8d38c31a0b3be;hp=844624c0a1e266058a1ded0685a5dfa96905eee6;hpb=1cfd705ec9ac186caf8d8a8bc2489ab20f7b3c69;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/config.gcc b/gcc/config.gcc index 844624c0a1e..ac379cfb3fe 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1,5 +1,5 @@ # GCC target-specific configuration file. -# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. #This file is part of GCC. @@ -98,6 +98,8 @@ # # extra_programs Like extra_passes, but these are used when linking. # +# extra_options List of target-dependent .opt files. +# # c_target_objs List of extra target-dependent objects that be # linked into the C compiler only. # @@ -151,6 +153,7 @@ extra_parts= extra_programs= extra_objs= extra_gcc_objs= +extra_options= c_target_objs= cxx_target_objs= tm_defines= @@ -181,7 +184,14 @@ md_file= # Obsolete configurations. case ${target} in - dummy*) + sparc-*-openbsd* \ + | i860-*-sysv4* \ + | ip2k-*-elf \ + | ns32k-*-netbsdelf* \ + | ns32k-*-netbsd* \ + | c4x-* \ + | tic4x-* \ + ) if test "x$enable_obsolete" != xyes; then echo "*** Configuration ${target} is obsolete." >&2 echo "*** Specify --enable-obsolete to build it anyway." >&2 @@ -224,6 +234,7 @@ esac # machines. tm_p_file= cpu_type=`echo ${target} | sed 's/-.*$//'` +cpu_is_64bit= case ${target} in alpha*-*-*) cpu_type=alpha @@ -239,6 +250,9 @@ arm*-*-*) cpu_type=arm extra_headers="mmintrin.h" ;; +bfin*-*) + cpu_type=bfin + ;; ep9312*-*-*) cpu_type=arm ;; @@ -248,11 +262,11 @@ xscale-*-*) ;; i[34567]86-*-*) cpu_type=i386 - extra_headers="mmintrin.h xmmintrin.h emmintrin.h pmmintrin.h" + extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h pmmintrin.h" ;; x86_64-*-*) cpu_type=i386 - extra_headers="mmintrin.h xmmintrin.h emmintrin.h pmmintrin.h" + extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h pmmintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -280,6 +294,11 @@ powerpc*-*-*) cpu_type=rs6000 extra_headers="ppc-asm.h altivec.h spe.h" need_64bit_hwint=yes + case x$with_cpu in + xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a) + cpu_is_64bit=yes + ;; + esac ;; rs6000*-*-*) need_64bit_hwint=yes @@ -292,10 +311,11 @@ sparc*-*-*) cpu_type=sparc ;; s390*-*-*) + cpu_type=s390 need_64bit_hwint=yes ;; # Note the 'l'; we need to be able to match e.g. "shle" or "shl". -sh[123456789l]*-*-*) +sh[123456789lbe]*-*-*) cpu_type=sh need_64bit_hwint=yes ;; @@ -314,6 +334,10 @@ if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def then extra_modes=${cpu_type}/${cpu_type}-modes.def fi +if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt +then + extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt" +fi case ${target} in x86_64-*-*) @@ -332,13 +356,16 @@ esac case ${target} in *-*-darwin*) case ${target} in + *-darwin1[0-9]*) tm_file="${tm_file} darwin8.h" ;; *-darwin[0-6]*) ;; - *) tm_file="${tm_file} darwin7.h" ;; + *-darwin7*) tm_file="${tm_file} darwin7.h" ;; + *) tm_file="${tm_file} darwin8.h" ;; esac tm_file="${tm_file} darwin.h" tm_p_file="${tm_p_file} darwin-protos.h" tmake_file="t-darwin t-slibgcc-darwin" target_gtfiles="\$(srcdir)/config/darwin.c" + extra_options="${extra_options} darwin.opt" c_target_objs="darwin-c.o" cxx_target_objs="darwin-c.o" extra_parts="crt2.o" @@ -412,21 +439,10 @@ case ${target} in esac fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h" ;; -*-*-kfreebsd*-gnu) - # Must come before *-*-gnu* - xm_defines=POSIX # needed for cross-compiling from FreeBSD? - extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" - # GNU tools are the only tools. - gas=yes - gnu_ld=yes - case ${enable_threads} in - "" | yes | posix) thread_file='posix' ;; - esac - ;; *-*-linux*libc1* | *-*-linux*aout*) # Avoid the generic linux case. ;; -*-*-linux* | frv-*-*linux*) +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) # Must come before *-*-gnu* (because of *-*-linux-gnu* systems). extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" gas=yes @@ -504,6 +520,10 @@ case ${target} in tmake_file="${tmake_file} t-openbsd-thread" ;; esac + case ${target} in + *-*-openbsd2.*|*-*-openbsd3.[012]) + tm_defines="${tm_defines} HAS_LIBC_R=1" ;; + esac ;; *-*-rtems*) case ${enable_threads} in @@ -586,15 +606,15 @@ alpha*-dec-osf[45]*) extra_headers=va_list.h case ${target} in *-*-osf4*) - # Set target_cpu_default except on 4.0a. + # Define TARGET_SUPPORT_ARCH except on 4.0a. case ${target} in *-*-osf4.0a) ;; - *) target_cpu_default=MASK_SUPPORT_ARCH + *) tm_defines="TARGET_SUPPORT_ARCH=1" esac ;; *-*-osf5*) tm_file="${tm_file} alpha/osf5.h" - target_cpu_default=MASK_SUPPORT_ARCH + tm_defines="TARGET_SUPPORT_ARCH=1" ;; esac case ${enable_threads} in @@ -625,72 +645,107 @@ arc-*-elf*) ;; arm-*-coff* | armel-*-coff*) tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h" - tmake_file=arm/t-arm-coff + tmake_file="arm/t-arm arm/t-arm-coff" ;; arm-semi-aof | armel-semi-aof) tm_file="arm/semiaof.h arm/aof.h arm/arm.h" - tmake_file=arm/t-semi + tmake_file="arm/t-arm arm/t-semi" ;; arm-wrs-vxworks) tm_file="dbxelf.h elfos.h svr4.h vxworks.h arm/elf.h arm/aout.h arm/arm.h arm/vxworks.h" - tmake_file="${tmake_file} arm/t-vxworks" + tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" ;; arm*-*-freebsd*|strongarm*-*-freebsd*) tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h" - tmake_file="${tmake_file} arm/t-strongarm-elf" + tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf" ;; arm*-*-netbsdelf*) tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h" - tmake_file="${tmake_file} arm/t-netbsd" + tmake_file="${tmake_file} arm/t-arm arm/t-netbsd" ;; arm*-*-netbsd*) tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h" - tmake_file="t-netbsd arm/t-netbsd" + tmake_file="t-netbsd arm/t-arm arm/t-netbsd" extra_parts="" use_collect2=yes ;; arm*-*-linux*) # ARM GNU/Linux with ELF tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" - tmake_file="${tmake_file} arm/t-linux" + tmake_file="${tmake_file} arm/t-arm arm/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" gnu_ld=yes ;; arm*-*-uclinux*) # ARM ucLinux tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h arm/uclinux-elf.h" - tmake_file=arm/t-arm-elf + tmake_file="arm/t-arm arm/t-arm-elf" ;; arm*-*-ecos-elf) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" - tmake_file=arm/t-arm-elf + tmake_file="arm/t-arm arm/t-arm-elf" + ;; +arm*-*-eabi* | arm*-*-symbianelf* ) + # The BPABI long long divmod functions return a 128-bit value in + # registers r0-r3. Correctly modeling that requires the use of + # TImode. + need_64bit_hwint=yes + default_use_cxa_atexit=yes + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" + tmake_file="arm/t-arm arm/t-arm-elf" + case ${target} in + arm*-*-eabi*) + tmake_file="${tmake_file} arm/t-bpabi" + ;; + arm*-*-symbianelf*) + tm_file="${tm_file} arm/symbian.h" + # We do not include t-bpabi for Symbian OS because the system + # provides its own implementation of the BPABI functions. + tmake_file="${tmake_file} t-slibgcc-elf-ver arm/t-symbian" + ;; + esac + tm_file="${tm_file} arm/aout.h arm/arm.h" ;; arm*-*-rtems*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h" - tmake_file="arm/t-arm-elf t-rtems" + tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" ;; arm*-*-elf | ep9312-*-elf) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" - tmake_file=arm/t-arm-elf + tmake_file="arm/t-arm arm/t-arm-elf" ;; arm*-wince-pe*) tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h" - tmake_file=arm/t-wince-pe + tmake_file="arm/t-arm arm/t-wince-pe" extra_objs="pe.o" ;; arm-*-pe*) tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h" - tmake_file=arm/t-pe + tmake_file="arm/t-arm arm/t-pe" extra_objs="pe.o" ;; arm*-*-kaos*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h" - tmake_file=arm/t-arm-elf + tmake_file="arm/t-arm arm/t-arm-elf" + ;; +avr-*-rtems*) + tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h" + tmake_file="avr/t-avr t-rtems avr/t-rtems" ;; avr-*-*) tm_file="avr/avr.h dbxelf.h" use_fixproto=yes ;; +bfin*-elf*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" + tmake_file=bfin/t-bfin-elf + use_collect2=no + ;; +bfin*-*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" + tmake_file=bfin/t-bfin + use_collect2=no + ;; c4x-*-rtems* | tic4x-*-rtems*) - tmake_file="c4x/t-c4x t-rtems" + tmake_file="c4x/t-c4x t-rtems c4x/t-rtems" tm_file="c4x/c4x.h c4x/rtems.h rtems.h" c_target_objs="c4x-c.o" cxx_target_objs="c4x-c.o" @@ -704,16 +759,19 @@ cris-*-aout) tm_file="dbxelf.h ${tm_file} cris/aout.h" gas=yes tmake_file="cris/t-cris cris/t-aout" + extra_options="${extra_options} cris/aout.opt" ;; cris-*-elf | cris-*-none) tm_file="dbxelf.h elfos.h ${tm_file}" tmake_file="cris/t-cris cris/t-elfmulti" gas=yes + extra_options="${extra_options} cris/elf.opt" ;; cris-*-linux*) tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" # We need to avoid using t-linux, so override default tmake_file tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" + extra_options="${extra_options} cris/linux.opt" ;; fr30-*-elf) tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" @@ -731,10 +789,14 @@ frv-*-*linux*) linux.h frv/linux.h frv/frv-abi.h" tmake_file="${tmake_file} frv/t-frv frv/t-linux" ;; -h8300-*-rtems*) - tmake_file="h8300/t-h8300 t-rtems" +h8300-*-rtemscoff*) + tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems" tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h h8300/rtems.h rtems.h" ;; +h8300-*-rtems*) + tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems" + tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h" + ;; h8300-*-elf*) tmake_file="h8300/t-h8300 h8300/t-elf" tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h" @@ -745,7 +807,7 @@ h8300-*-*) use_fixproto=yes ;; hppa*64*-*-linux* | parisc*64*-*-linux*) - target_cpu_default="(MASK_PA_11 | MASK_PA_20 | MASK_BIG_SWITCH)" + target_cpu_default="MASK_PA_11|MASK_PA_20" tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \ pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h pa/pa64-linux.h" tmake_file="${tmake_file} pa/t-linux64" @@ -753,7 +815,7 @@ hppa*64*-*-linux* | parisc*64*-*-linux*) need_64bit_hwint=yes ;; hppa*-*-linux* | parisc*-*-linux*) - target_cpu_default="(MASK_PA_11 | MASK_NO_SPACE_REGS | MASK_BIG_SWITCH)" + target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS" tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \ pa/pa32-regs.h pa/pa32-linux.h" tmake_file="${tmake_file} pa/t-linux" @@ -765,49 +827,47 @@ hppa*-*-linux* | parisc*-*-linux*) ;; # port not yet contributed. #hppa*-*-openbsd*) -# target_cpu_default="(MASK_PA_11 | MASK_BIG_SWITCH)" +# target_cpu_default="MASK_PA_11" # ;; hppa1.1-*-pro*) - target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT | MASK_BIG_SWITCH)" - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h" + target_cpu_default="MASK_PORTABLE_RUNTIME|MASK_NO_SPACE_REGS|MASK_SOFT_FLOAT" + tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h \ + pa/pa-pro-end.h libgloss.h" tmake_file="pa/t-pro" ;; hppa1.1-*-osf*) - target_cpu_default="(MASK_PA_11 | MASK_BIG_SWITCH)" + target_cpu_default="MASK_PA_11" tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-osf.h" tmake_file="pa/t-pa" use_collect2=yes ;; hppa1.1-*-rtems*) - target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT | MASK_BIG_SWITCH)" - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h pa/rtems.h rtems.h" + target_cpu_default="MASK_PORTABLE_RUNTIME|MASK_NO_SPACE_REGS|MASK_SOFT_FLOAT" + tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h \ + pa/pa-pro-end.h libgloss.h pa/rtems.h rtems.h" tmake_file="pa/t-pro t-rtems" ;; hppa1.1-*-bsd*) - target_cpu_default="(MASK_PA_11 | MASK_BIG_SWITCH)" + target_cpu_default="MASK_PA_11" tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h" tmake_file="pa/t-pa" use_collect2=yes ;; -hppa1.1-*-hpux10* | hppa2*-*-hpux10*) - target_cpu_default="(MASK_PA_11 | MASK_BIG_SWITCH)" - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h" - tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" - case ${enable_threads} in - "") - if test x$have_pthread_h = xyes ; then - tmake_file="${tmake_file} pa/t-dce-thr" - fi - ;; - yes | dce) - tmake_file="${tmake_file} pa/t-dce-thr" - ;; +hppa[12]*-*-hpux10*) + case ${target} in + hppa1.1-*-* | hppa2*-*-*) + target_cpu_default="MASK_PA_11" + ;; + esac + tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ + pa/pa-hpux.h pa/pa-hpux10.h" + extra_options="${extra_options} pa/pa-hpux.opt" + case ${target} in + *-*-hpux10.[1-9]*) + tm_file="${tm_file} pa/pa-hpux1010.h" + extra_options="${extra_options} pa/pa-hpux1010.opt" + ;; esac - use_collect2=yes - use_fixproto=yes - ;; -hppa1.0-*-hpux10*) - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h" tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" case ${enable_threads} in "") @@ -823,24 +883,34 @@ hppa1.0-*-hpux10*) use_fixproto=yes ;; hppa*64*-*-hpux11*) + target_cpu_default="MASK_PA_11|MASK_PA_20" if test x$gnu_ld = xyes then - target_cpu_default="(MASK_PA_11 | MASK_PA_20 | MASK_GAS | MASK_GNU_LD | MASK_BIG_SWITCH)" - else - target_cpu_default="(MASK_PA_11 | MASK_PA_20 | MASK_GAS | MASK_BIG_SWITCH)" + target_cpu_default="${target_cpu_default}|MASK_GNU_LD" fi if test x$gas = xyes then - tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ - pa/pa64-regs.h pa/pa-hpux.h \ - pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h" + tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ + pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ + pa/pa-hpux11.h" else tm_file="pa/pa64-start.h ${tm_file} dbxelf.h pa/elf.h \ - pa/pa64-regs.h pa/pa-hpux.h \ - pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h" + pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ + pa/pa-hpux11.h" fi + case ${target} in + *-*-hpux11.[1-9]*) + tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h" + extra_options="${extra_options} pa/pa-hpux1111.opt" + ;; + *) + tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h" + ;; + esac + extra_options="${extra_options} pa/pa-hpux.opt \ + pa/pa-hpux1010.opt pa/pa64-hpux.opt" need_64bit_hwint=yes - tmake_file="pa/t-pa64 pa/t-pa-hpux" + tmake_file="pa/t-pa64 pa/t-pa-hpux pa/t-hpux-shlib" extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" case x${enable_threads} in xyes | xposix ) @@ -848,19 +918,21 @@ hppa*64*-*-hpux11*) ;; esac ;; -hppa1.1-*-hpux11* | hppa2*-*-hpux11*) - target_cpu_default="(MASK_PA_11 | MASK_BIG_SWITCH)" - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h" - tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" - case x${enable_threads} in - xyes | xposix ) - thread_file=posix +hppa[12]*-*-hpux11*) + case ${target} in + hppa1.1-*-* | hppa2*-*-*) + target_cpu_default="MASK_PA_11" + ;; + esac + tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ + pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h" + extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt" + case ${target} in + *-*-hpux11.[1-9]*) + tm_file="${tm_file} pa/pa-hpux1111.h" + extra_options="${extra_options} pa/pa-hpux1111.opt" ;; esac - use_collect2=yes - ;; -hppa1.0-*-hpux11*) - tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h" tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" case x${enable_threads} in xyes | xposix ) @@ -915,51 +987,80 @@ i[34567]86-*-netbsd*) x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" ;; -i[34567]86-*-openbsd*) +i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h" # needed to unconfuse gdb tmake_file="t-libc-ok t-openbsd i386/t-openbsd" # we need collect2 until our bug is fixed... use_collect2=yes ;; +i[34567]86-*-openbsd*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" + tm_file="${tm_file} openbsd.h i386/openbsdelf.h" + gas=yes + gnu_ld=yes + ;; i[34567]86-*-coff*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h" use_fixproto=yes ;; -i[34567]86-*-linux*) # Intel 80386's running GNU/Linux +i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu) + # Intel 80386's running GNU/* # with ELF format using glibc 2 - # aka GNU/Linux C library 6 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" + case ${target} in + i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;; + i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; + esac tmake_file="${tmake_file} i386/t-crtstuff" ;; -x86_64-*-linux*) +x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ i386/x86-64.h i386/linux64.h" + case ${target} in + x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;; + x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;; + esac tmake_file="${tmake_file} i386/t-linux64" ;; -i[34567]86-*-kfreebsd*-gnu) # must be before i[34567]86-*-gnu* - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h kfreebsdgnu.h i386/kfreebsdgnu.h" - tmake_file="t-slibgcc-elf-ver t-kfreebsd-gnu i386/t-crtstuff" - float_format=i386 - use_fixproto=no - ;; i[34567]86-*-gnu*) ;; i[34567]86-pc-msdosdjgpp*) xm_file=i386/xm-djgpp.h tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h" tmake_file=i386/t-djgpp + extra_options="${extra_options} i386/djgpp.opt" gnu_ld=yes gas=yes ;; i[34567]86-*-lynxos*) - if test x$gas = xyes - then - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h svr3.h lynx.h i386/lynx.h" - else - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h lynx-ng.h i386/lynx-ng.h" - fi - use_fixproto=yes + xm_defines=POSIX + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h" + tmake_file="i386/t-crtstuff t-lynx" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_options="${extra_options} lynx.opt" + thread_file=lynx + gnu_ld=yes + gas=yes + ;; +i[3456x]86-*-netware*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h" + tmake_file=i386/t-netware + extra_objs=netware.o + case /${with_ld} in + */nwld) + extra_objs="$extra_objs nwld.o" + tm_file="${tm_file} i386/nwld.h" + tmake_file="${tmake_file} i386/t-nwld" + extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def" + ;; + esac + case x${enable_threads} in + x | xyes | xposix) thread_file='posix';; + xnks) thread_file='nks';; + xno) ;; + *) echo 'Unknown thread configuration for NetWare' >&2; exit 1;; + esac ;; i[34567]86-*-nto-qnx*) tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h" @@ -980,27 +1081,61 @@ i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 fi tmake_file=i386/t-sco5 extra_parts="crtbegin.o crtend.o" + extra_options="${extra_options} i386/sco5.opt" use_fixproto=yes ;; i[34567]86-*-solaris2*) xm_defines="SMALL_ARG_MAX" - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h i386/sol2.h" - tmake_file="i386/t-sol2 t-svr4" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h" + case ${target} in + *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) + tm_file="${tm_file} sol26.h" + esac + tm_file="${tm_file} i386/sol2.h" + tmake_file="t-sol2 i386/t-sol2 t-svr4" + c_target_objs="sol2-c.o" + cxx_target_objs="sol2-c.o" + extra_objs="sol2.o" + tm_p_file="${tm_p_file} sol2-protos.h" if test x$gnu_ld = xyes; then tmake_file="$tmake_file t-slibgcc-elf-ver" + tm_defines="${tm_defines} TARGET_GNU_LD=1" else tmake_file="$tmake_file t-slibgcc-sld" fi case ${target} in - *-*-solaris2.[789] | *-*-solaris2.1[0-9]) + *-*-solaris2.[789] | *-*-solaris2.1[0-9]*) tm_file="$tm_file tm-dwarf2.h" ;; esac - extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" + case ${target} in + *-*-solaris2.1[0-9]*) + tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h" + tm_defines="${tm_defines} TARGET_BI_ARCH=1" + tmake_file="$tmake_file i386/t-sol2-10" + need_64bit_hwint=yes + # Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as + # part of the base system. + extra_parts="gmon.o crtbegin.o crtend.o" + ;; + *) + extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" + ;; + esac case ${enable_threads}:${have_pthread_h}:${have_thread_h} in - no:*:*) ;; - *:yes:* ) thread_file=posix ;; - yes:*:* | *:*:yes ) thread_file=solaris ;; + "":yes:* | yes:yes:* ) + case ${target} in + *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) + thread_file=posix95 + ;; + *) + thread_file=posix + ;; + esac + ;; + "":*:yes | yes:*:yes ) + thread_file=solaris + ;; esac ;; i[34567]86-*-sysv5*) # Intel x86 on System V Release 5 @@ -1035,6 +1170,8 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h" xm_file=i386/xm-cygwin.h tmake_file="i386/t-cygwin i386/t-cygming" + target_gtfiles="\$(srcdir)/config/i386/winnt.c" + extra_options="${extra_options} i386/cygming.opt" extra_objs=winnt.o c_target_objs=cygwin2.o cxx_target_objs=cygwin2.o @@ -1047,10 +1184,12 @@ i[34567]86-*-mingw32*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h" xm_file=i386/xm-mingw32.h tmake_file="i386/t-cygming i386/t-mingw32" + target_gtfiles="\$(srcdir)/config/i386/winnt.c" + extra_options="${extra_options} i386/cygming.opt" extra_objs=winnt.o - if test x$enable_threads = xyes; then - thread_file='win32' - fi + case ${enable_threads} in + "" | yes | win32) thread_file='win32' ;; + esac case ${target} in *mingw32crt*) tm_file="${tm_file} i386/crtdll.h" @@ -1063,6 +1202,8 @@ i[34567]86-*-uwin*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygwin.h i386/uwin.h" tmake_file="i386/t-cygwin i386/t-uwin" extra_objs=winnt.o + extra_options="${extra_options} i386/cygming.opt" + target_gtfiles="\$(srcdir)/config/i386/winnt.c" if test x$enable_threads = xyes; then thread_file='win32' fi @@ -1072,6 +1213,7 @@ i[34567]86-*-interix3*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h" tmake_file="i386/t-interix" extra_objs=winnt.o + target_gtfiles="\$(srcdir)/config/i386/winnt.c" if test x$enable_threads = xyes ; then thread_file='posix' fi @@ -1112,12 +1254,12 @@ ia64*-*-freebsd*) ;; ia64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h" - tmake_file="${tmake_file} ia64/t-ia64 ia64/t-glibc" + tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc" + if test x$with_system_libunwind != xyes ; then + tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" + fi target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - if test x"$use_libunwind_exceptions" = xyes; then - tmake_file="$tmake_file t-libunwind" - fi ;; ia64*-*-hpux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h" @@ -1131,6 +1273,7 @@ ia64*-*-hpux*) use_collect2=no c_target_objs="ia64-c.o" cxx_target_objs="ia64-c.o" + extra_options="${extra_options} ia64/ilp32.opt" # If we decide to run fixproto we should define FIXPROTO_DEFINES # in ia64/t-hpux, and also fix the definition of putenv in # sys-protos.h (const char not char). @@ -1160,7 +1303,7 @@ m32r-*-linux*) tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" # We override the tmake_file for linux -- why? - tmake_file="m32r/t-linux" + tmake_file="t-slibgcc-elf-ver m32r/t-linux" gnu_ld=yes use_fixproto=yes if test x$enable_threads = xyes; then @@ -1171,7 +1314,7 @@ m32rle-*-linux*) tm_file="dbxelf.h elfos.h svr4.h linux.h m32r/little.h ${tm_file} m32r/linux.h" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" # We override the tmake_file for linux -- why? - tmake_file="m32r/t-linux" + tmake_file="t-slibgcc-elf-ver m32r/t-linux" gnu_ld=yes use_fixproto=yes if test x$enable_threads = xyes; then @@ -1193,6 +1336,7 @@ m68hc12-*-*|m6812-*-*) md_file="m68hc11/m68hc11.md" out_file="m68hc11/m68hc11.c" tmake_file="m68hc11/t-m68hc11-gas" + extra_options="${extra_options} m68hc11/m68hc11.opt" use_fixproto=yes ;; m68k-*-aout*) @@ -1242,6 +1386,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" + extra_options="${extra_options} m68k/ieee.opt" tm_defines="MOTOROLA USE_GAS" # if not configured with --enable-sjlj-exceptions, bump the # libgcc version number @@ -1265,68 +1410,28 @@ mcore-*-pe*) tmake_file=mcore/t-mcore-pe use_fixproto=yes ;; -mips-sgi-irix6*) # SGI System V.4., IRIX 6 - tm_file="${tm_file} mips/iris5.h mips/iris6.h" - tmake_file="mips/t-iris mips/t-iris5-6 mips/t-iris6" - if test x$gas = xyes - then - tm_file="${tm_file} mips/iris6gas.h" - fi - if test "x$gnu_ld" = xyes - then - tm_file="${tm_file} mips/iris6gld.h" - tmake_file="$tmake_file mips/t-irix-gld" - fi - target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_64BIT" - tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" - # See comment in mips/iris5.h file. Only enabled for O32 ABI - # without GNU as. - if test x$gas = xno - then - use_collect2=yes - fi -# if test x$enable_threads = xyes; then -# thread_file='irix' -# fi - use_fixproto=yes - ;; -mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64 - tm_file="${tm_file} mips/iris5.h mips/iris6.h mips/cross64.h" - tmake_file="mips/t-iris mips/t-cross64" - target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_64BIT" - tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" - # See comment in mips/iris[56].h files. - use_collect2=yes -# if test x$enable_threads = xyes; then -# thread_file='irix' -# fi - use_fixproto=yes - ;; -mips-sgi-irix5*) # SGI System V.4., IRIX 5 - tm_file="${tm_file} mips/iris5.h" - if test x$gas = xyes +mips-sgi-irix[56]*) + tm_file="elfos.h ${tm_file} mips/iris.h" + tmake_file="mips/t-iris mips/t-slibgcc-irix" + target_cpu_default="MASK_ABICALLS" + case ${target} in + *-*-irix5*) + tm_file="${tm_file} mips/iris5.h" + ;; + + *-*-irix6*) + tm_file="${tm_file} mips/iris6.h" + tmake_file="${tmake_file} mips/t-iris6" + tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" + ;; + esac + if test "x$stabs" = xyes then - tm_file="${tm_file} mips/sdb.h mips/iris5gas.h" - if test x$stabs = xyes - then - tm_file="${tm_file} dbx.h mips/dbxmdebug.h" - fi - tmake_file=mips/t-iris5-gas - else - tmake_file=mips/t-iris5-as + tm_file="${tm_file} dbx.h mips/dbxmdebug.h" fi if test "x$gnu_ld" = xyes then - tm_file="${tm_file} mips/iris5gld.h" - tmake_file="$tmake_file mips/t-irix-gld" - fi - tmake_file="${tmake_file} mips/t-iris mips/t-iris5-6" - target_cpu_default="MASK_ABICALLS" - # mips-tfile doesn't work yet - # See comment in mips/iris5.h file. - if test x$gas = xno - then - use_collect2=yes + tm_defines="${tm_defines} IRIX_USING_GNU_LD" fi # if test x$enable_threads = xyes; then # thread_file='irix' @@ -1334,21 +1439,13 @@ mips-sgi-irix5*) # SGI System V.4., IRIX 5 use_fixproto=yes ;; mips*-*-netbsd*) # NetBSD/mips, either endian. - target_cpu_default="MASK_GAS|MASK_ABICALLS" + target_cpu_default="MASK_ABICALLS" tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h" ;; mips64*-*-linux*) tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h mips/linux64.h" tmake_file="${tmake_file} mips/t-linux64" - - # This default ABI is a partial lie: t-linux64 overrides the - # DRIVER_SELF_SPEC that sets the default abi, in the spec file - # that is installed. What GCC thinks of as the default must - # remain as ABI_32 such that the SONAMEs of the libgcc shared - # libraries remain compatible with those of mips-linux-gnu. - tm_defines="MIPS_ISA_DEFAULT=1 MIPS_ABI_DEFAULT=ABI_32" - target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_64BIT" - extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" + tm_defines="MIPS_ABI_DEFAULT=ABI_N32" gnu_ld=yes gas=yes ;; @@ -1363,7 +1460,7 @@ mips*-*-linux*) # Linux MIPS, either endian. ;; mips*-*-openbsd*) tm_defines="OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" - target_cpu_default="MASK_GAS|MASK_ABICALLS" + target_cpu_default="MASK_ABICALLS" tm_file="mips/mips.h openbsd.h mips/openbsd.h mips/sdb.h" case ${target} in mips*el-*-openbsd*) @@ -1372,64 +1469,64 @@ mips*-*-openbsd*) esac ;; mipsisa32-*-elf* | mipsisa32el-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-isa3264 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-isa3264 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa64-*-elf* | mipsisa64el-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-isa3264 - target_cpu_default="MASK_64BIT|MASK_FLOAT64|MASK_GAS" + target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa64sr71k-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-sr71k - target_cpu_default="MASK_64BIT|MASK_FLOAT64|MASK_GAS" + target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-elf - target_cpu_default="MASK_64BIT|MASK_FLOAT64|MASK_GAS" + target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips-*-elf* | mipsel-*-elf*) - tm_file="${tm_file} mips/elf.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-elf use_fixproto=yes ;; mips64-*-elf* | mips64el-*-elf*) - tm_file="${tm_file} mips/elf64.h" + tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-elf - target_cpu_default="MASK_64BIT|MASK_FLOAT64|MASK_GAS" + target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips64vr-*-elf* | mips64vrel-*-elf*) - tm_file="mips/vr.h ${tm_file} mips/elf64.h" + tm_file="mips/vr.h elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-vr use_fixproto=yes ;; mips64orion-*-elf* | mips64orionel-*-elf*) - tm_file="${tm_file} mips/elforion.h mips/elf64.h" + tm_file="elfos.h ${tm_file} mips/elforion.h mips/elf.h" tmake_file=mips/t-elf - target_cpu_default="MASK_64BIT|MASK_FLOAT64|MASK_GAS" + target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips*-*-rtems*) - tm_file="${tm_file} mips/elf.h mips/rtems.h rtems.h" + tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" tmake_file="mips/t-elf t-rtems mips/t-rtems" ;; mips-wrs-vxworks) @@ -1437,17 +1534,15 @@ mips-wrs-vxworks) # have to redo the tm_file list from scratch. tm_file="elfos.h mips/mips.h svr4.h mips/elf.h vxworks.h mips/vxworks.h" tmake_file="${tmake_file} mips/t-vxworks" - target_cpu_default="MASK_GAS" ;; mips-wrs-windiss) # Instruction-level simulator for VxWorks. xm_defines=POSIX tm_file="elfos.h mips/mips.h svr4.h mips/elf.h windiss.h mips/windiss.h" tmake_file="${tmake_file} mips/t-elf" - target_cpu_default="MASK_GAS" thread_file= ;; mipstx39-*-elf* | mipstx39el-*-elf*) - tm_file="${tm_file} mips/r3900.h mips/elf.h" + tm_file="elfos.h ${tm_file} mips/r3900.h mips/elf.h" tmake_file=mips/t-r3900 use_fixproto=yes ;; @@ -1480,20 +1575,16 @@ pdp11-*-bsd) pdp11-*-*) use_fixproto=yes ;; -avr-*-*) - use_fixproto=yes - ;; # port not yet contributed #powerpc-*-openbsd*) # tmake_file="${tmake_file} rs6000/t-fprules " # extra_headers= # ;; powerpc64-*-linux*) - tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" - case x$with_cpu in - x|xpowerpc64|xdefault64) tm_file="${tm_file} rs6000/default64.h";; - esac - tm_file="${tm_file} rs6000/linux64.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" + test x$with_cpu != x || cpu_is_64bit=yes + test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h" + tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" tmake_file="rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64" ;; powerpc64-*-gnu*) @@ -1509,6 +1600,11 @@ powerpc-*-beos*) powerpc-*-darwin*) tm_file="${tm_file} rs6000/darwin.h" tmake_file="${tmake_file} rs6000/t-darwin" + case ${target} in + *-darwin1[0-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;; + *-darwin[0-7]*) ;; + *-darwin[8-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;; + esac extra_headers=altivec.h ;; powerpc*-*-freebsd*) @@ -1567,8 +1663,20 @@ powerpc-*-linux*spe*) tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" ;; powerpc-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + case ${enable_targets}:${cpu_is_64bit} in + *powerpc64* | all:* | *:yes) + if test x$cpu_is_64bit = xyes; then + tm_file="${tm_file} rs6000/default64.h" + fi + tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" + tmake_file="$tmake_file rs6000/t-linux64" + ;; + *) + tm_file="${tm_file} rs6000/linux.h" + ;; + esac ;; powerpc-*-gnu-gnualtivec*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" @@ -1598,6 +1706,16 @@ powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks. thread_file="" use_fixproto=yes ;; +powerpc-*-lynxos*) + xm_defines=POSIX + tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h" + tmake_file="t-lynx rs6000/t-lynx" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_options="${extra_options} lynx.opt" + thread_file=lynx + gnu_ld=yes + gas=yes + ;; powerpcle-*-sysv*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm" @@ -1652,12 +1770,6 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) thread_file='aix' extra_headers= ;; -rs6000-*-lynxos*) - tm_file="svr3.h lynx.h rs6000/lynxbase.h rs6000/rs6000.h rs6000/lynx.h" - tmake_file=rs6000/t-fprules - use_collect2=yes - use_fixproto=yes - ;; s390-*-linux*) tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" tmake_file="${tmake_file} s390/t-crtstuff" @@ -1678,108 +1790,155 @@ s390x-ibm-tpf*) extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" out_file=s390/s390.c tmake_file="t-slibgcc-elf-ver s390/t-crtstuff s390/t-tpf" + thread_file='tpf' ;; -sh-*-elf* | sh[2346l]*-*-elf* | sh*-*-kaos*) - tmake_file="sh/t-sh sh/t-elf" +sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ +sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ + sh-*-linux* | sh[346lbe]*-*-linux* | \ + sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ + sh64-*-netbsd* | sh64l*-*-netbsd*) + tmake_file="${tmake_file} sh/t-sh sh/t-elf" + if test x${with_endian} = x; then + case ${target} in + sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;; + shbe-*-* | sheb-*-*) with_endian=big,little ;; + sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;; + shl* | sh64l* | sh*-*-linux* | \ + sh5l* | sh-superh-elf) with_endian=little,big ;; + sh[1234]*-*-*) with_endian=big ;; + *) with_endian=big,little ;; + esac + fi + case ${with_endian} in + big|little) tmake_file="${tmake_file} sh/t-1e" ;; + big,little|little,big) ;; + *) echo "with_endian=${with_endian} not supported."; exit 1 ;; + esac + case ${with_endian} in + little*) tm_file="sh/little.h ${tm_file}" ;; + esac + tm_file="${tm_file} dbxelf.h elfos.h" case ${target} in - shl* | sh[234]l* | sh64l*) - tm_file="sh/little.h ${tm_file}" - tmake_file="${tmake_file} sh/t-le" - ;; + sh*-*-netbsd*) ;; + *) tm_file="${tm_file} svr4.h" ;; esac - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h" + tm_file="${tm_file} sh/elf.h" case ${target} in + sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux" + tm_file="${tm_file} linux.h sh/linux.h" ;; + sh*-*-kaos*) tm_file="${tm_file} sh/embed-elf.h kaos.h sh/kaos-sh.h" + ;; + sh*-*-netbsd*) tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;; + *) tm_file="${tm_file} sh/embed-elf.h" ;; + esac + case ${target} in + sh5*-*-netbsd*) + # SHmedia, 32-bit ABI + tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd" + ;; + sh64*-netbsd*) + # SHmedia, 64-bit ABI + tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64" + ;; + *-*-netbsd) + tmake_file="${tmake_file} sh/t-netbsd" + ;; + sh64*-*-linux*) + tmake_file="${tmake_file} sh/t-sh64 sh/t-linux64" + tm_file="${tm_file} sh/sh64.h" + extra_headers="shmedia.h ushmedia.h sshmedia.h" + ;; sh64*) tmake_file="${tmake_file} sh/t-sh64" tm_file="${tm_file} sh/sh64.h" extra_headers="shmedia.h ushmedia.h sshmedia.h" ;; - sh4_single*) target_cpu_default="SELECT_SH4_SINGLE" ;; - sh4*) target_cpu_default="SELECT_SH4" ;; - sh3e*) target_cpu_default="SELECT_SH3E" ;; - sh3*) target_cpu_default="SELECT_SH3" ;; - sh2e*) target_cpu_default="SELECT_SH2E" ;; - sh2*) target_cpu_default="SELECT_SH2" ;; + *-*-symbianelf*) + tmake_file="sh/t-symbian" + tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h" + extra_objs="symbian.o" + extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o" + ;; esac - case ${target} in - sh[234]*) tmake_file="${tmake_file} sh/t-monolib" ;; + # sed el/eb endian suffixes away to avoid confusion with sh[23]e + case `echo ${target} | sed 's/e[lb]-/-/'` in + sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;; + sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;; + sh4a_single_only*) sh_cpu_target=sh4a-single-only ;; + sh4a_single*) sh_cpu_target=sh4a-single ;; + sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;; + sh4al) sh_cpu_target=sh4al ;; + sh4a*) sh_cpu_target=sh4a ;; + sh4_single_only*) sh_cpu_target=sh4-single-only ;; + sh4_single*) sh_cpu_target=sh4-single ;; + sh4_nofpu*) sh_cpu_target=sh4-nofpu ;; + sh4* | sh-superh-*) sh_cpu_target=sh4 ;; + sh3e*) sh_cpu_target=sh3e ;; + sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;; + sh2a_single_only*) sh_cpu_target=sh2a-single-only ;; + sh2a_single*) sh_cpu_target=sh2a-single ;; + sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;; + sh2a*) sh_cpu_target=sh2a ;; + sh2e*) sh_cpu_target=sh2e ;; + sh2*) sh_cpu_target=sh2 ;; + *) sh_cpu_target=sh1 ;; esac - case ${target} in - sh*-*-kaos*) tm_file="${tm_file} kaos.h sh/kaos-sh.h" ;; + sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`" + case $sh_cpu_default in + sh5-64media-nofpu | sh5-64media | \ + sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \ + sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \ + sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \ + sh4-single-only | sh4-single | sh4-nofpu | sh4 | \ + sh3e | sh3 | sh2e | sh2 | sh1) ;; + "") sh_cpu_default=${sh_cpu_target} ;; + *) echo "with_cpu=$with_cpu not supported"; exit 1 ;; esac + sh_multilibs=${with_multilib_list} + if test x${sh_multilibs} = x ; then + case ${target} in + sh[1234]*) sh_multilibs=${sh_cpu_target} ;; + sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;; + sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;; + sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;; + sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;; + *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;; + esac + fi + target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr a-z- A-Z_` + tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"' + sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ ,/][ ,]*/ /g' -e 's/ $//' -e s/^m/sh/ -e 's/ m/ sh/g' | tr A-Z_ a-z-` + for sh_multilib in ${sh_multilibs}; do + case ${sh_multilib} in + sh1 | sh2 | sh2e | sh3 | sh3e | \ + sh4 | sh4-single | sh4-single-only | sh4-nofpu | \ + sh4a | sh4a-single | sh4a-single-only | sh4a-nofpu | sh4al | \ + sh2a | sh2a-single | sh2a-single-only | sh2a-nofpu | \ + sh5-64media | sh5-64media-nofpu | \ + sh5-32media | sh5-32media-nofpu | \ + sh5-compact | sh5-compact-nofpu) + tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}" + tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr a-z- A-Z_`" + ;; + *) + echo "with_multilib_list=${sh_multilib} not supported." + exit 1 + ;; + esac + done + if test x${enable_incomplete_targets} == xyes ; then + tm_defines="$tm_defines SUPPORT_SH1 SUPPORT_SH2E SUPPORT_SH4 SUPPORT_SH4_SINGLE SUPPORT_SH2A SUPPORT_SH2A_SINGLE SUPPORT_SH5_32MEDIA SUPPORT_SH5_32MEDIA_NOFPU SUPPORT_SH5_64MEDIA SUPPORT_SH5_64MEDIA_NOFPU" + fi use_fixproto=yes ;; sh-*-rtemscoff*) - tmake_file="sh/t-sh t-rtems" + tmake_file="sh/t-sh t-rtems sh/t-rtems" tm_file="${tm_file} dbxcoff.h sh/coff.h sh/rtems.h rtems.h" ;; sh-*-rtems*) - tmake_file="sh/t-sh sh/t-elf t-rtems" + tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems" tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h" ;; -sh-*-linux* | sh[2346lbe]*-*-linux*) - tmake_file="sh/t-sh sh/t-elf ${tmake_file}" - case ${target} in - sh*be-*-* | sh*eb-*-*) ;; - *) - tm_file="sh/little.h ${tm_file}" - tmake_file="${tmake_file} sh/t-le" - ;; - esac - tmake_file="${tmake_file} sh/t-linux" - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h" - case ${target} in - sh64*) - tmake_file="${tmake_file} sh/t-sh64" - tm_file="${tm_file} sh/sh64.h" - extra_headers="shmedia.h ushmedia.h sshmedia.h" - ;; - sh4_single*) target_cpu_default="SELECT_SH4_SINGLE" ;; - sh4*) target_cpu_default="SELECT_SH4" ;; - sh3e[lb]e*) target_cpu_default="SELECT_SH3E" ;; - sh3e[lb]*) target_cpu_default="SELECT_SH3" ;; - sh3e*) target_cpu_default="SELECT_SH3E" ;; - sh3*) target_cpu_default="SELECT_SH3" ;; - sh2e[lb]e*) target_cpu_default="SELECT_SH2E" ;; - sh2e[lb]*) target_cpu_default="SELECT_SH2" ;; - sh2e*) target_cpu_default="SELECT_SH2E" ;; - sh2*) target_cpu_default="SELECT_SH2" ;; - esac - case ${target} in - sh[234]*) tmake_file="${tmake_file} sh/t-monolib" ;; - esac - ;; -sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h netbsd.h netbsd-elf.h sh/netbsd-elf.h" - tmake_file="${tmake_file} sh/t-sh sh/t-elf" - case ${target} in - sh*l*-*) - tm_file="sh/little.h ${tm_file}" - tmake_file="${tmake_file} sh/t-le" - ;; - *) - tmake_file="${tmake_file} sh/t-be" - ;; - esac - case ${target} in - sh5*-*) - # SHmedia, 32-bit ABI - target_cpu_default="SH5_BIT|SH4_BIT|SH3_BIT|SH_E_BIT" - tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5" - ;; - sh64*-*) - # SHmedia, 64-bit ABI - target_cpu_default="SH5_BIT|SH4_BIT" - tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5 sh/t-netbsd-sh5-64" - ;; - *) - # SH3, software floating point - target_cpu_default="SH1_BIT|SH2_BIT|SH3_BIT" - tmake_file="${tmake_file} sh/t-netbsd" - ;; - esac - ;; sh-wrs-vxworks) tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks" tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h sh/vxworks.h" @@ -1789,7 +1948,8 @@ sh-*-*) use_fixproto=yes ;; sparc-*-netbsdelf*) - tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" + extra_options="${extra_options} sparc/long-double-switch.opt" ;; sparc-*-openbsd*) tm_defines=OBSD_OLD_GAS @@ -1800,53 +1960,66 @@ sparc-*-openbsd*) use_collect2=yes ;; sparc64-*-openbsd*) - tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" + tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" + extra_options="${extra_options} sparc/little-endian.opt" gas=yes gnu_ld=yes with_cpu=ultrasparc ;; sparc-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h" tmake_file="sparc/t-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" use_fixproto=yes ;; sparc-*-linux*) # SPARC's running GNU/Linux, libc6 tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" + extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-crtfm" ;; sparc-*-rtems*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h" tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; sparc64-*-solaris2* | sparcv9-*-solaris2*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h" + tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h tm-dwarf2.h" if test x$gnu_ld = xyes; then tm_file="${tm_file} sparc/sol2-gld.h sparc/sol2-gld-bi.h" fi if test x$gas = xyes; then - tm_file="${tm_file} sparc/sol2-gas-bi.h" + tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h" fi - tmake_file="sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm" + tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm" if test x$gnu_ld = xyes; then tmake_file="$tmake_file t-slibgcc-elf-ver" else tmake_file="$tmake_file t-slibgcc-sld" fi + c_target_objs="sol2-c.o" + cxx_target_objs="sol2-c.o" + extra_objs="sol2.o" + tm_p_file="${tm_p_file} sol2-protos.h" extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o" case ${enable_threads}:${have_pthread_h}:${have_thread_h} in - no:*:*) ;; - *:yes:* ) thread_file=posix ;; - yes:*:* | *:*:yes ) thread_file=solaris ;; + "":yes:* | yes:yes:* ) thread_file=posix ;; + "":*:yes | yes:*:yes ) thread_file=solaris ;; esac need_64bit_hwint=yes ;; sparc-*-solaris2*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" + case ${target} in + *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) + tm_file="${tm_file} sol26.h" + esac + tm_file="${tm_file} sparc/sol2.h" if test x$gnu_ld = xyes; then tm_file="${tm_file} sparc/sol2-gld.h" fi - tmake_file="sparc/t-sol2 sparc/t-crtfm" + if test x$gas = xyes; then + tm_file="${tm_file} sparc/sol2-gas.h" + fi + tmake_file="t-sol2 sparc/t-sol2 sparc/t-crtfm" if test x$gnu_ld = xyes; then tmake_file="$tmake_file t-slibgcc-elf-ver" else @@ -1858,8 +2031,8 @@ sparc-*-solaris2*) tm_file="${tm_file} sparc/sol26-sld.h" fi ;; - *-*-solaris2.[789] | *-*-solaris2.1[0-9]) - tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h" + *-*-solaris2.[789] | *-*-solaris2.1[0-9]*) + tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h tm-dwarf2.h" if test x$gnu_ld = xyes; then tm_file="${tm_file} sparc/sol2-gld-bi.h" fi @@ -1870,11 +2043,25 @@ sparc-*-solaris2*) need_64bit_hwint=yes ;; esac + c_target_objs="sol2-c.o" + cxx_target_objs="sol2-c.o" + extra_objs="sol2.o" + tm_p_file="${tm_p_file} sol2-protos.h" extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" case ${enable_threads}:${have_pthread_h}:${have_thread_h} in - no:*:*) ;; - *:yes:* ) thread_file=posix ;; - yes:*:* | *:*:yes ) thread_file=solaris ;; + "":yes:* | yes:yes:* ) + case ${target} in + *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) + thread_file=posix95 + ;; + *) + thread_file=posix + ;; + esac + ;; + "":*:yes | yes:*:yes ) + thread_file=solaris + ;; esac ;; sparc-*-sysv4*) @@ -1883,34 +2070,16 @@ sparc-*-sysv4*) extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; -sparclite-*-coff*) - tm_file="${tm_file} sparc/lite.h svr3.h sparc/litecoff.h dbxcoff.h libgloss.h" - tmake_file=sparc/t-sparclite - ;; -sparclite-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/liteelf.h" - tmake_file="sparc/t-sparclite sparc/t-crtfm" - extra_parts="crtbegin.o crtend.o" - use_fixproto=yes - ;; -sparc86x-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/sp86x-elf.h" - tmake_file="sparc/t-sp86x sparc/t-crtfm" - extra_parts="crtbegin.o crtend.o" - use_fixproto=yes - ;; -sparc64-*-aout*) - tm_file="sparc/sparc.h sparc/aout.h sparc/sp64-aout.h" - use_fixproto=yes - ;; sparc64-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sp64-elf.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h" + extra_options="${extra_options} sparc/little-endian.opt" tmake_file="${tmake_file} sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; sparc64-*-freebsd*|ultrasparc-*-freebsd*) tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h" + extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-crtfm" case "x$with_cpu" in xultrasparc) ;; @@ -1920,17 +2089,19 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*) need_64bit_hwint=yes ;; sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux - tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm" tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h" + extra_options="${extra_options} sparc/long-double-switch.opt" + tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm" ;; sparc64-*-netbsd*) - tmake_file="${tmake_file} sparc/t-netbsd64" tm_file="sparc/biarch64.h ${tm_file}" tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" + extra_options="${extra_options} sparc/long-double-switch.opt" + tmake_file="${tmake_file} sparc/t-netbsd64" ;; strongarm-*-elf*) tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" - tmake_file=arm/t-strongarm-elf + tmake_file="arm/t-arm arm/t-strongarm-elf" out_file=arm/arm.c md_file=arm/arm.md extra_modes=arm/arm-modes.def @@ -1938,7 +2109,7 @@ strongarm-*-elf*) ;; strongarm-*-pe) tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/strongarm-coff.h arm/arm.h arm/pe.h arm/strongarm-pe.h" - tmake_file=arm/t-strongarm-pe + tmake_file="arm/t-arm arm/t-strongarm-pe" out_file=arm/arm.c md_file=arm/arm.md extra_modes=arm/arm-modes.def @@ -1947,7 +2118,7 @@ strongarm-*-pe) ;; strongarm-*-kaos*) tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-strongarm.h" - tmake_file=arm/t-strongarm-elf + tmake_file="arm/t-arm arm/t-strongarm-elf" out_file=arm/arm.c md_file=arm/arm.md extra_modes=arm/arm-modes.def @@ -1959,6 +2130,7 @@ v850e1-*-*) tmake_file=v850/t-v850e md_file=v850/v850.md out_file=v850/v850.c + extra_options="${extra_options} v850/v850.opt" if test x$stabs = xyes then tm_file="${tm_file} dbx.h" @@ -1975,6 +2147,7 @@ v850e-*-*) tmake_file=v850/t-v850e md_file=v850/v850.md out_file=v850/v850.c + extra_options="${extra_options} v850/v850.opt" if test x$stabs = xyes then tm_file="${tm_file} dbx.h" @@ -1999,11 +2172,13 @@ v850-*-*) ;; vax-*-bsd*) # VAXen running BSD tm_file="${tm_file} vax/bsd.h" + tmake_file=vax/t-memfuncs use_collect2=yes use_fixproto=yes ;; vax-*-sysv*) # VAXen running system V tm_file="${tm_file} vax/vaxv.h" + tmake_file=vax/t-memfuncs use_fixproto=yes ;; vax-*-netbsdelf*) @@ -2021,11 +2196,12 @@ vax-*-openbsd*) ;; vax-*-ultrix*) # VAXen running ultrix tm_file="${tm_file} vax/ultrix.h" + tmake_file=vax/t-memfuncs use_fixproto=yes ;; xscale-*-elf) tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" - tmake_file=arm/t-xscale-elf + tmake_file="arm/t-arm arm/t-xscale-elf" out_file=arm/arm.c md_file=arm/arm.md extra_modes=arm/arm-modes.def @@ -2033,7 +2209,7 @@ xscale-*-elf) ;; xscale-*-coff) tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/xscale-coff.h arm/arm.h" - tmake_file=arm/t-xscale-coff + tmake_file="arm/t-arm arm/t-xscale-coff" out_file=arm/arm.c md_file=arm/arm.md extra_modes=arm/arm-modes.def @@ -2045,6 +2221,7 @@ xstormy16-*-elf) tm_p_file=stormy16/stormy16-protos.h md_file=stormy16/stormy16.md out_file=stormy16/stormy16.c + extra_options=stormy16/stormy16.opt tmake_file="stormy16/t-stormy16" extra_parts="crtbegin.o crtend.o" use_fixproto=yes @@ -2070,6 +2247,18 @@ am33_2.0-*-linux*) ;; esac +case ${target} in +i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) + tmake_file="${tmake_file} i386/t-gmm_malloc" + ;; +i[34567]86-*-linux* | x86_64-*-linux*) + tmake_file="${tmake_file} i386/t-pmm_malloc" + ;; +i[34567]86-*-* | x86_64-*-*) + tmake_file="${tmake_file} i386/t-gmm_malloc" + ;; +esac + # Support for --with-cpu and related options (and a few unrelated options, # too). case ${with_cpu} in @@ -2182,24 +2371,24 @@ if test x$with_float = x; then esac fi - # Similarly for --with-schedule. - if test x$with_schedule = x; then - case ${target} in - hppa1* | parisc1*) - # Override default PA8000 scheduling model. - with_schedule=7100LC - ;; - esac - fi +# Similarly for --with-schedule. +if test x$with_schedule = x; then + case ${target} in + hppa1* | parisc1*) + # Override default PA8000 scheduling model. + with_schedule=7100LC + ;; + esac +fi - # Validate and mark as valid any --with options supported - # by this target. In order to use a particular --with option - # you must list it in supported_defaults; validating the value - # is optional. This case statement should set nothing besides - # supported_defaults. +# Validate and mark as valid any --with options supported +# by this target. In order to use a particular --with option +# you must list it in supported_defaults; validating the value +# is optional. This case statement should set nothing besides +# supported_defaults. - supported_defaults= - case "${target}" in +supported_defaults= +case "${target}" in alpha*-*-*) supported_defaults="cpu tune" for which in cpu tune; do @@ -2224,10 +2413,16 @@ fi # See if it matches any of the entries in arm-cores.def eval "val=\$with_$which" if [ x"$val" = x ] \ - || grep "^ARM_CORE($val," \ + || grep "^ARM_CORE(\"$val\"," \ ${srcdir}/config/arm/arm-cores.def \ > /dev/null; then # Ok + new_val=`grep "^ARM_CORE(\"$val\"," \ + ${srcdir}/config/arm/arm-cores.def | \ + sed -e 's/^[^,]*,[ ]*//' | \ + sed -e 's/,.*$//'` + eval "target_${which}_cname=$new_val" + echo "For $val real value is $new_val" true else echo "Unknown CPU used in --with-$which=$val" 1>&2 @@ -2238,7 +2433,8 @@ fi case "$with_arch" in "" \ | armv[23456] | armv2a | armv3m | armv4t | armv5t \ - | armv5te | armv6j | iwmmxt | ep9312) + | armv5te | armv6j |armv6k | armv6z | armv6zk \ + | iwmmxt | ep9312) # OK ;; *) @@ -2357,7 +2553,7 @@ fi ;; mips*-*-*) - supported_defaults="abi arch float tune" + supported_defaults="abi arch float tune divide" case ${with_float} in "" | soft | hard) @@ -2378,6 +2574,15 @@ fi exit 1 ;; esac + + case ${with_divide} in + "" | breaks | traps) + # OK + ;; + *) + echo "Unknown division check type use in --with-divide=$with_divide" 1>&2 + exit 1 + esac ;; powerpc*-*-* | rs6000-*-*) @@ -2391,13 +2596,12 @@ fi eval $with_which= ;; "" | common \ - | power | power2 | power3 | power4 \ - | powerpc | powerpc64 \ + | power | power[2345] | powerpc | powerpc64 \ | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ | 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \ | 601 | 602 | 603 | 603e | ec603e | 604 \ | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ - | 8540 | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5) + | 854[08] | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5) # OK ;; *) @@ -2435,6 +2639,25 @@ fi esac ;; + sh[123456ble]-*-* | sh-*-*) + supported_defaults="cpu" + case "`echo $with_cpu | tr A-Z_ a-z- | sed s/sh/m/`" in + "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu ) + # OK + ;; + m2a | m2a-single | m2a-single-only | m2a-nofpu) + ;; + m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al) + ;; + *) + echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2 + echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2 + echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2 + echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2 + exit 1 + ;; + esac + ;; sparc*-*-*) supported_defaults="cpu float tune" @@ -2477,11 +2700,11 @@ fi ;; esac ;; - esac +esac - # Set some miscellaneous flags for particular targets. - target_cpu_default2= - case ${target} in +# Set some miscellaneous flags for particular targets. +target_cpu_default2= +case ${target} in alpha*-*-*) if test x$gas = xyes then @@ -2490,16 +2713,12 @@ fi ;; arm*-*-*) - case "x$with_cpu" in - x) - # The most generic - target_cpu_default2="TARGET_CPU_generic" - ;; - - *) - target_cpu_default2="TARGET_CPU_$with_cpu" - ;; - esac + if test x$target_cpu_cname = x + then + target_cpu_default2=TARGET_CPU_generic + else + target_cpu_default2=TARGET_CPU_$target_cpu_cname + fi ;; m68k*-linux*) @@ -2534,42 +2753,23 @@ fi ;; hppa*-*-* | parisc*-*-*) + target_cpu_default2="MASK_BIG_SWITCH" if test x$gas = xyes then - target_cpu_default2="MASK_GAS|MASK_JUMP_IN_DELAY" + target_cpu_default2="${target_cpu_default2}|MASK_GAS|MASK_JUMP_IN_DELAY" fi ;; mips*-*-*) - case ${target} in - mips*-*-ecoff* | mips*-*-elf*) - if test x$gas = xyes - then - if test x$gnu_ld = xyes - then - target_cpu_default2="MASK_GAS|MASK_SPLIT_ADDR" - else - target_cpu_default2="MASK_GAS" - fi - fi - ;; - mips*-*-*) - if test x$gas = xyes - then - target_cpu_default2="MASK_GAS" - fi - ;; - esac + if test x$gnu_ld = xyes + then + target_cpu_default2="MASK_SPLIT_ADDRESSES" + fi case ${target} in mips*el-*-*) tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines" ;; esac - case $tm_file in - *mips/elf.h* | *mips/elf64.h*) - tm_defines="OBJECT_FORMAT_ELF $tm_defines" - ;; - esac if test "x$enable_gofast" = xyes then tm_defines="US_SOFTWARE_GOFAST $tm_defines" @@ -2580,10 +2780,6 @@ fi ;; powerpc*-*-* | rs6000-*-*) - if test x$enable_altivec = xyes - then - tm_file="$tm_file rs6000/altivec-defs.h" - fi # FIXME: The PowerPC port uses the value set at compile time, # although it's only cosmetic. if test "x$with_cpu" != x @@ -2594,6 +2790,11 @@ fi c_target_objs="${c_target_objs} rs6000-c.o" cxx_target_objs="${cxx_target_objs} rs6000-c.o" tmake_file="rs6000/t-rs6000 ${tmake_file}" + + if test x$enable_e500_double = xyes + then + tm_file="$tm_file rs6000/e500-double.h" + fi ;; sparc*-*-*) @@ -2602,9 +2803,6 @@ fi xsparc) with_cpu=v7 ;; - xsparc86x) - with_cpu=sparclite86x - ;; xsparcv9 | xsparc64) with_cpu=v9 ;; @@ -2624,44 +2822,45 @@ fi ;; esac ;; - esac +esac - t= - all_defaults="abi cpu arch tune schedule float mode fpu" - for option in $all_defaults - do - eval "val=\$with_$option" - if test -n "$val"; then - case " $supported_defaults " in - *" $option "*) - ;; - *) - echo "This target does not support --with-$option." 2>&1 - exit 1 - ;; - esac +t= +all_defaults="abi cpu arch tune schedule float mode fpu divide" +for option in $all_defaults +do + eval "val=\$with_$option" + if test -n "$val"; then + case " $supported_defaults " in + *" $option "*) + ;; + *) + echo "This target does not support --with-$option." 2>&1 + exit 1 + ;; + esac - if test "x$t" = x - then - t="{ \"$option\", \"$val\" }" - else - t="${t}, { \"$option\", \"$val\" }" - fi + if test "x$t" = x + then + t="{ \"$option\", \"$val\" }" + else + t="${t}, { \"$option\", \"$val\" }" fi - done - if test "x$t" = x - then - configure_default_options="{ { NULL, NULL} }" - else - configure_default_options="{ ${t} }" fi +done - if test "$target_cpu_default2" != "" +if test "x$t" = x +then + configure_default_options="{ { NULL, NULL} }" +else + configure_default_options="{ ${t} }" +fi + +if test "$target_cpu_default2" != "" +then + if test "$target_cpu_default" != "" then - if test "$target_cpu_default" != "" - then - target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" - else - target_cpu_default=$target_cpu_default2 - fi + target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" + else + target_cpu_default=$target_cpu_default2 fi +fi