This is the mail archive of the
mailing list for the GCC project.
Re: Why not gnat Ada in gcc?
Richard Stallman <firstname.lastname@example.org> writes:
> And the GNAT for Linux folks.
> What an ironic name for a project. When they say "Linux", they must
> really mean the GNU/Linux system. But GNAT itself is supposed to
> exist *for* the GNU system (which includes GNU/Linux).
Actually, it's more or less a "GNAT for Red Hat and SuSE Linux"
project. As far as I can tell, only RPMs tested with those systems
are distributed. The GNAT packages for Debian GNU/Linux are
maintained in an entirely separate manner.
> So if there is a need for an outside project to work on GNAT to get it
> to work well in GNU/Linux, does that mean the standard GNAT is not
> paying enough attention to the system it is part of?
Currently available versions of GNAT are based on gcc 2.8.1. Most
distributions of the GNU/Linux system have now moved to GCC 2.95.x or
later, and especially the C++ front end is essential for building more
recent programs. As a result, the "gcc" driver program for the GNAT
compiler is named "gnatgcc", to avoid conflicts. GNAT tools such as
"gnatmake" have been adjusted to this. (The ACT distribution doesn't
do this, "gcc" is called "gcc" there.) The RPM distribution provides
an additional directory which is searched for Ada source packages (it
is intended to make this directory part of the Filesystem Hierarchy
Standard, I think). In addition, both the Debian and RPM distribution
use shared libraries for GNARL (the GNU Ada Runtime Library) and
default to native (kernel) threads. In contrast, the ACT distribution
is quite conservative about shared libraries (I don't know if they are
supported in the precompiled version, support for building them was
added in the source distribution, however), and the ACT binary
distribution uses FSU Threads (userspace implementation of kernel
threads) in order to be able to meet the requirements of the Ada
Reference Manual. As a result of all this, unfortunately,
applications linked against a shared GNARL library were not binary
compatible across different distributions of the GNAT compiler until
recently (I don't know if this has changed).
The integration of GNAT into the official GCC will hopefully resolve
Florian Weimer Florian.Weimer@RUS.Uni-Stuttgart.DE
University of Stuttgart http://cert.uni-stuttgart.de/
RUS-CERT +49-711-685-5973/fax +49-711-685-5898