diff mbox

[RFC] ARM related deprecations

Message ID 4F4CF33D.6090902@arm.com
State New
Headers show

Commit Message

Richard Earnshaw Feb. 28, 2012, 3:31 p.m. UTC
On 16/12/11 18:53, Joseph S. Myers wrote:
> On Fri, 9 Dec 2011, Richard Earnshaw wrote:
> 
>> I think we've reached the point where the following target
>> configurations should be End-of-Life'd.  As such, I'd like to mark them
>> as deprecated in gcc-4.7, prior to removal after the branch.
> 
> I agree it's time to remove these old-ABI ports - and old-ABI uClinux 
> should be deprecated / removed as well.  I intend to remove the old-ABI 
> support in glibc at some point (it's bitrotten and just confuses people 
> without actually building).
> 
>> I'd also like to remove at that time support for some now obsolete
>> co-processor units, namely the FPA and Maverick.
> 
> Note that there's a default in arm.c
> 
> #ifdef FPUTYPE_DEFAULT
>       target_fpu_name = FPUTYPE_DEFAULT;
> #else
>       if (arm_arch_cirrus)
>         target_fpu_name = "maverick";
>       else
>         target_fpu_name = "fpe2";
> #endif
> 
> meaning some targets default to FPA when no -mfpu= optionis passed, and 
> removing FPA means changing the ABI for these ports.  It looks like these 
> are: arm*-*-freebsd* arm*-*-uclinux* (old-ABI) arm*-*-ecos-elf 
> arm*-*-rtems* (old-ABI) arm*-*-elf arm*-wince-pe*.  My presumption is that 
> VFP format will be better for anyone currently using the FreeBSD and WinCE 
> ports (while as discussed the others are deprecation candidates), though 
> the FreeBSD port is probably rather bitrotten and much of the current 
> WinCE support for GCC isn't upstream.
> 

So how about we just deprecate all targets that are still using FPE format?

Comments

Joseph Myers Feb. 28, 2012, 3:38 p.m. UTC | #1
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 - 
removed deliberately when the target got a maintainer - and 
arm-wrs-vxworks is *not* using FPE format, vxworks.h defines 
FPUTYPE_DEFAULT to "vfp".  Otherwise, I think this is OK (given a 
corresponding change to gcc-4.7/changes.html to note these deprecations).
Richard Earnshaw Feb. 28, 2012, 3:51 p.m. UTC | #2
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.
diff mbox

Patch

--- gcc/config.gcc	(revision 184639)
+++ gcc/config.gcc	(local)
@@ -242,7 +242,19 @@  md_file=
 
 # Obsolete configurations.
 case ${target} in
+ # Avoid special cases that are not obsolete
+   arm*-*-*eabi*			\
+ )
+     ;;
    alpha*-dec-osf5.1*			\
+ | arm-wrs-vxworks			\
+ | arm*-*-ecos-elf			\
+ | arm*-*-elf				\
+ | arm*-*-freebsd*			\
+ | arm*-*-linux*			\
+ | arm*-*-rtems*			\
+ | arm*-*-uclinux*			\
+ | i[34567]86-*-interix3*		\
  | mips-sgi-irix6.5			\
  | mips*-*-openbsd*			\
  | score-*				\
@@ -3043,12 +3055,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