diff mbox

[RFC] ARM related deprecations

Message ID 4F4D0E64.1020302@arm.com
State New
Headers show

Commit Message

Richard Earnshaw Feb. 28, 2012, 5:27 p.m. UTC
On 28/02/12 17:10, Joseph S. Myers wrote:
> On Tue, 28 Feb 2012, Richard Earnshaw wrote:
> 
>> Here's an updated patch and a suggested web-page patch:
> 
> uClinux targets do not have -gnu in their target triplets.
> 
> You missed the WinCE port from the list in the webpage patch of ports 
> being deprecated for using FPA floating-point format and lacking a modern 
> alternative using VFP format.  (The config.gcc patch also got the triplet 
> for WinCE wrong - it's arm*-wince-pe* not arm*-*-wince*.  Though ISTR the 
> more functional port that hasn't been contributed to FSF GCC uses some 
> other triplet.)
> 

Have I ever said how much I hate triplets?

Here's an updated version, plus some updates to install.texi to avoid
references to the obsolete ports.

OK?

R.

	* doc/install.texi: Avoid references to obsolete ARM ports.

	* config.gcc (obsolete): Add all ARM targets using the FPA.
	(with_fpu): Obsolete selection of the FPA or Maverick on ARM.

web:
	* changes.html: Describe obsoletion of FPA and Maverick on ARM.
--- install.texi	(revision 184644)
+++ install.texi	(local)
@@ -3001,7 +3001,7 @@ information are.
 @item
 @uref{#amd64-x-solaris210,,amd64-*-solaris2.10}
 @item
-@uref{#arm-x-elf,,arm-*-elf}
+@uref{#arm-x-eabi,,arm-*-eabi}
 @item
 @uref{#avr,,avr}
 @item
@@ -3216,11 +3216,11 @@ This is a synonym for @samp{x86_64-*-sol
 @html
 <hr />
 @end html
-@heading @anchor{arm-x-elf}arm-*-elf
+@heading @anchor{arm-x-eabi}arm-*-eabi
 ARM-family processors.  Subtargets that use the ELF object format
 require GNU binutils 2.13 or newer.  Such subtargets include:
-@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux}
-and @code{arm-*-rtems}.
+@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi}
+and @code{arm-*-rtemseabi}.
 
 @html
 <hr />
@@ -4611,7 +4611,7 @@ Presently Windows for Itanium is not sup
 
 @subheading Windows CE
 
-Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi
+Windows CE is supported as a target only on Hitachi
 SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
 
 @subheading Other Windows Platforms
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.7/changes.html,v
retrieving revision 1.90
diff -u -r1.90 changes.html
--- changes.html	27 Feb 2012 00:33:29 -0000	1.90
+++ changes.html	28 Feb 2012 17:24:01 -0000
@@ -35,6 +35,36 @@
 
     </li>
 
+    <li>Support on ARM for the legacy floating-point accelerator (FPA) and
+    the mixed-endian floating-point format that it used has been obsoleted.
+    The ports that still use this format have been obsoleted as well.
+    Many legacy ARM ports already provide an alternative that uses the
+    VFP floating-point format.  The obsolete ports will be deleted in the
+    next release.
+
+    <p>The obsolete ports with alternatives are:</p>
+
+    <ul>
+	  <li>arm*-*-rtems (use arm*-*-rtemseabi)</li>
+	  <li>arm*-*-linux-gnu (use arm*-*-linux-gnueabi)</li>
+	  <li>arm*-*-elf (use arm*-*-eabi)</li>
+	  <li>arm*-*-uclinux* (use arm*-*-uclinux*eabi)</li>
+    </ul>
+    <p>Note, however, that these alternatives are not binary compatible
+    with their legacy counterparts (although some can support running legacy
+    applications).</p>
+    <p>The obsolete ports that currently lack a modern alternative are:</p>
+
+    <ul>
+	  <li>arm*-*-ecos-elf</li>
+	  <li>arm*-*-freebsd</li>
+	  <li>arm*-wince-pe*</li>
+    </ul>
+
+    New ports that support more recent versions of the architecture
+    are welcome.</li>
+    <li>Support for the Maverick co-processor on ARM has been obsoleted.
+    Code to support it will be deleted in the next release.</li>
     <li>Support has been removed for Unix International threads on Solaris
     2, so the <code>--enable-threads=solaris</code> configure option and
     the <code>-threads</code> compiler option don't work any longer.</li>

Comments

John Tytgat Feb. 28, 2012, 11:42 p.m. UTC | #1
In message <4F4D0E64.1020302@arm.com>
          Richard Earnshaw <rearnsha@arm.com> wrote:

> On 28/02/12 17:10, Joseph S. Myers wrote:
> > On Tue, 28 Feb 2012, Richard Earnshaw wrote:
> > 
> >> Here's an updated patch and a suggested web-page patch:
> > 
> > uClinux targets do not have -gnu in their target triplets.
> > 
> > You missed the WinCE port from the list in the webpage patch of ports 
> > being deprecated for using FPA floating-point format and lacking a modern 
> > alternative using VFP format.  (The config.gcc patch also got the triplet 
> > for WinCE wrong - it's arm*-wince-pe* not arm*-*-wince*.  Though ISTR the 
> > more functional port that hasn't been contributed to FSF GCC uses some 
> > other triplet.)
> > 
> 
> Have I ever said how much I hate triplets?
> 
> Here's an updated version, plus some updates to install.texi to avoid
> references to the obsolete ports.
> 
> OK?

As mentioned/asked in http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00744.html
our GCC/ARM port for RISC OS which is using for one of its multilib
variants FPA (to interface with the SharedCLibrary used in RISC OS).
Other multilib variants are soft-float and VPF.  I would like to keep
the FPA support in gcc 4.8.

I'm wondering if the removal of FPA is really necessary.  Does FPA support
prevent future ARM improvements in GCC ?

John.
Richard Earnshaw Feb. 29, 2012, 9:50 a.m. UTC | #2
On 28/02/12 23:42, John Tytgat wrote:
> In message <4F4D0E64.1020302@arm.com>
>           Richard Earnshaw <rearnsha@arm.com> wrote:
> 
>> On 28/02/12 17:10, Joseph S. Myers wrote:
>>> On Tue, 28 Feb 2012, Richard Earnshaw wrote:
>>>
>>>> Here's an updated patch and a suggested web-page patch:
>>>
>>> uClinux targets do not have -gnu in their target triplets.
>>>
>>> You missed the WinCE port from the list in the webpage patch of ports 
>>> being deprecated for using FPA floating-point format and lacking a modern 
>>> alternative using VFP format.  (The config.gcc patch also got the triplet 
>>> for WinCE wrong - it's arm*-wince-pe* not arm*-*-wince*.  Though ISTR the 
>>> more functional port that hasn't been contributed to FSF GCC uses some 
>>> other triplet.)
>>>
>>
>> Have I ever said how much I hate triplets?
>>
>> Here's an updated version, plus some updates to install.texi to avoid
>> references to the obsolete ports.
>>
>> OK?
> 
> As mentioned/asked in http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00744.html
> our GCC/ARM port for RISC OS which is using for one of its multilib
> variants FPA (to interface with the SharedCLibrary used in RISC OS).
> Other multilib variants are soft-float and VPF.  I would like to keep
> the FPA support in gcc 4.8.

RISC OS support is not (and never has been) part of the FSF source tree.

> 
> I'm wondering if the removal of FPA is really necessary.  Does FPA support
> prevent future ARM improvements in GCC ?
> 

It's been 10 years since I last saw any real interest in the FPA and
even that was for legacy parts.  In fact I think it's been at least 10
years since FPA support was dropped from ARM's commercial compiler.

I've been through the test results for the last three years, the last
suggestion of any testing for a port that uses the FPA instructions was
in February 2009 for the legacy Linux ABI, since that time there has
only been soft-float support tested.

It might sometimes look as though carrying this dead code around has no
cost, but I can assure you that whenever we go into some of the
selection logic that supports picking between FPA, VFP and soft float we
do have to think about what the implications might be for each case.

Furthermore, just having those instructions in the compiler has a cost
in terms of the time it takes to build the compiler and, to a limited
extent, the amount of time it takes to compile an application.

Overall, I can no longer see a valid justification for carrying this
code within GCC.

R.
Joseph Myers March 1, 2012, 8:29 p.m. UTC | #3
On Tue, 28 Feb 2012, Richard Earnshaw wrote:

> Here's an updated version, plus some updates to install.texi to avoid
> references to the obsolete ports.
> 
> OK?

OK.
diff mbox

Patch

--- config.gcc	(revision 184644)
+++ config.gcc	(local)
@@ -242,7 +242,18 @@  md_file=
 
 # Obsolete configurations.
 case ${target} in
+ # Avoid special cases that are not obsolete
+   arm*-*-*eabi*			\
+ )
+     ;;
    alpha*-dec-osf5.1*			\
+ | arm*-*-ecos-elf			\
+ | arm*-*-elf				\
+ | arm*-*-freebsd*			\
+ | arm*-*-linux*			\
+ | arm*-*-rtems*			\
+ | arm*-*-uclinux*			\
+ | arm*-wince-pe*			\
  | mips-sgi-irix6.5			\
  | mips*-*-openbsd*			\
  | score-*				\
@@ -3043,12 +3054,20 @@  case "${target}" in
 
 		case "$with_fpu" in
 		"" \
-		| fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 \
+		| vfp | vfp3 | vfpv3 \
 		| vfpv3-fp16 | vfpv3-d16 | vfpv3-d16-fp16 | vfpv3xd \
 		| vfpv3xd-fp16 | neon | neon-fp16 | vfpv4 | vfpv4-d16 \
 		| fpv4-sp-d16 | neon-vfpv4)
 			# OK
 			;;
+		fpa | fpe2 | fpe3 | maverick)
+    			if test "x$enable_obsolete" != xyes; then
+			    echo "*** Configuration option --with-fpu=${with_fpu} is obsolete." >&2
+			    echo "*** Specify --enable-obsolete to build it anyway." >&2
+      			    echo "*** Support will be REMOVED in the next major release of GCC." >&2
+      			    exit 1
+			fi
+			;;
 		*)
 			echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
 			exit 1