From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Weimer To: rms@gnu.org Cc: gcc@gcc.gnu.org Subject: Re: Why not gnat Ada in gcc? Date: Fri, 03 Nov 2000 08:41:00 -0000 Message-id: References: <14729.973131786@upchuck> <200011022259.PAA05369@wijiji.santafe.edu> X-SW-Source: 2000-11/msg00222.html Richard Stallman 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 this issues. -- 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