This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [4.7] Make ARM -mhard-float and -msoft-float into proper -mfloat-abi= aliases
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: gcc-patches at gcc dot gnu dot org, nickc at redhat dot com, paul at codesourcery dot com, ramana dot radhakrishnan at arm dot com
- Date: Wed, 02 Mar 2011 09:36:25 +0000
- Subject: Re: [4.7] Make ARM -mhard-float and -msoft-float into proper -mfloat-abi= aliases
- References: <Pine.LNX.4.64.1103020159280.23754@digraph.polyomino.org.uk>
On Wed, 2011-03-02 at 02:00 +0000, Joseph S. Myers wrote:
> This patch, for 4.7 and relative to a tree with
> <http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01709.html> applied,
> converts the ARM -mhard-float and -msoft-float options, documented as
> aliases of -mfloat-abi=hard and -mfloat-abi=soft, into .opt file
> aliases, so simplifying arm_handle_option. Being .opt aliases means
> that specs need only handle the -mfloat-abi forms and that multilib
> configuration must only use those forms, so this patch makes the
> associated changes in those areas. The patch arose out of eliminating
> global state from target option handlers, but was done as a separate
> patch as those changes (moving -march, -mcpu and -mtune handling to
> use the Enum machinery) will be quite complicated and it seems best to
> separate the two sets of largely independent changes.
>
> Tested building cc1 and xgcc for crosses to: arm-eabi
> arm-linux-gnueabi arm-netbsdelf arm-rtems arm-wince-pe arm-freebsd8.
> Will commit to trunk for 4.7 in the absence of target maintainer
> objections.
>
This is OK.
Could you remove the documentation entries for the hard/soft-float
aliases please? They're really only there for legacy reasons.
R.
> 2011-03-01 Joseph Myers <joseph@codesourcery.com>
>
> * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
> * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
> or -msoft-float here.
> * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
> -msoft-float and -mhard-float.
> (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and
> -msoft-float.
> * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
> msoft-float.
> * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
> -msoft-float.
> (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
> * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
> not mhard-float.
> (LIBGCC_SPEC): Don't handle -msoft-float.
> * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
> -mhard-float.
> * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
> msoft-float.
> * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
> -mfloat-abi=*, not -msoft-float and -mhard-float.
> * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
> -msoft-float.
> * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
> Use mfloat-abi=hard and mfloat-abi=soft in comments, not
> mhard-float and msoft-float.
> * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
> mfloat-abi=soft in comments, not mhard-float and msoft-float.
> * config/arm/t-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard, not
> mhard-float.
> * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
> mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
> mhard-float.
> * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
> mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
> msoft-float.
> * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
> not mhard-float.
> * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
> not msoft-float.
>
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/arm.c gcc-mainline/gcc/config/arm/arm.c
> --- gcc-mainline-1/gcc/config/arm/arm.c 2011-02-23 13:55:18.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/arm.c 2011-03-01 15:26:24.000000000 -0800
> @@ -1355,14 +1355,6 @@ arm_handle_option (struct gcc_options *o
> arm_selected_cpu = arm_find_cpu(arg, all_cores, "-mcpu");
> return true;
>
> - case OPT_mhard_float:
> - target_float_abi_name = "hard";
> - return true;
> -
> - case OPT_msoft_float:
> - target_float_abi_name = "soft";
> - return true;
> -
> case OPT_mtune_:
> arm_selected_tune = arm_find_cpu(arg, all_cores, "-mtune");
> return true;
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/arm.h gcc-mainline/gcc/config/arm/arm.h
> --- gcc-mainline-1/gcc/config/arm/arm.h 2011-02-02 13:22:56.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/arm.h 2011-03-01 15:42:16.000000000 -0800
> @@ -1,6 +1,6 @@
> /* Definitions of target machine for GNU compiler, for ARM.
> Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
> - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
> + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
> Free Software Foundation, Inc.
> Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
> and Martin Simmons (@harleqn.co.uk).
> @@ -174,8 +174,8 @@ extern void (*arm_lang_output_object_att
>
> #undef CPP_SPEC
> #define CPP_SPEC "%(subtarget_cpp_spec) \
> -%{msoft-float:%{mhard-float: \
> - %e-msoft-float and -mhard_float may not be used together}} \
> +%{mfloat-abi=soft:%{mfloat-abi=hard: \
> + %e-mfloat-abi=soft and -mfloat-abi=hard may not be used together}} \
> %{mbig-endian:%{mlittle-endian: \
> %e-mbig-endian and -mlittle-endian may not be used together}}"
>
> @@ -317,16 +317,14 @@ extern void (*arm_lang_output_object_att
> by --with-arch.
> --with-tune is ignored if -mtune or -mcpu are specified (but not affected
> by -march).
> - --with-float is ignored if -mhard-float, -msoft-float or -mfloat-abi are
> - specified.
> + --with-float is ignored if -mfloat-abi is specified.
> --with-fpu is ignored if -mfpu is specified.
> --with-abi is ignored is -mabi is specified. */
> #define OPTION_DEFAULT_SPECS \
> {"arch", "%{!march=*:%{!mcpu=*:-march=%(VALUE)}}" }, \
> {"cpu", "%{!march=*:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
> {"tune", "%{!mcpu=*:%{!mtune=*:-mtune=%(VALUE)}}" }, \
> - {"float", \
> - "%{!msoft-float:%{!mhard-float:%{!mfloat-abi=*:-mfloat-abi=%(VALUE)}}}" }, \
> + {"float", "%{!mfloat-abi=*:-mfloat-abi=%(VALUE)}" }, \
> {"fpu", "%{!mfpu=*:-mfpu=%(VALUE)}"}, \
> {"abi", "%{!mabi=*:-mabi=%(VALUE)}"}, \
> {"mode", "%{!marm:%{!mthumb:-m%(VALUE)}}"},
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/arm.opt gcc-mainline/gcc/config/arm/arm.opt
> --- gcc-mainline-1/gcc/config/arm/arm.opt 2009-07-02 08:25:53.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/arm.opt 2011-03-01 15:25:51.000000000 -0800
> @@ -94,7 +94,7 @@ Target RejectNegative Joined Var(target_
> Specify the name of the target floating point hardware/format
>
> mhard-float
> -Target RejectNegative
> +Target RejectNegative Alias(mfloat-abi=, hard)
> Alias for -mfloat-abi=hard
>
> mlittle-endian
> @@ -122,7 +122,7 @@ Target Report Mask(SINGLE_PIC_BASE)
> Do not load the PIC register in function prologues
>
> msoft-float
> -Target RejectNegative
> +Target RejectNegative Alias(mfloat-abi=, soft)
> Alias for -mfloat-abi=soft
>
> mstructure-size-boundary=
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/coff.h gcc-mainline/gcc/config/arm/coff.h
> --- gcc-mainline-1/gcc/config/arm/coff.h 2009-07-02 08:25:53.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/coff.h 2011-03-01 15:40:01.000000000 -0800
> @@ -1,7 +1,7 @@
> /* Definitions of target machine for GNU compiler.
> For ARM with COFF object format.
> Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
> - 2007 Free Software Foundation, Inc.
> + 2007, 2009, 2011 Free Software Foundation, Inc.
> Contributed by Doug Evans (devans@cygnus.com).
>
> This file is part of GCC.
> @@ -37,7 +37,7 @@
>
> #ifndef MULTILIB_DEFAULTS
> #define MULTILIB_DEFAULTS \
> - { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
> + { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" }
> #endif
>
> /* This is COFF, but prefer stabs. */
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/elf.h gcc-mainline/gcc/config/arm/elf.h
> --- gcc-mainline-1/gcc/config/arm/elf.h 2009-07-02 08:25:53.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/elf.h 2011-03-01 15:39:33.000000000 -0800
> @@ -1,7 +1,7 @@
> /* Definitions of target machine for GNU compiler.
> For ARM with ELF obj format.
> Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2005, 2007,
> - 2008 Free Software Foundation, Inc.
> + 2008, 2009, 2011 Free Software Foundation, Inc.
> Contributed by Philip Blundell <philb@gnu.org> and
> Catherine Moore <clm@cygnus.com>
>
> @@ -61,7 +61,6 @@
> %{mapcs-*:-mapcs-%*} \
> %(subtarget_asm_float_spec) \
> %{mthumb-interwork:-mthumb-interwork} \
> -%{msoft-float:-mfloat-abi=soft} %{mhard-float:-mfloat-abi=hard} \
> %{mfloat-abi=*} %{mfpu=*} \
> %(subtarget_extra_asm_spec)"
> #endif
> @@ -119,7 +118,7 @@
>
> #ifndef MULTILIB_DEFAULTS
> #define MULTILIB_DEFAULTS \
> - { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork", "fno-leading-underscore" }
> + { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork", "fno-leading-underscore" }
> #endif
>
> #define TARGET_ASM_FILE_START_APP_OFF true
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/linux-elf.h gcc-mainline/gcc/config/arm/linux-elf.h
> --- gcc-mainline-1/gcc/config/arm/linux-elf.h 2011-01-26 16:28:20.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/linux-elf.h 2011-03-01 15:37:25.000000000 -0800
> @@ -51,7 +51,7 @@
>
> #undef MULTILIB_DEFAULTS
> #define MULTILIB_DEFAULTS \
> - { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
> + { "marm", "mlittle-endian", "mfloat-abi=hard", "mno-thumb-interwork" }
>
> /* Now we define the strings used to build the spec file. */
> #undef LIB_SPEC
> @@ -60,7 +60,7 @@
> %{shared:-lc} \
> %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
>
> -#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
> +#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
>
> #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
>
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/netbsd-elf.h gcc-mainline/gcc/config/arm/netbsd-elf.h
> --- gcc-mainline-1/gcc/config/arm/netbsd-elf.h 2009-12-30 09:05:39.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/netbsd-elf.h 2011-03-01 16:27:05.000000000 -0800
> @@ -1,5 +1,6 @@
> /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
> - Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
> + Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009, 2011
> + Free Software Foundation, Inc.
> Contributed by Wasabi Systems, Inc.
>
> This file is part of GCC.
> @@ -54,11 +55,10 @@
> #define SUBTARGET_EXTRA_ASM_SPEC \
> "-matpcs %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
>
> -/* Default to full VFP if -mhard-float is specified. */
> +/* Default to full VFP if -mfloat-abi=hard is specified. */
> #undef SUBTARGET_ASM_FLOAT_SPEC
> #define SUBTARGET_ASM_FLOAT_SPEC \
> - "%{mhard-float:{!mfpu=*:-mfpu=vfp}} \
> - %{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
> + "%{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
>
> #undef SUBTARGET_EXTRA_SPECS
> #define SUBTARGET_EXTRA_SPECS \
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/pe.h gcc-mainline/gcc/config/arm/pe.h
> --- gcc-mainline-1/gcc/config/arm/pe.h 2009-03-28 00:38:45.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/pe.h 2011-03-01 15:35:09.000000000 -0800
> @@ -1,5 +1,5 @@
> /* Definitions of target machine for GNU compiler, for ARM with PE obj format.
> - Copyright (C) 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2005, 2007
> + Copyright (C) 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2005, 2007, 2011
> Free Software Foundation, Inc.
> Contributed by Doug Evans (dje@cygnus.com).
>
> @@ -49,7 +49,7 @@
>
> #undef MULTILIB_DEFAULTS
> #define MULTILIB_DEFAULTS \
> - { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
> + { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" }
>
> #undef WCHAR_TYPE
> #define WCHAR_TYPE "short unsigned int"
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/rtems-elf.h gcc-mainline/gcc/config/arm/rtems-elf.h
> --- gcc-mainline-1/gcc/config/arm/rtems-elf.h 2009-03-28 00:38:45.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/rtems-elf.h 2011-03-01 15:34:36.000000000 -0800
> @@ -1,5 +1,6 @@
> /* Definitions for RTEMS based ARM systems using ELF
> - Copyright (C) 2000, 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
> + Copyright (C) 2000, 2002, 2005, 2007, 2008, 2009, 2011
> + Free Software Foundation, Inc.
>
> This file is part of GCC.
>
> @@ -36,7 +37,7 @@
> */
> #undef SUBTARGET_EXTRA_ASM_SPEC
> #define SUBTARGET_EXTRA_ASM_SPEC "\
> - %{!mhard-float: %{!msoft-float:-mfpu=softfpa}}"
> + %{!mfloat-abi=hard: %{!mfloat-abi=soft:-mfpu=softfpa}}"
>
> /*
> * The default includes --start-group and --end-group which conflicts
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/semi.h gcc-mainline/gcc/config/arm/semi.h
> --- gcc-mainline-1/gcc/config/arm/semi.h 2009-03-28 00:38:45.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/semi.h 2011-03-01 15:33:18.000000000 -0800
> @@ -1,5 +1,5 @@
> /* Definitions of target machine for GNU compiler. ARM on semi-hosted platform
> - Copyright (C) 1994, 1995, 1996, 1997, 2001, 2004, 2005, 2007
> + Copyright (C) 1994, 1995, 1996, 1997, 2001, 2004, 2005, 2007, 2011
> Free Software Foundation, Inc.
> Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
>
> @@ -68,7 +68,6 @@
> %{mcpu=*:-mcpu=%*} \
> %{march=*:-march=%*} \
> %{mapcs-float:-mfloat} \
> -%{msoft-float:-mfloat-abi=soft} %{mhard-float:-mfloat-abi=hard} \
> %{mfloat-abi=*} %{mfpu=*} \
> %{mthumb-interwork:-mthumb-interwork} \
> %(subtarget_extra_asm_spec)"
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-arm-elf gcc-mainline/gcc/config/arm/t-arm-elf
> --- gcc-mainline-1/gcc/config/arm/t-arm-elf 2011-01-04 03:50:58.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/t-arm-elf 2011-03-01 15:27:26.000000000 -0800
> @@ -1,5 +1,5 @@
> # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
> -# 2008, 2010 Free Software Foundation, Inc.
> +# 2008, 2010, 2011 Free Software Foundation, Inc.
> #
> # This file is part of GCC.
> #
> @@ -67,9 +67,9 @@ MULTILIB_EXCEPTIONS += *mthumb/*mfloa
> # MULTILIB_DIRNAMES += le be
> # MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
> #
> -# MULTILIB_OPTIONS += mhard-float/msoft-float
> +# MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft
> # MULTILIB_DIRNAMES += fpu soft
> -# MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
> +# MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
> #
> # MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
> # MULTILIB_DIRNAMES += normal interwork
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-linux gcc-mainline/gcc/config/arm/t-linux
> --- gcc-mainline-1/gcc/config/arm/t-linux 2009-04-24 16:20:51.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/t-linux 2011-03-01 15:28:16.000000000 -0800
> @@ -1,5 +1,5 @@
> # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006,
> -# 2008 Free Software Foundation, Inc.
> +# 2008, 2011 Free Software Foundation, Inc.
> #
> # This file is part of GCC.
> #
> @@ -25,7 +25,7 @@ LIB1ASMSRC = arm/lib1funcs.asm
> LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
> _arm_addsubdf3 _arm_addsubsf3
>
> -# MULTILIB_OPTIONS = mhard-float/msoft-float
> +# MULTILIB_OPTIONS = mfloat-abi=hard/mfloat-abi=soft
> # MULTILIB_DIRNAMES = hard-float soft-float
>
> # EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-pe gcc-mainline/gcc/config/arm/t-pe
> --- gcc-mainline-1/gcc/config/arm/t-pe 2010-11-29 10:43:41.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/t-pe 2011-03-01 15:28:41.000000000 -0800
> @@ -1,5 +1,5 @@
> # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2008, 2009,
> -# 2010
> +# 2010, 2011
> # Free Software Foundation, Inc.
> #
> # This file is part of GCC.
> @@ -44,7 +44,7 @@ pe.o: $(srcdir)/config/arm/pe.c $(CONFIG
> $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
> $(srcdir)/config/arm/pe.c
>
> -MULTILIB_OPTIONS = mhard-float mthumb
> +MULTILIB_OPTIONS = mfloat-abi=hard mthumb
> MULTILIB_DIRNAMES = fpu thumb
>
> LIBGCC = stmp-multilib
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-rtems gcc-mainline/gcc/config/arm/t-rtems
> --- gcc-mainline-1/gcc/config/arm/t-rtems 2009-03-28 00:38:45.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/t-rtems 2011-03-01 15:29:09.000000000 -0800
> @@ -5,6 +5,6 @@ MULTILIB_DIRNAMES = arm thumb
> MULTILIB_EXCEPTIONS =
> MULTILIB_MATCHES = marm=mno-thumb
>
> -MULTILIB_OPTIONS += msoft-float/mhard-float
> +MULTILIB_OPTIONS += mfloat-abi=soft/mfloat-abi=hard
> MULTILIB_DIRNAMES += soft fpu
> -MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
> +MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-strongarm-elf gcc-mainline/gcc/config/arm/t-strongarm-elf
> --- gcc-mainline-1/gcc/config/arm/t-strongarm-elf 2009-07-02 08:25:53.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/t-strongarm-elf 2011-03-01 15:30:09.000000000 -0800
> @@ -1,4 +1,5 @@
> -# Copyright (C) 2000, 2001, 2006, 2008 Free Software Foundation, Inc.
> +# Copyright (C) 2000, 2001, 2006, 2008, 2009, 2011
> +# Free Software Foundation, Inc.
> #
> # This file is part of GCC.
> #
> @@ -37,7 +38,7 @@ dp-bit.c: $(srcdir)/config/fp-bit.c
> echo '#endif' >> dp-bit.c
> cat $(srcdir)/config/fp-bit.c >> dp-bit.c
>
> -MULTILIB_OPTIONS = mlittle-endian/mbig-endian mhard-float/msoft-float
> +MULTILIB_OPTIONS = mlittle-endian/mbig-endian mfloat-abi=hard/mfloat-abi=soft
> MULTILIB_DIRNAMES = le be fpu soft
> MULTILIB_EXCEPTIONS =
> MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/t-wince-pe gcc-mainline/gcc/config/arm/t-wince-pe
> --- gcc-mainline-1/gcc/config/arm/t-wince-pe 2010-11-29 10:44:00.000000000 -0800
> +++ gcc-mainline/gcc/config/arm/t-wince-pe 2011-03-01 15:30:27.000000000 -0800
> @@ -1,4 +1,4 @@
> -# Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010
> +# Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010, 2011
> # Free Software Foundation, Inc.
> #
> # This file is part of GCC.
> @@ -43,7 +43,7 @@ pe.o: $(srcdir)/config/arm/pe.c $(CONFIG
> $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
> $(srcdir)/config/arm/pe.c
>
> -MULTILIB_OPTIONS = mhard-float
> +MULTILIB_OPTIONS = mfloat-abi=hard
> MULTILIB_DIRNAMES = fpu
> # Note - Thumb multilib omitted because Thumb support for
> # arm-wince-pe target does not appear to be working in binutils
> diff -rupN --exclude=.svn gcc-mainline-1/gcc/config/arm/wince-pe.h gcc-mainline/gcc/config/arm/wince-pe.h
> --- gcc-mainline-1/gcc/config/arm/wince-pe.h 2009-03-28 00:38:45.000000000 -0700
> +++ gcc-mainline/gcc/config/arm/wince-pe.h 2011-03-01 15:33:16.000000000 -0800
> @@ -1,5 +1,5 @@
> /* Definitions of target machine for GNU compiler, for ARM with WINCE-PE obj format.
> - Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
> + Copyright (C) 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc.
> Contributed by Nick Clifton <nickc@redhat.com>
>
> This file is part of GCC.
> @@ -23,4 +23,4 @@
>
> #undef MULTILIB_DEFAULTS
> #define MULTILIB_DEFAULTS \
> - { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
> + { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" }