[fpc-devel] buildfaq

Marco van de Voort marcov at stack.nl
Wed Aug 4 12:31:21 CEST 2010

In our previous episode, Hans-Peter Diettrich said:
> I've some problems with building and testing an new compiler.
> 1) The buildfaq mentions both PP= and FPC= for the compiler, to be used 
> by Make. It should be made clear whether these are equivalent, or 
> (better) only one option should be used across the entire FAQ.

I've never noticed a difference. This because fpc and ppc<x> mostly support
the same switches, and when crosscompiling you generally pass the exact
compiler you want anyway.
> 2) An unqualified reference (PP=mypp) most proably fails - where exactly 
> does Make search for that compiler?

Works for me. It searches in the PATH. It might not look in the current dir
though, is that what you mean? That is a make gotcha though.

> 3) Is it possible to give the new compiler an specific name, during 
> Make, so that the  original compiler is not inadvertently overwritten by 
> a buggy version?


> 4) How does FPC handle different targets? IMO every target is 
> implemented in a specific executable, so how does pp or fpc proceed when 
> it is invoked with an target specifier, that it cannot handle itself?

This is clearly explained in the FAQ. A binary per architecture is the
minimal needed configuration.

The maximal possible configuration is an m x m matrix (with m the number of
targets), each with a different host-target, dest-target.

> 5) A matter of convenience: Currently the easiest way to get both FPC 
> and Lazarus up (on a Windows system) is the installation of Lazarus 
> 0.9.28, including FPC 2.2.4 and all required build tools. That's the 
> latest Lazarus/FPC distribution, available for almost all platforms, 
> that runs off the shelf. Unfortunately the 2.2.4 compiler can not 
> compile the 2.5 sources, so that another binary must be installed. In 
> the worst case multiple (make and install) steps are required, until the 
> 2.5 sources can be compiled by a 2.4 version - including all the RTL 
> stuff. Can we get some more version compatibility?

I don't see any possibilities here.  2.2.4 + 2.4.0 bridges a major version
cycle, and this would mean it would take 2,3 years before any new feature or
fix can be used in the fpc repository codebase.

Specially if the only reason is to avoid a small download. The current
situation is already enough work.

And of course we couldn't predict that Lazarus would not release anything
for 2.4.0

More information about the fpc-devel mailing list