[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bootstrapping GT.M



On Tue, 2008-02-12 at 09:57 +0100, Goswin von Brederlow wrote:
> There are three things you can do:
> 
> 1) Do nothing.
> 
> Once you have packages GT.M Debian will have a GT.M and you can
> Build-Depend on it for future builds.
> 
> Big problem with this approach is that if the GT.M package ever breaks
> (and it will) you have to bootstrap it manually on all archs to get
> back on tarck again.
> 
> 2) Include prebuild sources and a bootstrap target
> 
> Basically you generate the *_ctl.c, merrors_ansi.h, and ttt.c files
> and put them somewhere in the source package out of the way of the
> clean target. In the bootstrap target you use those prebuild sources
> to build your GT.M compiler. But normaly you would just Build-Depend
> on the old GT.M.
> 
> This is little more than 1 but allows you to get other people to
> bootstrap GT.M for you easily if it ever breaks.
> 
> 3) Include prebuild sources and bootstrap on every build
> 
> This basically means you always build twice. First you build from
> prebuild sources and then you rebuild from scratch again. This has the
> advantage that you don't Build-Depend on the old GT.M. A broken GT.M
> upload won't break the chain.
> 
> MfG
>         Goswin
> 
> PS: Look at the mono packages for comparison. I think they have the
> same problem.

We had that problem [0] with older mono versions, but luckily upstream
rewrote their build-system later. The mono source package had a
build-dep on mcs, and mcs on mono :) as mcs is contains the source of
the C# compiler and C# libraries and mono the runtime.

Today it uses 2 stages to build the runtime.
Stage 1: it builds the C runtime part and then with that the C# compiler
using a pre-compiled C# compiler and corlib that are part of the tarball
(that works because the generated CIL bytecode is arch-independent).
Stage 2: it uses the built C# compiler to build the rest of the C#
libraries.

So we had the 1) option and use today the 3) option.

[0] http://pkg-mono.alioth.debian.org/BUILD_MONO_FROM_SCRATCH_HOWTO

-- 
Regards,

Mirco 'meebey' Bauer

PGP-Key ID: 0xEEF946C8

FOSS Developer    meebey@meebey.net  http://www.meebey.net/
PEAR Developer    meebey@php.net     http://pear.php.net/
Debian Developer  meebey@debian.org  http://www.debian.org/

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: