diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 438e8bb95f0..e103ea0a52c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,79 @@ +2011-08-05 Rainer Orth + + * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. + (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) + dependencies. + (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, + TPBIT, TPBIT_FUNCS. + * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. + * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): + Remove. + * config/arm/t-vxworks: Likewise. + * config/arm/t-wince-pe: Likewise. + * config/avr/t-avr (fp-bit.c, FPBIT): Remove. + * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/bfin/t-bfin-elf: Likewise. + * config/bfin/t-bfin-linux: Likewise. + * config/bfin/t-bfin-uclinux: Likewise. + * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): + Remove. + * config/fr30/t-fr30: Likewise. + * config/frv/t-frv: Likewise. + * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. + * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/m32c/t-m32c: Likewise. + * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. + * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mcore/t-mcore: Likewise. + * config/mep/t-mep: Likewise. + * config/microblaze/t-microblaze: Likewise. + * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. + * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. + * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mn10300/t-linux: Remove. + * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/pdp11/t-pdp11: Likewise. + * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. + * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. + * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. + * config/rs6000/t-aix52: Likewise. + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove + $(srcdir)/config/rs6000/ppc64-fp.c. + * config/rs6000/t-fprules-fpbit: Remove. + * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. + * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/sh/t-netbsd (FPBIT, DPBIT): Remove. + * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/sparc/t-elf: Likewise. + * config/sparc/t-leon: Likewise. + * config/sparc/t-leon3: Likewise. + * config/spu/t-spu-elf: Likewise. + (DPBIT_FUNCS): Remove. + * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/v850/t-v850: Likewise. + * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. + (avr-*-*): Likewise. + (h8300-*-rtems*): Set libgcc_tm_file. + (h8300-*-elf*): Likewise. + (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from + tmake_file. + (powerpc-*-eabisim*): Likewise. + (powerpc-*-elf*): Likewise. + (powerpc-*-eabialtivec*): Likewise. + (powerpc-xilinx-eabi*): Likewise. + (powerpc-*-eabi*): Likewise. + (powerpc-*-rtems*): Likewise. + (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. + (powerpcle-*-elf*): Likewise. + (powerpcle-*-eabisim*): Likewise. + (powerpcle-*-eabi*): Likewise. + (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. + (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. + * doc/fragments.texi (Target Fragment, Floating Point Emulation): + Remove. + 2011-08-05 Rainer Orth * Makefile.in (UNWIND_H): Remove. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 889deb16240..ff1dfc6931a 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1528,21 +1528,6 @@ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ # Defined in libgcc2.c, included only in the static library. LIB2FUNCS_ST = _eprintf __gcc_bcmp -FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \ - _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ - _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \ - _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf - -DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ - _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \ - _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ - _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df - -TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \ - _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \ - _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \ - _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf - # These might cause a divide overflow trap and so are compiled with # unwinder info. LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 @@ -1883,8 +1868,7 @@ srcdirify = $(patsubst $$(libgcc_objdir)/%,%, \ GCC_EXTRA_PARTS := $(sort $(EXTRA_MULTILIB_PARTS) $(EXTRA_PARTS)) libgcc-support: libgcc.mvars stmp-int-hdrs $(TCONFIG_H) \ - $(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \ - $(LIB2ADD_ST) gcov-iov.h $(SFP_MACHINE) + $(MACHMODE_H) $(LIB2ADD) $(LIB2ADD_ST) gcov-iov.h $(SFP_MACHINE) libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \ xgcc$(exeext) @@ -1896,13 +1880,7 @@ libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \ echo LIB2ADD = '$(call srcdirify,$(LIB2ADD))' >> tmp-libgcc.mvars echo LIB2ADD_ST = '$(call srcdirify,$(LIB2ADD_ST))' >> tmp-libgcc.mvars echo LIB2_SIDITI_CONV_FUNCS = '$(LIB2_SIDITI_CONV_FUNCS)' >> tmp-libgcc.mvars - echo FPBIT = '$(FPBIT)' >> tmp-libgcc.mvars - echo FPBIT_FUNCS = '$(FPBIT_FUNCS)' >> tmp-libgcc.mvars echo LIB2_DIVMOD_FUNCS = '$(LIB2_DIVMOD_FUNCS)' >> tmp-libgcc.mvars - echo DPBIT = '$(DPBIT)' >> tmp-libgcc.mvars - echo DPBIT_FUNCS = '$(DPBIT_FUNCS)' >> tmp-libgcc.mvars - echo TPBIT = '$(TPBIT)' >> tmp-libgcc.mvars - echo TPBIT_FUNCS = '$(TPBIT_FUNCS)' >> tmp-libgcc.mvars echo GCC_EXTRA_PARTS = '$(GCC_EXTRA_PARTS)' >> tmp-libgcc.mvars echo SHLIB_LINK = '$(subst $(GCC_FOR_TARGET),$$(GCC_FOR_TARGET),$(SHLIB_LINK))' >> tmp-libgcc.mvars echo SHLIB_INSTALL = '$(SHLIB_INSTALL)' >> tmp-libgcc.mvars diff --git a/gcc/config.gcc b/gcc/config.gcc index 673b768b770..dcc5b4304d7 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -937,12 +937,14 @@ arm*-wince-pe*) ;; avr-*-rtems*) tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h" tmake_file="avr/t-avr t-rtems avr/t-rtems" extra_gcc_objs="driver-avr.o avr-devices.o" extra_objs="avr-devices.o" ;; avr-*-*) tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h" use_gcc_stdint=wrap extra_gcc_objs="driver-avr.o avr-devices.o" extra_objs="avr-devices.o" @@ -1039,10 +1041,12 @@ moxie-*-rtems*) 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 newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h" ;; h8300-*-elf*) tmake_file="h8300/t-h8300 h8300/t-elf" tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h" + libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h" ;; hppa*64*-*-linux*) target_cpu_default="MASK_PA_11|MASK_PA_20" @@ -2017,7 +2021,7 @@ picochip-*) ;; # port not yet contributed #powerpc-*-openbsd*) -# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " +# tmake_file="${tmake_file} rs6000/t-fprules" # extra_headers= # ;; powerpc-*-darwin*) @@ -2063,42 +2067,42 @@ powerpc-*-eabispe*) powerpc-*-eabisimaltivec*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-eabisim*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" ;; powerpc-*-eabialtivec*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-xilinx-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h" extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx" use_gcc_stdint=wrap ;; powerpc-*-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm" ;; powerpc-*-linux* | powerpc64-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h" @@ -2146,7 +2150,7 @@ powerpc-*-linux* | powerpc64-*-linux*) ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h" - tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks" + tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" extra_options="${extra_options} rs6000/sysv4.opt" extra_headers=ppc-asm.h case ${target} in @@ -2171,18 +2175,18 @@ powerpc-*-lynxos*) ;; powerpcle-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpcle-*-eabisim*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_gcc_stdint=wrap ;; powerpcle-*-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_gcc_stdint=wrap ;; @@ -2233,7 +2237,7 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*) ;; rx-*-elf*) tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h" + libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h rx/rx-lib.h" tmake_file="${tmake_file} rx/t-rx" ;; s390-*-linux*) @@ -2643,7 +2647,6 @@ xtensa*-*-linux*) ;; am33_2.0-*-linux*) tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" - tmake_file="${tmake_file} mn10300/t-linux" gas=yes gnu_ld=yes extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" use_collect2=no diff --git a/gcc/config/arm/t-strongarm-elf b/gcc/config/arm/t-strongarm-elf index 6af4f52dc18..4a4f4533ec1 100644 --- a/gcc/config/arm/t-strongarm-elf +++ b/gcc/config/arm/t-strongarm-elf @@ -19,25 +19,6 @@ LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _clzsi2 _clzdi2 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifndef __ARMEB__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifndef __ARMEB__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c - echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - MULTILIB_OPTIONS = mlittle-endian/mbig-endian mfloat-abi=hard/mfloat-abi=soft MULTILIB_DIRNAMES = le be fpu soft MULTILIB_EXCEPTIONS = diff --git a/gcc/config/arm/t-vxworks b/gcc/config/arm/t-vxworks index af01ac412db..8ac0d9bcec5 100644 --- a/gcc/config/arm/t-vxworks +++ b/gcc/config/arm/t-vxworks @@ -1,4 +1,4 @@ -# Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2003, 2007, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -18,24 +18,6 @@ LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifndef __ARMEB__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifndef __ARMEB__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - MULTILIB_OPTIONS = \ mrtp fPIC \ t4/t4be/t4t/t4tbe/t5/t5be/t5t/t5tbe/tstrongarm/txscale/txscalebe diff --git a/gcc/config/arm/t-wince-pe b/gcc/config/arm/t-wince-pe index 5aebc44c4c1..9ce1f313140 100644 --- a/gcc/config/arm/t-wince-pe +++ b/gcc/config/arm/t-wince-pe @@ -19,25 +19,6 @@ LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifndef __ARMEB__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifndef __ARMEB__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c - echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - pe.o: $(srcdir)/config/arm/pe.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) output.h flags.h $(TREE_H) expr.h $(TM_P_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr index d79dd5a47b6..85f374527b3 100644 --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -91,19 +91,6 @@ LIB2FUNCS_EXCLUDE = \ # so use -mcall-prologues for smaller code size. TARGET_LIBGCC2_CFLAGS = -DDF=SF -Dinhibit_libc -mcall-prologues -Os -fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/avr/t-avr - echo '#define FLOAT' > fp-bit.c - echo '#define FLOAT_ONLY' >> fp-bit.c - echo '#define CMPtype QItype' >> fp-bit.c - echo '#define DF SF' >> fp-bit.c - echo '#define DI SI' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#define SMALL_MACHINE' >> fp-bit.c - echo 'typedef int QItype __attribute__ ((mode (QI)));' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -FPBIT = fp-bit.c - MULTILIB_OPTIONS = mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr31/mmcu=avr35/mmcu=avr4/mmcu=avr5/mmcu=avr51/mmcu=avr6 MULTILIB_DIRNAMES = avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 diff --git a/gcc/config/bfin/t-bfin b/gcc/config/bfin/t-bfin index 90ee8f2c1f7..730043e4b63 100644 --- a/gcc/config/bfin/t-bfin +++ b/gcc/config/bfin/t-bfin @@ -1,4 +1,4 @@ -# Copyright (C) 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2005, 2007, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -24,16 +24,6 @@ LIB1ASMFUNCS += _smulsi3_highpart EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Assemble startup files. $(T)crti.o: $(srcdir)/config/bfin/crti.s $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \ diff --git a/gcc/config/bfin/t-bfin-elf b/gcc/config/bfin/t-bfin-elf index 867a71dce77..61797bfad2a 100644 --- a/gcc/config/bfin/t-bfin-elf +++ b/gcc/config/bfin/t-bfin-elf @@ -1,4 +1,4 @@ -# Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2007, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,16 +22,6 @@ LIB1ASMSRC = bfin/lib1funcs.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart LIB1ASMFUNCS += _smulsi3_highpart -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - CRTSTUFF_T_CFLAGS = -fpic TARGET_LIBGCC2_CFLAGS = -fpic diff --git a/gcc/config/bfin/t-bfin-linux b/gcc/config/bfin/t-bfin-linux index 65d8f7a97f3..e7e705ef1d4 100644 --- a/gcc/config/bfin/t-bfin-linux +++ b/gcc/config/bfin/t-bfin-linux @@ -1,4 +1,4 @@ -# Copyright (C) 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,16 +22,6 @@ LIB1ASMSRC = bfin/lib1funcs.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart LIB1ASMFUNCS += _smulsi3_highpart -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - CRTSTUFF_T_CFLAGS = -fpic TARGET_LIBGCC2_CFLAGS = -fpic diff --git a/gcc/config/bfin/t-bfin-uclinux b/gcc/config/bfin/t-bfin-uclinux index 9990c0d4f2b..a46d7b3ac15 100644 --- a/gcc/config/bfin/t-bfin-uclinux +++ b/gcc/config/bfin/t-bfin-uclinux @@ -1,4 +1,4 @@ -# Copyright (C) 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,16 +22,6 @@ LIB1ASMSRC = bfin/lib1funcs.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart LIB1ASMFUNCS += _smulsi3_highpart -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - CRTSTUFF_T_CFLAGS = -fpic TARGET_LIBGCC2_CFLAGS = -fpic diff --git a/gcc/config/cris/t-cris b/gcc/config/cris/t-cris index 1630acbcc24..19d44ce8320 100644 --- a/gcc/config/cris/t-cris +++ b/gcc/config/cris/t-cris @@ -3,7 +3,7 @@ # # The Makefile fragment to include when compiling gcc et al for CRIS. # -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -28,23 +28,6 @@ LIB2FUNCS_EXTRA = _udivsi3.c _divsi3.c _umodsi3.c _modsi3.c CRIS_LIB1CSRC = $(srcdir)/config/cris/arit.c -FPBIT = tmplibgcc_fp_bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' > dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -# Use another name to avoid confusing SUN make, if support for -# it is reinstated elsewhere. Prefixed with "tmplibgcc" means -# "make clean" will wipe it. We define a few L_ thingies -# because we can't select them individually through FPBIT_FUNCS; -# see above. -tmplibgcc_fp_bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' > $@ - echo '#define FLOAT' >> $@ - cat $(srcdir)/config/fp-bit.c >> $@ - # The fixed-point arithmetic code is in one file, arit.c, # similar to libgcc2.c (or the old libgcc1.c). We need to # "split it up" with one file per define. diff --git a/gcc/config/fr30/t-fr30 b/gcc/config/fr30/t-fr30 index 0270292231c..fa786d6e50a 100644 --- a/gcc/config/fr30/t-fr30 +++ b/gcc/config/fr30/t-fr30 @@ -1,4 +1,4 @@ -# Copyright (C) 1999, 2001, 2007 Free Software Foundation, Inc. +# Copyright (C) 1999, 2001, 2007, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -26,22 +26,10 @@ $(T)crti.o: $(srcdir)/config/fr30/crti.asm $(GCC_PASSES) $(T)crtn.o: $(srcdir)/config/fr30/crtn.asm $(GCC_PASSES) $(GCC_FOR_TARGET) -c -o $(T)crtn.o -x assembler $(srcdir)/config/fr30/crtn.asm -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - # If any special flags are necessary when building libgcc2 put them here. # # TARGET_LIBGCC2_CFLAGS -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # Enable the following if multilibs are needed. # See gcc/genmultilib, gcc/gcc.texi and gcc/tm.texi for a # description of the options and their values. diff --git a/gcc/config/frv/t-frv b/gcc/config/frv/t-frv index 2729008879c..395a679747a 100644 --- a/gcc/config/frv/t-frv +++ b/gcc/config/frv/t-frv @@ -27,23 +27,9 @@ LIB1ASMSRC = frv/lib1funcs.asm LIB1ASMFUNCS = _cmpll _cmpf _cmpd _addll _subll _andll _orll _xorll _notll _cmov LIB2FUNCS_EXTRA = cmovh.c cmovw.c cmovd.c modi.c umodi.c uitof.c uitod.c ulltof.c ulltod.c -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - # If any special flags are necessary when building libgcc2 put them here. TARGET_LIBGCC2_CFLAGS = -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#include "config/frv/frv-abi.h"' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#include "config/frv/frv-abi.h"' > dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - cmovh.c: $(srcdir)/config/frv/cmovh.c $(LN_S) $(srcdir)/config/frv/cmovh.c . diff --git a/gcc/config/h8300/t-h8300 b/gcc/config/h8300/t-h8300 index 57015788748..616849007b4 100644 --- a/gcc/config/h8300/t-h8300 +++ b/gcc/config/h8300/t-h8300 @@ -1,5 +1,5 @@ # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, -# 2004 Free Software Foundation, Inc. +# 2004, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -31,21 +31,6 @@ LIB2FUNCS_EXTRA = \ # We do not have DF type, so fake out the libgcc2 compilation. TARGET_LIBGCC2_CFLAGS = -DDF=SF -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#define FLOAT_ONLY' >> fp-bit.c - echo '#define SMALL_MACHINE' >> fp-bit.c - echo '#ifdef __H8300__' >> fp-bit.c - echo '#define CMPtype HItype' >> fp-bit.c - echo '#else' >> fp-bit.c - echo '#define CMPtype SItype' >> fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - MULTILIB_OPTIONS = mh/ms/msx mn mint32 MULTILIB_DIRNAMES = h8300h h8300s h8sx normal int32 MULTILIB_EXCEPTIONS = mint32 mn mn/mint32 diff --git a/gcc/config/iq2000/t-iq2000 b/gcc/config/iq2000/t-iq2000 index 0f28f7458c0..03d8c703f86 100644 --- a/gcc/config/iq2000/t-iq2000 +++ b/gcc/config/iq2000/t-iq2000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003, 2010 Free Software Foundation, Inc. +# Copyright (C) 2003, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -23,18 +23,6 @@ CROSS_LIBGCC1 = LIB2FUNCS_EXTRA = $(srcdir)/config/udivmod.c $(srcdir)/config/divmod.c $(srcdir)/config/udivmodsi4.c $(srcdir)/config/iq2000/lib2extra-funcs.c -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # Enable the following if multilibs are needed. # See gcc/genmultilib, gcc/gcc.texi and gcc/tm.texi for a # description of the options and their values. diff --git a/gcc/config/m32c/t-m32c b/gcc/config/m32c/t-m32c index 30b8f6f0b45..e39fdf3a0aa 100644 --- a/gcc/config/m32c/t-m32c +++ b/gcc/config/m32c/t-m32c @@ -1,5 +1,5 @@ # Target Makefile Fragment for R8C/M16C/M32C -# Copyright (C) 2005, 2006, 2007, 2008, 2009 +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 # Free Software Foundation, Inc. # Contributed by Red Hat. # @@ -31,18 +31,6 @@ LIB1ASMFUNCS = \ LIB2FUNCS_EXTRA = $(srcdir)/config/m32c/m32c-lib2.c $(srcdir)/config/m32c/m32c-lib2-trapv.c -# floating point emulation libraries - -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # target-specific files md_file = md diff --git a/gcc/config/m32r/t-linux b/gcc/config/m32r/t-linux index dc8c8c4d267..6de9c781a67 100644 --- a/gcc/config/m32r/t-linux +++ b/gcc/config/m32r/t-linux @@ -1,4 +1,4 @@ -# Copyright (C) 2003, 2004, 2009 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2009, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -19,23 +19,11 @@ # lib1funcs.asm is currently empty. CROSS_LIBGCC1 = -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... - -LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c - # Turn off the SDA while compiling libgcc2. There are no headers for it # and we want maximal upward compatibility here. TARGET_LIBGCC2_CFLAGS = -G 0 -fPIC -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # We need to use -fpic when we are using gcc to compile the routines in # initfini.c. This is only really needed when we are going to use gcc/g++ # to produce a shared library, but since we don't know ahead of time when diff --git a/gcc/config/m32r/t-m32r b/gcc/config/m32r/t-m32r index 17e1e3145c5..44090658838 100644 --- a/gcc/config/m32r/t-m32r +++ b/gcc/config/m32r/t-m32r @@ -1,4 +1,5 @@ -# Copyright (C) 1997, 1998, 1999, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 1998, 1999, 2001, 2003, 2011 +# Free Software Foundation, Inc. # # This file is part of GCC. # @@ -16,23 +17,11 @@ # along with GCC; see the file COPYING3. If not see # . -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - # Turn off the SDA while compiling libgcc2. There are no headers for it # and we want maximal upward compatibility here. TARGET_LIBGCC2_CFLAGS = -G 0 -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # We need to use -fpic when we are using gcc to compile the routines in # initfini.c. This is only really needed when we are going to use gcc/g++ # to produce a shared library, but since we don't know ahead of time when diff --git a/gcc/config/mcore/t-mcore b/gcc/config/mcore/t-mcore index 8277239688e..5533211a5d2 100644 --- a/gcc/config/mcore/t-mcore +++ b/gcc/config/mcore/t-mcore @@ -1,4 +1,4 @@ -# Copyright (C) 2000, 2001, 2008 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -28,22 +28,6 @@ $(T)crtn.o: $(srcdir)/config/mcore/crtn.asm $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mcore/crtn.asm -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/mcore/t-mcore - rm -f dp-bit.c - echo '' > dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/mcore/t-mcore - rm -f fp-bit.c - echo '' > fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # could use -msifilter to be safe from interrupt/jmp interactions and others. TARGET_LIBGCC2_CFLAGS=-O3 -DNO_FLOATLIB_FIXUNSDFSI #-msifilter diff --git a/gcc/config/mep/t-mep b/gcc/config/mep/t-mep index fac6dad4239..29c75457241 100644 --- a/gcc/config/mep/t-mep +++ b/gcc/config/mep/t-mep @@ -1,6 +1,6 @@ # -*- makefile -*- # GCC makefile fragment for MeP -# Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010 +# Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010, 2011 # Free Software Foundation, Inc. # Contributed by Red Hat Inc # @@ -54,18 +54,6 @@ LIB2FUNCS_EXTRA = \ $(srcdir)/config/mep/mep-lib2.c \ $(srcdir)/config/mep/mep-tramp.c -# floating point emulation libraries - -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - MULTILIB_OPTIONS = mel mall-opts mfar MULTILIB_DIRNAMES = el allopt far diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze index 021dbbe3e76..8c8767f9baa 100644 --- a/gcc/config/microblaze/t-microblaze +++ b/gcc/config/microblaze/t-microblaze @@ -14,17 +14,6 @@ microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/microblaze/microblaze-c.c -# Build soft FP routines. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - # Assemble startup files $(T)crti$(objext): $(srcdir)/config/microblaze/crti.s $(GCC_FOR_TARGET) -c $(srcdir)/config/microblaze/crti.s -o $(T)crti$(objext) diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 index 326e6465afe..e23743d3cb0 100644 --- a/gcc/config/mips/t-linux64 +++ b/gcc/config/mips/t-linux64 @@ -1,4 +1,4 @@ -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -25,15 +25,3 @@ endif MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o - -TPBIT = tp-bit.c - -tp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifdef __MIPSEL__' > tp-bit.c - echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c - echo '#endif' >> tp-bit.c - echo '#if __LDBL_MANT_DIG__ == 113' >> tp-bit.c - echo '#define QUIET_NAN_NEGATED' >> tp-bit.c - echo '# define TFLOAT' >> tp-bit.c - cat $(srcdir)/config/fp-bit.c >> tp-bit.c - echo '#endif' >> tp-bit.c diff --git a/gcc/config/mips/t-mips b/gcc/config/mips/t-mips index 521738a9445..53993e9d3c0 100644 --- a/gcc/config/mips/t-mips +++ b/gcc/config/mips/t-mips @@ -16,28 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifdef __MIPSEL__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c - echo '#endif' >> dp-bit.c - echo '#define QUIET_NAN_NEGATED' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifdef __MIPSEL__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#endif' >> fp-bit.c - echo '#define QUIET_NAN_NEGATED' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - LIB2_SIDITI_CONV_FUNCS=yes $(srcdir)/config/mips/mips-tables.opt: $(srcdir)/config/mips/genopt.sh \ diff --git a/gcc/config/mips/t-sdemtk b/gcc/config/mips/t-sdemtk index 40a8294fd6b..decbcf3101c 100644 --- a/gcc/config/mips/t-sdemtk +++ b/gcc/config/mips/t-sdemtk @@ -1,4 +1,4 @@ -# Copyright (C) 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -38,7 +38,3 @@ stmp-sdefixinc: gsyslimits.h cp $(srcdir)/gsyslimits.h include/syslimits.h chmod a+r include/syslimits.h $(STAMP) stmp-sdefixinc - -# Don't build FPBIT and DPBIT; we'll be using the SDE soft-float library. -FPBIT = -DPBIT = diff --git a/gcc/config/mips/t-sr71k b/gcc/config/mips/t-sr71k index 5eb96a12e43..44b69402e62 100644 --- a/gcc/config/mips/t-sr71k +++ b/gcc/config/mips/t-sr71k @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2003, 2010 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -38,26 +38,6 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES) # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifdef __MIPSEL__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifdef __MIPSEL__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Build the libraries for both hard and soft floating point MULTILIB_OPTIONS = EL/EB msoft-float mips2 diff --git a/gcc/config/mn10300/t-linux b/gcc/config/mn10300/t-linux deleted file mode 100644 index 61ed88e663e..00000000000 --- a/gcc/config/mn10300/t-linux +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2003 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c diff --git a/gcc/config/mn10300/t-mn10300 b/gcc/config/mn10300/t-mn10300 index eeefeb602a2..c62c56f2013 100644 --- a/gcc/config/mn10300/t-mn10300 +++ b/gcc/config/mn10300/t-mn10300 @@ -1,5 +1,5 @@ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, -# 2003, 2010 Free Software Foundation, Inc. +# 2003, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -17,18 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - MULTILIB_OPTIONS = mam33/mam33-2/mam34 MULTILIB_DIRNAMES = am33 am33-2 am34 diff --git a/gcc/config/pdp11/t-pdp11 b/gcc/config/pdp11/t-pdp11 index 67441a0d20e..032084b381b 100644 --- a/gcc/config/pdp11/t-pdp11 +++ b/gcc/config/pdp11/t-pdp11 @@ -1,5 +1,5 @@ # Copyright (C) 1995, 1997, 1998, 2001, 2002, -# 2004, 2010 Free Software Foundation, Inc. +# 2004, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -21,17 +21,6 @@ TARGET_LIBGCC2_CFLAGS = -O2 -mfloat32 LIB2FUNCS_EXTRA = $(srcdir)/config/udivmod.c $(srcdir)/config/udivmodsi4.c \ $(srcdir)/config/memcmp.c $(srcdir)/config/memcpy.c \ $(srcdir)/config/memmove.c $(srcdir)/config/memset.c -# floating point emulation libraries - -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c MULTILIB_OPTIONS = msoft-float diff --git a/gcc/config/picochip/t-picochip b/gcc/config/picochip/t-picochip index 4df74a01fc6..222d7a646b9 100644 --- a/gcc/config/picochip/t-picochip +++ b/gcc/config/picochip/t-picochip @@ -61,16 +61,3 @@ MULTILIB_OPTIONS = mmul-type=none/mmul-type=mac/mmul-type=mul mno-byte-access/mb # Using a mul unit (currently) implies that byte access is available. MULTILIB_EXCEPTIONS = mmul-type=mul/mno-byte-access - -# We want fine grained libraries, so use the new code -# to build the floating point emulation libraries. -FPBIT = fp-bit.c - -# Software floating point support. Floating point is not properly -# supported, but is existence can be useful for some types of testing. -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#define FLOAT_ONLY' >> fp-bit.c - echo '#define SMALL_MACHINE' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43 index 705e053122d..4e38ece4678 100644 --- a/gcc/config/rs6000/t-aix43 +++ b/gcc/config/rs6000/t-aix43 @@ -1,5 +1,5 @@ # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, -# 2006 Free Software Foundation, Inc. +# 2006, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -17,18 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Build the libraries for pthread and all of the # different processor models @@ -86,8 +74,7 @@ SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc SHLIB_NM_FLAGS = -Bpg -X32_64 # GCC 128-bit long double support routines. -LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \ - $(srcdir)/config/rs6000/darwin-ldouble.c +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c TARGET_LIBGCC2_CFLAGS = -mlong-double-128 # Either 32-bit and 64-bit objects in archives. diff --git a/gcc/config/rs6000/t-aix52 b/gcc/config/rs6000/t-aix52 index e918a2e13a1..3ef61e9cf0f 100644 --- a/gcc/config/rs6000/t-aix52 +++ b/gcc/config/rs6000/t-aix52 @@ -1,5 +1,5 @@ # Copyright (C) 2002, 2003, 2004, 2005, 2006, -# 2008 Free Software Foundation, Inc. +# 2008, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -17,18 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Build the libraries for pthread and all of the # different processor models @@ -67,8 +55,7 @@ SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc SHLIB_NM_FLAGS = -Bpg -X32_64 # GCC 128-bit long double support routines. -LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \ - $(srcdir)/config/rs6000/darwin-ldouble.c +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c TARGET_LIBGCC2_CFLAGS = -mlong-double-128 # Either 32-bit and 64-bit objects in archives. diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin index 27fc07b69b3..4ba07a14867 100644 --- a/gcc/config/rs6000/t-darwin +++ b/gcc/config/rs6000/t-darwin @@ -18,7 +18,6 @@ # . LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-tramp.asm \ - $(srcdir)/config/rs6000/ppc64-fp.c \ $(srcdir)/config/darwin-64.c \ $(srcdir)/config/rs6000/darwin-ldouble.c \ $(srcdir)/config/rs6000/darwin-world.asm diff --git a/gcc/config/rs6000/t-fprules-fpbit b/gcc/config/rs6000/t-fprules-fpbit deleted file mode 100644 index a6c7246fa93..00000000000 --- a/gcc/config/rs6000/t-fprules-fpbit +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2006 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 index 6a2235ff11a..3ae05fdad7b 100644 --- a/gcc/config/rs6000/t-linux64 +++ b/gcc/config/rs6000/t-linux64 @@ -1,7 +1,7 @@ #rs6000/t-linux64 # Copyright (C) 2002, 2003, 2004, 2006, 2007, -# 2009 Free Software Foundation, Inc. +# 2009, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -19,9 +19,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB2FUNCS_EXTRA += $(srcdir)/config/rs6000/ppc64-fp.c -LIB2FUNCS_EXTRA := $(sort $(LIB2FUNCS_EXTRA)) - TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc # On Debian, Ubuntu and other derivative distributions, the 32bit libraries diff --git a/gcc/config/rs6000/t-lynx b/gcc/config/rs6000/t-lynx index 4befd5e7df5..768856e06eb 100644 --- a/gcc/config/rs6000/t-lynx +++ b/gcc/config/rs6000/t-lynx @@ -1,4 +1,4 @@ -# Copyright (C) 2004 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -21,16 +21,6 @@ LIB2FUNCS_EXTRA = tramp.S tramp.S: $(srcdir)/config/rs6000/tramp.asm cat $(srcdir)/config/rs6000/tramp.asm > tramp.S -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/rs6000/t-spe b/gcc/config/rs6000/t-spe index 480553c50ed..cbbac79f661 100644 --- a/gcc/config/rs6000/t-spe +++ b/gcc/config/rs6000/t-spe @@ -18,16 +18,6 @@ # along with GCC; see the file COPYING3. If not see # . -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/sh/t-netbsd b/gcc/config/sh/t-netbsd index b2794a00645..11bfe31458e 100644 --- a/gcc/config/sh/t-netbsd +++ b/gcc/config/sh/t-netbsd @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2004, 2009 Free Software Foundation, Inc. +# Copyright (C) 2002, 2004, 2009, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,10 +22,3 @@ LIB1ASMFUNCS_CACHE = _ic_invalidate LIB2FUNCS_EXTRA= EXTRA_MULTILIB_PARTS= - -# NetBSD's C library includes a fast software FP library that -# has support for setting/setting the rounding mode, exception -# mask, etc. Therefore, we don't want to include software FP -# in libgcc. -FPBIT = -DPBIT = diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh index 27cbd3d3e88..e63131a5348 100644 --- a/gcc/config/sh/t-sh +++ b/gcc/config/sh/t-sh @@ -31,24 +31,6 @@ LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array TARGET_LIBGCC2_CFLAGS = -mieee -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - DEFAULT_ENDIAN = $(word 1,$(TM_ENDIAN_CONFIG)) OTHER_ENDIAN = $(word 2,$(TM_ENDIAN_CONFIG)) diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf index 962d0009f9b..7073bcb7721 100644 --- a/gcc/config/sparc/t-elf +++ b/gcc/config/sparc/t-elf @@ -20,18 +20,6 @@ LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - MULTILIB_OPTIONS = msoft-float mcpu=v8 mflat MULTILIB_DIRNAMES = soft v8 flat MULTILIB_MATCHES = msoft-float=mno-fpu diff --git a/gcc/config/sparc/t-leon b/gcc/config/sparc/t-leon index e3ab3bc9893..4f9d0a9e797 100644 --- a/gcc/config/sparc/t-leon +++ b/gcc/config/sparc/t-leon @@ -1,4 +1,4 @@ -# Copyright (C) 2010 Free Software Foundation, Inc. +# Copyright (C) 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -19,18 +19,6 @@ LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Multilibs for LEON # LEON is a SPARC-V8, but the AT697 implementation has a bug in the # V8-specific instructions. diff --git a/gcc/config/sparc/t-leon3 b/gcc/config/sparc/t-leon3 index ce57d16751b..0e7e45cc594 100644 --- a/gcc/config/sparc/t-leon3 +++ b/gcc/config/sparc/t-leon3 @@ -1,4 +1,4 @@ -# Copyright (C) 2010 Free Software Foundation, Inc. +# Copyright (C) 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -16,18 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Multilibs for LEON3 MULTILIB_OPTIONS = msoft-float MULTILIB_DIRNAMES = soft diff --git a/gcc/config/spu/t-spu-elf b/gcc/config/spu/t-spu-elf index ab680f5be88..3f9510112f7 100644 --- a/gcc/config/spu/t-spu-elf +++ b/gcc/config/spu/t-spu-elf @@ -30,10 +30,6 @@ TARGET_LIBGCC2_CFLAGS = -fPIC -mwarn-reloc -D__IN_LIBGCC2 # own versions below and/or via direct expansion. LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf _floattisf _floatunstisf -# We provide our own version of __divdf3 that performs better and has -# better support for non-default rounding modes. -DPBIT_FUNCS := $(filter-out _div_df, $(DPBIT_FUNCS)) - LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/spu/float_unssidf.c \ $(srcdir)/config/spu/float_unsdidf.c \ $(srcdir)/config/spu/float_unsdisf.c \ @@ -47,18 +43,6 @@ LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/spu/float_unssidf.c \ $(srcdir)/config/spu/divmodti4.c \ $(srcdir)/config/spu/divv2df3.c -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf - cat $(srcdir)/config/fp-bit.c > dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Build TImode conversion routines to support Fortran 128-bit # integer data types. LIB2_SIDITI_CONV_FUNCS=yes diff --git a/gcc/config/stormy16/t-stormy16 b/gcc/config/stormy16/t-stormy16 index 62b4e9fa1b0..c2b6c2a5573 100644 --- a/gcc/config/stormy16/t-stormy16 +++ b/gcc/config/stormy16/t-stormy16 @@ -1,6 +1,6 @@ # -*- makefile -*- # -# Copyright (C) 2001, 2004, 2010 Free Software Foundation, Inc. +# Copyright (C) 2001, 2004, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -36,15 +36,4 @@ LIB2FUNCS_EXTRA = \ $(srcdir)/config/stormy16/stormy16-lib2-cmpsi2.c \ $(srcdir)/config/stormy16/stormy16-lib2-ucmpsi2.c -# Floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c - TARGET_LIBGCC2_CFLAGS = -O2 diff --git a/gcc/config/v850/t-v850 b/gcc/config/v850/t-v850 index 076b00d60ff..fcd3b841e30 100644 --- a/gcc/config/v850/t-v850 +++ b/gcc/config/v850/t-v850 @@ -1,5 +1,5 @@ -# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2008, 2009, 2010 -# Free Software Foundation, Inc. +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -78,24 +78,6 @@ LIB1ASMFUNCS = _mulsi3 \ _ucmpdi2 \ _muldi3 -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c - echo '#endif' >> dp-bit.c - cat $(srcdir)/config/fp-bit.c >> dp-bit.c - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c - echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c - echo '#endif' >> fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - # Create target-specific versions of the libraries MULTILIB_OPTIONS = mv850/mv850e/mv850e2/mv850e2v3 MULTILIB_DIRNAMES = v850 v850e v850e2 v850e2v3 diff --git a/gcc/doc/fragments.texi b/gcc/doc/fragments.texi index ff89d513d49..28edae98e67 100644 --- a/gcc/doc/fragments.texi +++ b/gcc/doc/fragments.texi @@ -49,29 +49,6 @@ Compiler flags to use when compiling @file{libgcc2.c}. A list of source file names to be compiled or assembled and inserted into @file{libgcc.a}. -@findex Floating Point Emulation -@item Floating Point Emulation -To have GCC include software floating point libraries in @file{libgcc.a} -define @code{FPBIT} and @code{DPBIT} along with a few rules as follows: -@smallexample -# We want fine grained libraries, so use the new code -# to build the floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - - -fp-bit.c: $(srcdir)/config/fp-bit.c - echo '#define FLOAT' > fp-bit.c - cat $(srcdir)/config/fp-bit.c >> fp-bit.c - -dp-bit.c: $(srcdir)/config/fp-bit.c - cat $(srcdir)/config/fp-bit.c > dp-bit.c -@end smallexample - -You may need to provide additional #defines at the beginning of @file{fp-bit.c} -and @file{dp-bit.c} to control target endianness and other options. - - @findex CRTSTUFF_T_CFLAGS @item CRTSTUFF_T_CFLAGS Special flags used when compiling @file{crtstuff.c}. diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 610ca9ba7d0..755812872e7 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2011-08-05 Rainer Orth + + * EXCLUDES (config/fp-bit.c, config/fp-bit.h): Remove. + 2011-08-05 Rainer Orth * EXCLUDES (unwind-c.c, unwind-dw2-fde-darwin.c) diff --git a/gcc/po/EXCLUDES b/gcc/po/EXCLUDES index 12fced15f72..5a4ad770973 100644 --- a/gcc/po/EXCLUDES +++ b/gcc/po/EXCLUDES @@ -22,8 +22,6 @@ # .def are examined to begin with. # These files are part of libgcc, or target headers provided by gcc. -config/fp-bit.c -config/fp-bit.h config/vxlib.c crtstuff.c gbl-ctors.h diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 65d47a80278..00c4fa63b7b 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,115 @@ +2011-08-05 Rainer Orth + + * Makefile.in (double_type_size, long_double_type_size): Set. + Remove $(fpbit-in-libgcc) support. + (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): New variables. + (fpbit-src): New variable. + ($(fpbit-o), $(fpbit-s-o)): Use $(fpbit-src) instead of $(FPBIT). + Compile with -DFLOAT $(FPBIT_CFLAGS). + Use $<. + ($(dpbit-o), $(dpbit-s-o)): Use $(fpbit-src) instead of $(DPBIT). + Compile with $(FPBIT_CFLAGS). + Use $<. + ($(tpbit-o), $(tpbit-s-o): Use $(fpbit-src) instead of $(TPBIT). + Compile with -DFLOAT $(TPBIT_CFLAGS). + Use $<. + * configure.ac (double_type_size, long_double_type_size): + Determine and substitute. + * configure: Regenerate. + * fp-bit.c, fp-bit.h: New files. + * config/avr/avr-lib.h, config/h8300/h8300-lib.h: New files. + * config/mips/t-irix6 (TPBIT, $(gcc_objdir)/tp-bit.c): Remove. + * config/mips/t-mips: New file. + * config/mips/t-sdemtk: New file. + * config/rs6000/ppc64-fp.c: New file. + * config/rs6000/t-darwin (LIB2ADD): Add + $(srcdir)/config/rs6000/ppc64-fp.c. + * config/rs6000/t-ppc64-fp: New file. + * config/rx/rx-lib.h: New file. + * config/rx/t-rx (FPBIT): Set to true. + ($(gcc_objdir)/fp-bit.c): Remove. + (DPBIT): Set to true only with -m64bit-doubles. + ($(gcc_objdir)/dp-bit.c): Remove. + * config/sparc/t-softfp: Remove. + * config/spu/t-elf: New file. + * config/t-fdpbit, config/t-fpbit: New files. + * config.host (m32c*-*-*): Add t-fdpbit to tmake_file. + (mips*-*-*): Likewise. + (arm-wrs-vxworks): Likewise. + (arm*-*-freebsd*): Likewise. + (avr-*-rtems*): Add t-fpbit to tmake_file. + (avr-*-*): Likewise. + (bfin*-elf*): Add t-fdpbit to tmake_file. + (bfin*-uclinux*): Likewise. + (bfin*-linux-uclibc*): Likewise. + (bfin*-rtems*): New case. + Add t-fdpbit to tmake_file. + (bfin*-*): Add t-fdpbit to tmake_file. + (crisv32-*-elf): Likewise. + (cris-*-linux*): Likewise. + (fr30-*-elf): Likewise. + (frv-*-elf, frv-*-*linux*): Likewise. + (h8300-*-rtems*, h8300-*-elf*): Add t-fpbit to tmake_file. + (iq2000*-*-elf*): Add t-fdpbit to tmake_file. + (m32r-*-elf*): Likewise. + (m32rle-*-elf*): Likewise. + (m32r-*-linux*): Likewise. + (m32rle-*-linux*): Likewise. + (mcore-*-elf): Add t-fdpbit to tmake_file. + (microblaze*-*-*): Likewise. + (mips-sgi-irix6.5*): Add t-tpbit to tmake_file. + (mips*-*-netbsd*): Add mips/t-mips to tmake_file. + (mips64*-*-linux*): Also handle mipsisa64*-*-linux*. + Fix typo. + Add mips/t-tpbit to tmake-file. + (mips*-*-linux*): Fix typo. + (mips*-sde-elf*): New case + Add mips/t-sdemtk unless using newlib. + (mipsisa64sr71k-*-elf*): Add t-fdpbit to tmake_file. + (mipsisa64sb1-*-elf*): Add mips/t-mips to tmake_file. + (mn10300-*-*): Likewise. + (pdp11-*-*): Likewise. + (picochip-*-*): Add t-fpbit to tmake_file. + (powerpc-*-eabisimaltivec*): Likewise. + (powerpc-*-eabisim*): Likewise. + (powerpc-*-elf*): Likewise. + (powerpc-*-eabialtivec*): Likewise. + (powerpc-xilinx-eabi*): New case. + Add t-fdpbit to tmake_file. + (powerpc-*-eabi*): Add t-fdpbit to tmake_file. + (powerpc-*-rtems*): Likewise. + (powerpc-*-linux*, powerpc64-*-linux*): Add rs6000/t-ppc64-fp to + tmake_file. + (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add t-fdpbit to + tmake_file. + (powerpc-*-lynxos*): Likewise. + (powerpcle-*-elf*): Likewise. + (powerpcle-*-eabisim*): Likewise. + (powerpcle-*-eabi*): Likewise. + (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add + t-fdpbit, rs6000/t-ppc64-fp to tmake_file. + (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. + (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. + (rx-*-elf): Add t-fdpbit to tmake_file. + (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) + (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) + (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) + (sh64l*-*-netbsd*): Add t-fdpbit to tmake_file except on + sh*-*-netbsd*. + (sh-*-rtems*): Add t-fdpbit to tmake_file. + (sh-wrs-vxworks): Likewise. + (sparc-*-elf*): Replace sparc/t-softfp by t-fdpbit in tmake_file. + (sparc-*-linux*): Add t-fdpbit to tmake_file for *-leon*. + (sparc-*-rtems*, sparc64-*-rtems*): Split off ... + (sparc64-*-rtems*): ... new case. + (sparc-*-rtems*): Add t-fdpbit to tmake_file. + (spu-*-elf*): Likewise. + Add spu/t-elf to tmake_file. + (v850*-*-*): Add t-fdpbit to tmake_file. + (xstormy16-*-elf): Likewise. + (am33_2.0-*-linux*): Add t-fdpbit to tmake_file. + (mep*-*-*): Likewise. + 2011-08-05 Rainer Orth * Makefile.in (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): New diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index c252d9a2217..4a75a37048e 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -37,6 +37,8 @@ SHELL = @SHELL@ cpu_type = @cpu_type@ enable_shared = @enable_shared@ +double_type_size = @double_type_size@ +long_double_type_size = @long_double_type_size@ decimal_float = @decimal_float@ enable_decimal_float = @enable_decimal_float@ fixed_point = @fixed_point@ @@ -256,6 +258,21 @@ LIBGCC_VER_GNU_PREFIX = __ LIBGCC_VER_FIXEDPOINT_GNU_PREFIX = __ LIBGCC_VER_SYMBOLS_PREFIX = +FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \ + _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ + _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \ + _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf + +DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ + _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \ + _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ + _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df + +TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \ + _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \ + _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \ + _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf + # Additional sources to handle exceptions; overridden by targets as needed. LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c @@ -445,34 +462,25 @@ $(lib2-divmod-s-o): %_s$(objext): $(gcc_srcdir)/libgcc2.c libgcc-s-objects += $(lib2-divmod-s-o) endif -# $(FPBIT) et al. are pathnames relative to the GCC build -# directory; the supporting files are made by the GCC -# Makefile. -# FIXME: Soon we will be able to move this logic into this directory. - -ifneq ($(fpbit-in-libgcc),yes) -FPBIT:=$(if $(FPBIT),$(gcc_objdir)/$(FPBIT),) -DPBIT:=$(if $(DPBIT),$(gcc_objdir)/$(DPBIT),) -TPBIT:=$(if $(TPBIT),$(gcc_objdir)/$(TPBIT),) -endif - ifeq ($(TPBIT),) # _sf_to_tf and _df_to_tf require tp-bit.c being compiled in. FPBIT_FUNCS := $(filter-out _sf_to_tf,$(FPBIT_FUNCS)) DPBIT_FUNCS := $(filter-out _df_to_tf,$(DPBIT_FUNCS)) endif +fpbit-src := $(srcdir)/fp-bit.c + # Build FPBIT. ifneq ($(FPBIT),) fpbit-o = $(patsubst %,%$(objext),$(FPBIT_FUNCS)) -$(fpbit-o): %$(objext): $(FPBIT) - $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(FPBIT) $(vis_hide) +$(fpbit-o): %$(objext): $(fpbit-src) + $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DFLOAT $(FPBIT_CFLAGS) -c $< $(vis_hide) libgcc-objects += $(fpbit-o) ifeq ($(enable_shared),yes) fpbit-s-o = $(patsubst %,%_s$(objext),$(FPBIT_FUNCS)) -$(fpbit-s-o): %_s$(objext): $(FPBIT) - $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(FPBIT) +$(fpbit-s-o): %_s$(objext): $(fpbit-src) + $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DFLOAT $(FPBIT_CFLAGS) -c $< libgcc-s-objects += $(fpbit-s-o) endif endif @@ -480,14 +488,14 @@ endif # Build DPBIT. ifneq ($(DPBIT),) dpbit-o = $(patsubst %,%$(objext),$(DPBIT_FUNCS)) -$(dpbit-o): %$(objext): $(DPBIT) - $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(DPBIT) $(vis_hide) +$(dpbit-o): %$(objext): $(fpbit-src) + $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* $(DPBIT_CFLAGS) -c $< $(vis_hide) libgcc-objects += $(dpbit-o) ifeq ($(enable_shared),yes) dpbit-s-o = $(patsubst %,%_s$(objext),$(DPBIT_FUNCS)) -$(dpbit-s-o): %_s$(objext): $(DPBIT) - $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(DPBIT) +$(dpbit-s-o): %_s$(objext): $(fpbit-src) + $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* $(DPBIT_CFLAGS) -c $< libgcc-s-objects += $(dpbit-s-o) endif endif @@ -495,14 +503,14 @@ endif # Build TPBIT. ifneq ($(TPBIT),) tpbit-o = $(patsubst %,%$(objext),$(TPBIT_FUNCS)) -$(tpbit-o): %$(objext): $(TPBIT) - $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(TPBIT) $(vis_hide) +$(tpbit-o): %$(objext): $(fpbit-src) + $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DTFLOAT $(TPBIT_CFLAGS) -c $< $(vis_hide) libgcc-objects += $(tpbit-o) ifeq ($(enable_shared),yes) tpbit-s-o = $(patsubst %,%_s$(objext),$(TPBIT_FUNCS)) -$(tpbit-s-o): %_s$(objext): $(TPBIT) - $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(TPBIT) +$(tpbit-s-o): %_s$(objext): $(fpbit-src) + $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DTFLOAT $(TPBIT_CFLAGS) -c $< libgcc-s-objects += $(tpbit-s-o) endif endif diff --git a/libgcc/config.host b/libgcc/config.host index db00c4c2d8c..cd4f054336b 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -72,6 +72,7 @@ cpu_type=`echo ${host} | sed 's/-.*$//'` case ${host} in m32c*-*-*) cpu_type=m32c + tmake_file=t-fdpbit ;; alpha*-*-*) cpu_type=alpha @@ -121,6 +122,7 @@ microblaze*-*-*) ;; mips*-*-*) cpu_type=mips + tmake_file=mips/t-mips ;; powerpc*-*-*) cpu_type=rs6000 @@ -265,8 +267,10 @@ alpha*-dec-*vms*) md_unwind_header=alpha/vms-unwind.h ;; arm-wrs-vxworks) + tmake_file=t-fdpbit ;; arm*-*-freebsd*) + tmake_file=t-fdpbit ;; arm*-*-netbsdelf*) ;; @@ -309,40 +313,56 @@ arm*-*-elf) arm*-wince-pe*) ;; avr-*-rtems*) + tmake_file=t-fpbit ;; avr-*-*) - # Make HImode functions for AVR - tmake_file=${cpu_type}/t-avr + # Make HImode functions for AVR + tmake_file="${cpu_type}/t-avr t-fpbit" + ;; bfin*-elf*) + tmke_file=t-fdpbit ;; bfin*-uclinux*) + tmake_file=t-fdpbit md_unwind_header=bfin/linux-unwind.h ;; bfin*-linux-uclibc*) + tmake_file=t-fdpbit # No need to build crtbeginT.o on uClibc systems. Should probably # be moved to the OS specific section above. extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" md_unwind_header=bfin/linux-unwind.h ;; +bfin*-rtems*) + tmake_file=t-fdpbit + ;; bfin*-*) + tmake_file=t-fdpbit ;; crisv32-*-elf | crisv32-*-none | cris-*-elf | cris-*-none) + tmake_file=t-fdpbit extra_parts="crtbegin.o crtend.o" ;; cris-*-linux* | crisv32-*-linux*) + tmake_file=t-fdpbit ;; fido-*-elf) ;; fr30-*-elf) + tmake_file=t-fdpbit ;; frv-*-elf) + tmake_file=t-fdpbit ;; frv-*-*linux*) + tmake_file=t-fdpbit ;; h8300-*-rtems*) + tmake_file=t-fpbit ;; h8300-*-elf*) + tmake_file=t-fpbit ;; hppa*64*-*-linux*) ;; @@ -458,6 +478,7 @@ ia64-hp-*vms*) md_unwind_header=ia64/vms-unwind.h ;; iq2000*-*-elf*) + tmake_file=t-fdpbit ;; lm32-*-elf*|lm32-*-rtems*) extra_parts="crtbegin.o crtend.o crti.o crtn.o" @@ -468,12 +489,16 @@ lm32-*-uclinux*) tmake_file="lm32/t-lm32 lm32/t-uclinux t-softfp" ;; m32r-*-elf*|m32r-*-rtems*) + tmake_file=t-fdpbit ;; m32rle-*-elf*) + tmake_file=t-fdpbit ;; m32r-*-linux*) + tmake_file=t-fdpbit ;; m32rle-*-linux*) + tmake_file=t-fdpbit ;; m68k-*-elf*) ;; @@ -492,29 +517,41 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux m68k-*-rtems*) ;; mcore-*-elf) + tmake_file=t-fdpbit ;; microblaze*-*-*) - tmake_file="microblaze/t-microblaze" + tmake_file="microblaze/t-microblaze t-fdpbit" ;; mips-sgi-irix6.5*) - tmake_file="mips/t-irix6 t-crtfm t-slibgcc mips/t-slibgcc-irix" + tmake_file="$tmake_file mips/t-irix6 t-crtfm mips/t-tpbit t-slibgcc mips/t-slibgcc-irix" extra_parts="crtbegin.o crtend.o crtfastmath.o irix-crti.o irix-crtn.o" md_unwind_header=mips/irix6-unwind.h ;; mips*-*-netbsd*) # NetBSD/mips, either endian. ;; -mips64*-*-linux*) +mips64*-*-linux* | mipsisa64*-*-linux*) extra_parts="$extra_parts crtfastmath.o" - tmake_file="{$tmake_file} t-crtfm" + tmake_file="${tmake_file} t-crtfm mips/t-tpbit" md_unwind_header=mips/linux-unwind.h ;; mips*-*-linux*) # Linux MIPS, either endian. extra_parts="$extra_parts crtfastmath.o" - tmake_file="{$tmake_file} t-crtfm" + tmake_file="${tmake_file} t-crtfm" md_unwind_header=mips/linux-unwind.h ;; mips*-*-openbsd*) ;; +mips*-sde-elf*) + case "${with_newlib}" in + yes) + # newlib / libgloss. + ;; + *) + # MIPS toolkit libraries. + tmake_file=mips/t-sdemtk + ;; + esac + ;; mipsisa32-*-elf* | mipsisa32el-*-elf*) ;; mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*) @@ -524,6 +561,7 @@ mipsisa64-*-elf* | mipsisa64el-*-elf*) mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*) ;; mipsisa64sr71k-*-elf*) + tmake_file=t-fdpbit ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) ;; @@ -546,15 +584,17 @@ mmix-knuth-mmixware) tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}" ;; mn10300-*-*) + tmake_file=t-fdpbit ;; moxie-*-*) tmake_file="moxie/t-moxie moxie/t-moxie-softfp" extra_parts="crtbegin.o crtend.o crti.o crtn.o" ;; pdp11-*-*) + tmake_file=t-fdpbit ;; picochip-*-*) - tmake_file=picochip/t-picochip + tmake_file="picochip/t-picochip t-fpbit" ;; powerpc-*-darwin*) case ${host} in @@ -580,44 +620,60 @@ powerpc-*-eabispe*) tmake_file="${tmake_file} rs6000/t-ppccomm" ;; powerpc-*-eabisimaltivec*) + tmake_file=t-fdpbit ;; powerpc-*-eabisim*) + tmake_file=t-fdpbit ;; powerpc-*-elf*) + tmake_file=t-fdpbit ;; powerpc-*-eabialtivec*) + tmake_file=t-fdpbit + ;; +powerpc-xilinx-eabi*) + tmake_file=t-fdpbit ;; powerpc-*-eabi*) - tmake_file="${tmake_file} rs6000/t-ppccomm" + tmake_file="${tmake_file} rs6000/t-ppccomm t-fdpbit" ;; powerpc-*-rtems*) + tmake_file=t-fdpbit ;; powerpc-*-linux* | powerpc64-*-linux*) - tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp t-dfprules" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp t-dfprules rs6000/t-ppc64-fp" md_unwind_header=rs6000/linux-unwind.h ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) + tmake_file=t-fdpbit ;; powerpc-*-lynxos*) + tmake_file=t-fdpbit ;; powerpcle-*-elf*) + tmake_file=t-fdpbit ;; powerpcle-*-eabisim*) + tmake_file=t-fdpbit ;; powerpcle-*-eabi*) + tmake_file=t-fdpbit ;; rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) md_unwind_header=rs6000/aix-unwind.h + tmake_file="t-fdpbit rs6000/t-ppc64-fp" ;; rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) md_unwind_header=rs6000/aix-unwind.h + tmake_file="t-fdpbit rs6000/t-ppc64-fp" ;; rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) md_unwind_header=rs6000/aix-unwind.h + tmake_file="t-fdpbit rs6000/t-ppc64-fp" ;; rx-*-elf) extra_parts="crtbegin.o crtend.o" - tmake_file="rx/t-rx" + tmake_file="rx/t-rx t-fdpbit" ;; s390-*-linux*) tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi" @@ -639,14 +695,25 @@ sh-*-elf* | sh[12346l]*-*-elf* | \ sh64-*-netbsd* | sh64l*-*-netbsd*) case ${host} in sh*-*-linux*) - tmake_file="${tmake_file} sh/t-linux" + tmake_file="${tmake_file} sh/t-linux t-fdpbit" md_unwind_header=sh/linux-unwind.h ;; + sh*-*-netbsd*) + # NetBSD's C library includes a fast software FP library that + # has support for setting/setting the rounding mode, exception + # mask, etc. Therefore, we don't want to include software FP + # in libgcc. + ;; + sh*-*-*) + tmake_file=t-fdpbit + ;; esac ;; sh-*-rtems*) + tmake_file=t-fdpbit ;; sh-wrs-vxworks) + tmake_file=t-fdpbit ;; sparc-*-netbsdelf*) ;; @@ -660,16 +727,21 @@ sparc-*-elf*) tmake_file="sparc/t-softmul" ;; esac - tmake_file="${tmake_file} sparc/t-softfp t-crtin t-crtfm" + tmake_file="${tmake_file} t-fdpbit t-crtin t-crtfm" extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" ;; sparc-*-linux*) # SPARC's running GNU/Linux, libc6 + case ${host} in + *-leon*) + tmake_file=t-fdpbit + ;; + esac extra_parts="$extra_parts crtfastmath.o" tmake_file="${tmake_file} t-crtfm" md_unwind_header=sparc/linux-unwind.h ;; -sparc-*-rtems* | sparc64-*-rtems* ) - tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems" +sparc-*-rtems*) + tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems t-fdpbit" extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" ;; sparc*-*-solaris2*) @@ -681,6 +753,10 @@ sparc64-*-elf*) tmake_file="${tmake_file} t-crtin t-crtfm" extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" ;; +sparc64-*-rtems*) + tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems" + extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" + ;; sparc-wrs-vxworks) ;; sparc64-*-freebsd*|ultrasparc-*-freebsd*) @@ -695,11 +771,13 @@ sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux sparc64-*-netbsd*) ;; spu-*-elf*) + tmake_file="t-fdpbit spu/t-elf" ;; tic6x-*-*) tmake_file="${tmake_file} t-gnu-prefix" ;; v850*-*-*) + tmake_file=t-fdpbit ;; vax-*-linux*) ;; @@ -708,6 +786,7 @@ vax-*-netbsdelf*) vax-*-openbsd*) ;; xstormy16-*-elf) + tmake_file=t-fdpbit ;; xtensa*-*-elf*) tmake_file=xtensa/t-xtensa @@ -718,10 +797,12 @@ xtensa*-*-linux*) ;; am33_2.0-*-linux*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + tmake_file=t-fdpbit ;; m32c-*-elf*|m32c-*-rtems*) ;; mep*-*-*) + tmake_file=t-fdpbit ;; *) echo "*** Configuration ${host} not supported" 1>&2 diff --git a/libgcc/config/avr/avr-lib.h b/libgcc/config/avr/avr-lib.h new file mode 100644 index 00000000000..daca4d81f9a --- /dev/null +++ b/libgcc/config/avr/avr-lib.h @@ -0,0 +1,6 @@ +#ifdef FLOAT +#define CMPtype QItype +#define DF SF +#define DI SI +typedef int QItype __attribute__ ((mode (QI))); +#endif diff --git a/libgcc/config/h8300/h8300-lib.h b/libgcc/config/h8300/h8300-lib.h new file mode 100644 index 00000000000..cff664a54ce --- /dev/null +++ b/libgcc/config/h8300/h8300-lib.h @@ -0,0 +1,7 @@ +#ifdef FLOAT +#ifdef __H8300__ +#define CMPtype HItype +#else +#define CMPtype SItype +#endif +#endif diff --git a/libgcc/config/mips/t-irix6 b/libgcc/config/mips/t-irix6 index 77dd41da276..c9bd3cdcb0a 100644 --- a/libgcc/config/mips/t-irix6 +++ b/libgcc/config/mips/t-irix6 @@ -22,15 +22,3 @@ irix-crti.o: $(srcdir)/config/mips/irix-crti.S irix-crtn.o: $(srcdir)/config/mips/irix-crtn.S $(crt_compile) -c $< - -TPBIT = tp-bit.c - -$(gcc_objdir)/tp-bit.c: $(gcc_srcdir)/config/fp-bit.c - echo '#ifdef __MIPSEL__' > $@ - echo '# define FLOAT_BIT_ORDER_MISMATCH' >> $@ - echo '#endif' >> $@ - echo '#define QUIET_NAN_NEGATED' >> $@ - echo '#if __LDBL_MANT_DIG__ == 106' >> $@ - echo '# define TFLOAT' >> $@ - cat $< >> $@ - echo '#endif' >> $@ diff --git a/libgcc/config/mips/t-mips b/libgcc/config/mips/t-mips new file mode 100644 index 00000000000..b7d13b3ddb3 --- /dev/null +++ b/libgcc/config/mips/t-mips @@ -0,0 +1,4 @@ +FPBIT = true +FPBIT_CFLAGS = -DQUIET_NAN_NEGATED +DPBIT = true +DPBIT_CFLAGS = -DQUIET_NAN_NEGATED diff --git a/libgcc/config/mips/t-sdemtk b/libgcc/config/mips/t-sdemtk new file mode 100644 index 00000000000..a06e828b545 --- /dev/null +++ b/libgcc/config/mips/t-sdemtk @@ -0,0 +1,3 @@ +# Don't build FPBIT and DPBIT; we'll be using the SDE soft-float library. +FPBIT = +DPBIT = diff --git a/libgcc/config/mips/t-tpbit b/libgcc/config/mips/t-tpbit new file mode 100644 index 00000000000..1670ef3ffd6 --- /dev/null +++ b/libgcc/config/mips/t-tpbit @@ -0,0 +1,4 @@ +ifeq ($(long_double_type_size),128) +TPBIT = true +TPBIT_CFLAGS = -DQUIET_NAN_NEGATED +endif diff --git a/gcc/config/rs6000/ppc64-fp.c b/libgcc/config/rs6000/ppc64-fp.c similarity index 98% rename from gcc/config/rs6000/ppc64-fp.c rename to libgcc/config/rs6000/ppc64-fp.c index 62861ee16fd..ab18d2d94b5 100644 --- a/gcc/config/rs6000/ppc64-fp.c +++ b/libgcc/config/rs6000/ppc64-fp.c @@ -2,8 +2,8 @@ libgcc2.c with macros expanded to force the use of specific types. Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2006, 2009 Free Software Foundation, - Inc. + 2000, 2001, 2002, 2003, 2004, 2006, 2009, 2011 + Free Software Foundation, Inc. This file is part of GCC. @@ -28,7 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined(__powerpc64__) || defined (__64BIT__) || defined(__ppc64__) #define TMODES -#include "config/fp-bit.h" +#include "fp-bit.h" extern DItype __fixtfdi (TFtype); extern DItype __fixdfdi (DFtype); diff --git a/libgcc/config/rs6000/t-darwin b/libgcc/config/rs6000/t-darwin index 404df85870f..4464fd7d6e6 100644 --- a/libgcc/config/rs6000/t-darwin +++ b/libgcc/config/rs6000/t-darwin @@ -3,6 +3,8 @@ DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall -mmacosx-version-min=10.4 crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $< +LIB2ADD += $(srcdir)/config/rs6000/ppc64-fp.c + LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c SHLIB_VERPFX = $(gcc_srcdir)/config/rs6000/darwin-libgcc diff --git a/libgcc/config/rs6000/t-ppc64-fp b/libgcc/config/rs6000/t-ppc64-fp new file mode 100644 index 00000000000..26d1730bcdb --- /dev/null +++ b/libgcc/config/rs6000/t-ppc64-fp @@ -0,0 +1,2 @@ +# Can be used unconditionally, wrapped in __powerpc64__ || __64BIT__ __ppc64__. +LIB2ADD += $(srcdir)/config/rs6000/ppc64-fp.c diff --git a/libgcc/config/rx/rx-lib.h b/libgcc/config/rx/rx-lib.h new file mode 100644 index 00000000000..fb1d14632a6 --- /dev/null +++ b/libgcc/config/rx/rx-lib.h @@ -0,0 +1,6 @@ +#ifdef FLOAT +#ifndef __RX_64BIT_DOUBLES__ +#define DF SF +#define FLOAT_ONLY +#endif +#endif diff --git a/libgcc/config/rx/t-rx b/libgcc/config/rx/t-rx index 1e66af0c8d3..3ca7dc069fa 100644 --- a/libgcc/config/rx/t-rx +++ b/libgcc/config/rx/t-rx @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the Renesas RX target. -# Copyright (C) 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. @@ -28,17 +28,7 @@ LIB2ADD = $(srcdir)/config/rx/rx-abi-functions.c # We need special handling of the floating point conversion # routines, to allow for the varying size of a double: -FPBIT = fp-bit.c -$(gcc_objdir)/fp-bit.c: $(gcc_srcdir)/config/fp-bit.c - echo '#define FLOAT' > $@ - echo '#ifndef __RX_64BIT_DOUBLES__' >> $@ - echo '#define DF SF' >> $@ - echo '#define FLOAT_ONLY' >> $@ - echo '#endif' >> $@ - cat $(gcc_srcdir)/config/fp-bit.c >> $@ - -DPBIT = dp-bit.c -$(gcc_objdir)/dp-bit.c: $(gcc_srcdir)/config/fp-bit.c - echo '#ifdef __RX_64BIT_DOUBLES__' > $@ - cat $(gcc_srcdir)/config/fp-bit.c >> $@ - echo '#endif' >> $@ +FPBIT = true +ifeq ($(double_type_size),64) +DPBIT = true +endif diff --git a/libgcc/config/sparc/t-softfp b/libgcc/config/sparc/t-softfp deleted file mode 100644 index 94dfcfae0a1..00000000000 --- a/libgcc/config/sparc/t-softfp +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2010, 2011 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# We want fine grained libraries, so use the new code to build the -# floating point emulation libraries. -FPBIT = fp-bit.c -DPBIT = dp-bit.c - -$(gcc_objdir)/dp-bit.c: $(gcc_srcdir)/config/fp-bit.c - cat $< > $@ - -$(gcc_objdir)/fp-bit.c: $(gcc_srcdir)/config/fp-bit.c - echo '#define FLOAT' > $@ - cat $< >> $@ diff --git a/libgcc/config/spu/t-elf b/libgcc/config/spu/t-elf new file mode 100644 index 00000000000..7094da526bb --- /dev/null +++ b/libgcc/config/spu/t-elf @@ -0,0 +1,3 @@ +# We provide our own version of __divdf3 that performs better and has +# better support for non-default rounding modes. +DPBIT_FUNCS := $(filter-out _div_df, $(DPBIT_FUNCS)) diff --git a/libgcc/config/t-fdpbit b/libgcc/config/t-fdpbit new file mode 100644 index 00000000000..0e7119adeaf --- /dev/null +++ b/libgcc/config/t-fdpbit @@ -0,0 +1,2 @@ +FPBIT = true +DPBIT = true diff --git a/libgcc/config/t-fpbit b/libgcc/config/t-fpbit new file mode 100644 index 00000000000..e56e34d91c8 --- /dev/null +++ b/libgcc/config/t-fpbit @@ -0,0 +1,2 @@ +FPBIT = true +FPBIT_CFLAGS = -DFLOAT_ONLY -DSMALL_MACHINE diff --git a/libgcc/configure b/libgcc/configure index 60363387312..0ead080691d 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -168,7 +168,8 @@ test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else @@ -551,6 +552,42 @@ PACKAGE_BUGREPORT='' PACKAGE_URL='http://www.gnu.org/software/libgcc/' ac_unique_file="static-object.mk" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + ac_subst_vars='LTLIBOBJS LIBOBJS asm_hidden_op @@ -563,6 +600,10 @@ vis_hide fixed_point enable_decimal_float decimal_float +long_double_type_size +double_type_size +EGREP +GREP CPP OBJEXT EXEEXT @@ -1464,6 +1505,255 @@ fi return $ac_retval } # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f conftest.err conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_preproc cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -3649,8 +3939,340 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_c_preproc_warn_flag=yes -# Check for decimal float support. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 +$as_echo_n "checking size of double... " >&6; } +if test "${ac_cv_sizeof_double+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_double" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "cannot compute sizeof (double) +See \`config.log' for more details." "$LINENO" 5; }; } + else + ac_cv_sizeof_double=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 +$as_echo "$ac_cv_sizeof_double" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_DOUBLE $ac_cv_sizeof_double +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 +$as_echo_n "checking size of long double... " >&6; } +if test "${ac_cv_sizeof_long_double+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long_double" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "cannot compute sizeof (long double) +See \`config.log' for more details." "$LINENO" 5; }; } + else + ac_cv_sizeof_long_double=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 +$as_echo "$ac_cv_sizeof_long_double" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double +_ACEOF + + +as_fn_arith $ac_cv_sizeof_double \* 8 && double_type_size=$as_val +as_fn_arith $ac_cv_sizeof_long_double \* 8 && long_double_type_size=$as_val + + + +# Check for decimal float support. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether decimal floating point is supported" >&5 $as_echo_n "checking whether decimal floating point is supported... " >&6; } if test "${libgcc_cv_dfp+set}" = set; then : diff --git a/libgcc/configure.ac b/libgcc/configure.ac index d96bcb4224a..8e2d1accd9d 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -152,6 +152,13 @@ GCC_NO_EXECUTABLES AC_PROG_CC AC_PROG_CPP_WERROR +AC_CHECK_SIZEOF([double]) +AC_CHECK_SIZEOF([long double]) +AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8]) +AS_VAR_ARITH([long_double_type_size], [$ac_cv_sizeof_long_double \* 8]) +AC_SUBST(double_type_size) +AC_SUBST(long_double_type_size) + # Check for decimal float support. AC_CACHE_CHECK([whether decimal floating point is supported], [libgcc_cv_dfp], [AC_COMPILE_IFELSE([_Decimal32 x;], [libgcc_cv_dfp=yes], diff --git a/gcc/config/fp-bit.c b/libgcc/fp-bit.c similarity index 99% rename from gcc/config/fp-bit.c rename to libgcc/fp-bit.c index 82d924ec2bf..de9b3ada5ec 100644 --- a/gcc/config/fp-bit.c +++ b/libgcc/fp-bit.c @@ -1,7 +1,7 @@ /* This is a software floating point library which can be used for targets without hardware floating point. Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, - 2004, 2005, 2008, 2009, 2010 Free Software Foundation, Inc. + 2004, 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -37,7 +37,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "tconfig.h" #include "coretypes.h" #include "tm.h" -#include "config/fp-bit.h" +#include "fp-bit.h" /* The following macros can be defined to change the behavior of this file: FLOAT: Implement a `float', aka SFmode, fp library. If this is not diff --git a/gcc/config/fp-bit.h b/libgcc/fp-bit.h similarity index 98% rename from gcc/config/fp-bit.h rename to libgcc/fp-bit.h index f0b07e91fb6..1ae0741d6af 100644 --- a/gcc/config/fp-bit.h +++ b/libgcc/fp-bit.h @@ -1,5 +1,5 @@ /* Header file for fp-bit.c. */ -/* Copyright (C) 2000, 2002, 2003, 2006, 2009, 2010 +/* Copyright (C) 2000, 2002, 2003, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -129,6 +129,14 @@ typedef unsigned int UTItype __attribute__ ((mode (TI))); #define NO_DI_MODE #endif +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define FLOAT_BIT_ORDER_MISMATCH +#endif + +#if __BYTE_ORDER__ != __FLOAT_WORD_ORDER__ +#define FLOAT_WORD_ORDER_MISMATCH +#endif + #ifdef TFLOAT # ifndef TMODES # error "TFLOAT requires long double to have 113 bits of mantissa"