diff mbox

[RFC] ARM related deprecations

Message ID 4F4D0774.4030807@arm.com
State New
Headers show

Commit Message

Richard Earnshaw Feb. 28, 2012, 4:57 p.m. UTC
On 28/02/12 15:51, Richard Earnshaw wrote:
> On 28/02/12 15:38, Joseph S. Myers wrote:
>> On Tue, 28 Feb 2012, Richard Earnshaw wrote:
>>
>>> So how about we just deprecate all targets that are still using FPE format?
>>
>> This patch appears to add back the i[34567]86-*-interix3* deprecation - 
> 
> Oops, botched merge conflict.
> 
>> removed deliberately when the target got a maintainer - and 
>> arm-wrs-vxworks is *not* using FPE format, vxworks.h defines 
>> FPUTYPE_DEFAULT to "vfp".  
> 
> Easily fixed.
> 
> Darn, missed the Win-CE port...
> 
> 
> Otherwise, I think this is OK (given a
>> corresponding change to gcc-4.7/changes.html to note these deprecations).
>>
> 
> I would expect, something like:
> 
> All ARM targets using the legacy FPA floating-point format have been
> obsoleted.  These include the ARM ports for FreeBSD, Linux (old ABI),
> ucLinux (old ABI), rtems (old ABI), Ecos, Win-CE and the old ELF
> bare-metal configurations.
> 
> I'm a bit unhappy about the general wording there.  I don't particularly
> want these ports reviving.  I'd rather see configurations that don't use
> the FPA format floats being contributed.  Suggestions?
> 
> R.
> 
> 

Here's an updated patch and a suggested web-page patch:

R.
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 16:55:56 -0000
@@ -35,6 +35,35 @@
 
     </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-gnu (use arm-*-uclinux-gnueabi)</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>
+    </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

Joseph Myers Feb. 28, 2012, 5:10 p.m. UTC | #1
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.)
Pedro Alves Feb. 29, 2012, 10:11 a.m. UTC | #2
On 02/28/2012 05:10 PM, 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.)

Right, it uses arm-*-mingw32ce, and arm-*-cegcc (kind of like mingw vs cygwin).
One of earliest local changes was to to flip to using VFP by default (and
float-abi=soft), as that's all we care about for anything remotely modern.
I never saw any WinCE device or emulator that supported FPA.

Maybe I'll find the time and motivation to push the port to the FSF in the
next release cycle.  Desktop Windows on ARM is around to corner too, so
I'm sure if I don't make it myself, someone will end up resurrecting
the ARM PE support soon enough.
diff mbox

Patch

--- config.gcc	(revision 184639)
+++ 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*			\
  | 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