[fpc-pascal] Compiling the compiler

Tomas Hajny XHajT03 at mbox.vol.cz
Thu Jul 27 23:28:56 CEST 2006

On 25 Jul 06, at 16:45, Andreas Berger wrote:
> Vincent Snijders wrote:
> > Andreas Berger schreef:
> >> Andreas Berger wrote:
> >>> I have a problem compiling the compiler. After a lot of compilation 
> >>> it attempts to compile pp.pas and I get the following error:
> >>>    pp.pas(213,1) Error: Entrypoint start not defined.
> >> I downloaded todays snapshot and had the same problem. Then I 
> >> compiled using "make all" + "make install" instead of "make cycle" 
> >> and it worked. Is this correct? What does "make cycle" do exactly?
> >
> > There is at least one difference.
> > If you do make cycle in the compiler directory, the fpc.cfg file is used.
> > If you do make all or make compiler_cycle in the fpc source directory 
> > (that contains a compiler subdirectory), then no fpc.cfg file is used.
> >
> > So maybe you should try make cycle OPT="-n"
> >
> Sorry, it gave the same error.

No wonder. ;-) When using "make all", the new 
(2.1.1) compiler is compiled using the starting 
compiler (2.0.x). "Make cycle" tries to make sure 
that the created compiler is still useable, at 
least that useable that it can still build 
itself. It does so by doing the same thing in a 

1) RTL and compiler (ppc1.exe) are compiled using 
the starting compiler.

2) Everything except ppc1.exe is cleaned, RTL and 
compiler (ppc2.exe) are compiled using ppc1.exe.

3) Everything except ppc2.exe is cleaned, RTL and 
compiler (ppc3.exe) are compiled using ppc2.exe.

4) ppc2.exe and ppc3.exe are compared - they 
should be equal. If they are the same, ppc3.exe 
is renamed to ppc386.exe.

5) If you build more than just the compiler (e.g. 
snapshot or release - i.e. this last step isn't 
part of "make cycle" any more), the newly created 
ppc386.exe is used for compilation of RTL, FCL, 
FV, packages and IDE.


More information about the fpc-pascal mailing list