Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Sep 1997 20:47:21 -0500 (CDT)
From:      "Daniel M. Eischen" <deischen@iworks.InterWorks.org>
To:        helbig@Informatik.BA-Stuttgart.DE
Cc:        ada@bsd.org, asami@cs.berkeley.edu, owner-freebsd-ports@FreeBSD.ORG, ports@FreeBSD.ORG
Subject:   Re: gnat port
Message-ID:  <199709290147.UAA19666@iworks.InterWorks.org>

next in thread | raw e-mail | index | archive | help
> > If this is in regard to fixing the gnat port to use FreeBSDs
> > gcc, please do not do that.  I changed the gnat port so that
> > it *doesn't* depend on /usr/src/contrib/gcc (which can be a
> > moving target, and changes to it will make the gnat port fail).
> 
> This part of the source tree *was* very stable (Well *was*, there
> are some changes to prepare a move of FreeBSD to ELF)

Tying the gnat port to FreeBSDs gcc has already been tried.
Depending on what version of FreeBSD (2.2, or what version
of -current) it *will* not build without accounting for various
changes to gcc along the way.

> > I diff'd the FreeBSD gcc source tree with the stock 2.7.2.1
> > source tree, and used that as a patch file to apply to the
> > stock gcc-2.7.2.1.  Now the gnat port should work regardless
> > of what happens to /usr/src/contrib/gcc.
> 
> Changes to /usr/src/contrib/gcc are only done to keep in synch
> with changes of the OS. This very changes will break the gnat
> port as well with high probability if it's independent of 
> /usr/src/contrib/gcc.

The patch I mention was to a stable version of gcc as of sometime
in August from -current.  It is applied to the stock gcc tree and
works fine under all 2.2+ and 3.0-current.  On the other hand, tying
the gnat port to FreeBSD gcc sources does not work.

> ...Because the maintainer didn't run FreeBSD any more. There were
> lots of GNAT releases past 2.0.3 depending on gcc-2.6.x and FreeBSD
> has been using gcc-2.7.2 for some time now.

Starting with GNAT-2.07, it was based on gcc-2.7.  It was a much
longer time before FreeBSD made the leap to gcc-2.7.2.  This will
most likely be the case in the future.  FreeBSD wants a stable
gcc and will probably take some time in moving to major new versions
of it.

> BTW. what about GNAT 3.10p :-)

Soon.  I have to revamp some of the tasking support files because
the GNAT RTL internal interfaces have changes slightly.

> Don't get me wrong--I very much appreciate the update of the gnat
> port--but I still think we should get rid of the extra mammoth
> distfile gcc-2.7.2.1.tgz.

IMHO, I think it's a small price to pay to have a less complex
port that isn't tied to the FreeBSD source tree which is subject
to change.

> Instead there should be an extra port (lcc - local C compiler)
> which uses exclusively /usr/src/contrib/gcc and is patched to
> support the gcc languages from the ports (GNU-FORTRAN, GNU-Pascal,
> GNAT ...)

This is nice, but it makes these ports harder to maintain and
update.

> Further the ports should not depend on its own packages for building.
> Instead there should be distfiles for bootstrapping (see also
> Modula-3 or MOCKA, a Modula-2 compiler). In case of GNAT, this
> distfile would contain gnat1 and gnatbind only.

Nothing wrong with that.  I cross compiled GNAT for FreeBSD from
sparc-sun-solaris.  I wouldn't want everyone to have to do that ;-)
But that's what we have a package for.  One could always install
the package, and then build the port.

> And last but not least the time consuming gcc bootstrapping should
> be avoided during port buildings. With gcc 2.7.2.1 installed
> we should get by without recompiling gcc three (!) times.
> 
> Well, at least this is what I tried to accomplish--but I frankly
> have to admit: I got stuck with GNAT-3.07--I couldn't
> beat the cc1 compiler to produce useful code.

Dan Eischen
deischen@iworks.InterWorks.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709290147.UAA19666>