This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] allow bootstrapping GNAT from more recent versions of GNAT


Tested on i686-linux. Committed on mainline.

The purpose of this change is to make it easier to compile old versions
of the GNAT sources with newer versions of the compiler. We have in past
versions been careful about the opposite situation of compiling the
compiler with older versions of GNAT, but there was one glitch that
caused difficulty the other way round. This patch introduces a new
system parameter Compiler_System_Version. If present and set to False,
nothing is changed, and Targparm checks that all parameters are indeed
defined in the (target dependent) version of system being compiled.

But if this parameter is missing, as it will be in old versions of
system, and in the version of system used when the compiler compiles
itself, then no check is made, avoiding an otherwise fatal error if an
old version of system is missing a new parameter.

There is no test program for this change since it is only relevant when a
new version of GNAT compiles an older version of the GNAT sources. So this
is a prophyactic change to ease any problems in the future with such
situations.

In addition, this patch also causes targparm to detect and record the
appearence of the line "   type Address is private;" in the system.ads file.
This will allow cleanup of some front end code that depends on whether or not
the declaration of Address is a private type.

2005-03-08  Robert Dewar  <dewar@adacore.com>

	* system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
	system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
	system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
	system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
	system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
	system-interix.ads, system-solaris-sparc.ads,
	system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
	system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
	system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
	system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
	system-linux-s390.ads, system-linux-s390x.ads: Add line defining
	Compiler_System_Version to be False.

	* opt.ads: Add new flag Opt.Address_Is_Private

	* targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
	Add new parameter Compiler_System_Version to avoid checking for
	completeness of parameters when compiler is compiling itself.
	Allows old versions of GNAT to be compiled with new compiler.

Attachment: difs.1
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]