How to break the bootstrapping chain

Daniel Eischen deischen at freebsd.org
Fri Dec 8 14:25:20 PST 2006


On Fri, 8 Dec 2006, Karel Miklav wrote:

> I'm trying to maintain the gnat-gcc* Ada compiler ports,
> currently there are gnat-gcc34 and 41. I'd like to
> introduce newer versions, and retire experimental 34,
> which is built from an ancient binary which requires
> FreeBSD 4 compatibility. I'd like to know:
>
> 1. what do I have to do that gnat-gcc packages will
>    appear on FreeBSD FTP sites?
>
> 2. can I use one of FreeBSD packages to bootstrap
>    others or do I have to somehow provide my own
>    binary?
>
> In case I was not clear enough: the GNAT compiler can
> only be bootstrapped with another GNAT. If I base the
> procedure on a FreeBSD package, I can no longer provide
> the port for that package ... or do I? Damn, who
> invented this chicken and egg thing :)

You'll have to do the same thing as the lang/gnat
port and provide your own bootstrapping compiler.
No matter what you do (*), it will require FreeBSD-X
compat.  AFAIK, we are currently supporting FreeBSD
5, 6, and 7, so the bootstrap should be based on
FreeBSD-5, so it can work for 6 and 7 as well.
If it is based on 6 or 7, then it will not be
able to work on the other two.

(*) The only way you can avoid this, is to provide
     3 different bootstrap compilers (one for 5, 6,
     and 7) and teach the port to depend on the
     appropriate bootstrapper.

-- 
DE


More information about the freebsd-ports mailing list