public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Joseph S. Myers" <joseph@codesourcery.com>
To: gcc@gcc.gnu.org
Subject: 4.4 deprecation proposals
Date: Sat, 14 Jun 2008 18:54:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.64.0806141850380.32378@digraph.polyomino.org.uk> (raw)

We need to consider what targets and other features, if any, to
deprecate or remove in GCC 4.4.

I previously suggested the deprecation or removal of protoize and
fixproto <http://gcc.gnu.org/ml/gcc/2008-05/msg00286.html>, without
any comments or objections being made, and have now disabled fixproto
for almost all targets that were using it.  The following targets
remain using fixproto: hppa[12]*-*-hpux10*, mips-sgi-irix[56]*,
pdp11-*-bsd, rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*.  I
propose that we deprecate "all targets using fixproto" for 4.4.  That
is, some time before 4.4 branches any of these targets still using
fixproto would be placed on the deprecation list, and removal from it
would require stopping a target from using fixproto (for example,
making fixincludes add all necessary prototypes applicable to the
target being undeprecated, or simply removing the use of fixproto if
no such prototypes need to be added).  fixproto could be removed from
trunk either when the targets are added to the deprecation list, or
when deprecated targets are removed after 4.4.0 is released.  (Note
that hppa[12]*-*-hpux10* has had 4.4 test results posted, so would not
be a deprecation candidate on the basis of being unused, and it
appears some patches have been tested on IRIX although no 4.4 test
results have been posted.)

For protoize, I propose that we do one of the following:

* Deprecate it in the 4.4 release notes (without any configure changes
  to make people use --enable-obsolete if building it, just
  documenting it as deprecated), and remove from trunk after 4.4.0 is
  released.

* Remove from trunk before 4.4 branches, on the basis that it having
  been disabled by default since
  <http://gcc.gnu.org/ml/gcc-patches/1999-10n/msg00451.html> (patch
  submission:
  <http://gcc.gnu.org/ml/gcc-patches/1999-09n/msg00164.html>) is
  plenty of deprecation warning.  People were thinking it might be
  obsolete as of
  <http://gcc.gnu.org/ml/gcc-patches/1999-08n/msg00636.html>.

I request further comment on which of these approaches to take.

In either case, removal of support for protoize would be accompanied
by removal of support for installing the SYSCALLS.c.X file that it
uses; any externally maintained distribution would need to maintain
this and any other required files itself.  (Given that there do appear
from Google Code Search to be a few external users of the -aux-info
option, I do not propose removing it along with protoize.  We might
however consider deprecating and removing it in future, especially if
any system is implemented for exporting more structured information
about programs being compiled from GCC.)

As for target CPU deprecations, the IRA transition strategy
<http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01812.html> indicates
the way forward.  With the plan to remove the old RA, each target will
need an IRA_COVER_CLASSES definition added to continue to work.  If
someone is willing to add this for a target, verify that the target
works with it added and fix any problems found, that will serve as
evidence that the target is still maintained (on the basis I used for
the 4.3 deprecations that either a test results posting or a patch
mentioned as testing on a target indicated it was not obsolete).  If
not, the target will not work anyway.  Thus, I propose that at the
point when the old register allocator is removed, any unconverted CPU
targets are added to the deprecation list, with removal requiring
conversion of a target to IRA.

It remains to consider the question of deprecations of target OSes or
(CPU, OS) pairs.  My only proposal here is to deprecate the generic
a.out and COFF targets where there is a corresponding ELF target; no
4.4 test results have been posted for any such targets.  The targets
affected would be:

arm-*-coff*
armel-*-coff*
h8300-*-* (generic meaning COFF only - other h8300 would remain)
i[34567]86-*-aout*
i[34567]86-*-coff*
m68k-*-aout*
m68k-*-coff*
sh-*-* (generic meaning COFF only - other sh would remain)

Where there is a catch-all -*-* meaning COFF, it could also be changed
to meaning ELF instead of removing the catch-all case.

People may of course wish to propose other OSes, individual targets or
other features for deprecation in 4.4.

-- 
Joseph S. Myers
joseph@codesourcery.com

             reply	other threads:[~2008-06-14 18:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-14 18:54 Joseph S. Myers [this message]
2008-06-14 19:26 ` Manuel López-Ibáñez
2008-06-15 18:45 ` DJ Delorie
2008-06-15 19:09   ` Joseph S. Myers
2008-06-15 22:01     ` DJ Delorie
2008-06-15 22:12       ` Ian Lance Taylor
2008-06-15 22:25         ` Joseph S. Myers
2008-06-16  0:06 ` Ben Elliston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0806141850380.32378@digraph.polyomino.org.uk \
    --to=joseph@codesourcery.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).