Patchwork [RFC] ARM related deprecations

login
register
mail settings
Submitter Richard Earnshaw
Date Dec. 9, 2011, 3:25 p.m.
Message ID <4EE2285B.3060305@arm.com>
Download mbox | patch
Permalink /patch/130407/
State New
Headers show

Comments

Richard Earnshaw - Dec. 9, 2011, 3:25 p.m.
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'd also like to remove at that time support for some now obsolete
co-processor units, namely the FPA and Maverick.

For the time being I've kept the ecos-elf and the legacy RTEMS targets,
but I'm hereby putting them on notice as candidates for deprecation in
the next cycle.  RTEMS how has an EABI conformant port, and ecos-elf
really should be moved in that direction too, if it is not to end up
dead very quickly.

	* config.gcc (arm*-*-elf, arm*-*-linux-gnu): Deprecate.
	(--with-fpu={fpa,fpe*,maverick}): Likewise.

R.
Rainer Orth - Dec. 9, 2011, 3:34 p.m.
Richard Earnshaw <rearnsha@arm.com> writes:

> --- config.gcc	(revision 182097)
> +++ config.gcc	(local)
> @@ -242,7 +242,14 @@ md_file=
>  
>  # Obsolete configurations.
>  case ${target} in
> + # Avoid special cases that are not obsolete
> +   arm*-*-linux-gnueabi*		\
> + | arm*-*-ecos-elf			\
> + )
> +     ;;

Please keep the cases sorted alphabetically.

Thanks.
        Rainer
John Tytgat - Dec. 10, 2011, 12:04 a.m.
In message <4EE2285B.3060305@arm.com>
          Richard Earnshaw <rearnsha@arm.com> 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'd also like to remove at that time support for some now obsolete
> co-processor units, namely the FPA and Maverick.

Would it really be necessary to remove the FPA support ? Does it hinder
any future ARM support in gcc ?

The reason for thse questions is that for many years our RISC OS gcc port
(currently following the gcc developments on the 4.6 branch and trunk)
can make use of hard-float FPA output for one of its multilib flavours (see
http://gccsdk.riscos.info/) and I would like to keep on supporting this
in gcc 4.8.

John.
Joseph S. Myers - Dec. 16, 2011, 6:53 p.m.
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.
Joseph S. Myers - Feb. 28, 2012, 2:38 p.m.
Richard, are you going to check in these deprecations for 4.7 (with the 
additional deprecation of old-ABI uClinux as I noted in 
<http://gcc.gnu.org/ml/gcc-patches/2011-12/msg01260.html>)?  Time is 
rapidly running out for doing so.

Note that current glibc ports no longer supports ARM old-ABI; I removed 
that support (which was already probably rather bitrotten) on 2012-01-07.

Patch

--- config.gcc	(revision 182097)
+++ config.gcc	(local)
@@ -242,7 +242,14 @@  md_file=
 
 # Obsolete configurations.
 case ${target} in
+ # Avoid special cases that are not obsolete
+   arm*-*-linux-gnueabi*		\
+ | arm*-*-ecos-elf			\
+ )
+     ;;
    alpha*-dec-osf5.1*			\
+ | arm*-*-elf				\
+ | arm*-*-linux*			\
  | i[34567]86-*-interix3*		\
  | mips-sgi-irix6.5			\
  | mips*-*-openbsd*			\
@@ -3021,12 +3028,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