[Lazarus] Proposal for changing fpc version on the fly in the IDE

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Thu Aug 22 18:36:47 CEST 2013

patspiper wrote:
> On 22/08/13 16:23, Mark Morgan Lloyd wrote:
>> patspiper wrote:
>>> When multiple FPC versions are used, the fpc binary and related 
>>> utilities are usually located in <fpc folder>/<fpc version>/bin, and 
>>> the compiler itself (ppcxxx) in <fpc folder>/<fpc 
>>> version>/lib/fpc/<fpc version>. The folders could be different than 
>>> these, but the point to note is that there are 2 folders that rely on 
>>> the fpc version.
>> I don't see that here (Linux/Debian, FPC and Lazarus built broadly 
>> with defaults). Binaries are in /usr/local/bin, FPC-specific stuff in 
>> /usr/local/lib/fpc/x.y.z where x.y.z is a version number. As a general 
>> point, I normally copy a clean fpcsrc into x.y.z for Lazarus's benefit 
>> but that still only leaves a single directory named for a version number.
> When you install using the distribution's packages or standard 
> installers, you'll not be able to use more than one FPC version without 
> considerable tweaking.

I started off with a standard FPC binary installation circa 2.0, this 
put the utilities in /usr/local/bin ** . Since then I've generally built 
from source- in many cases I've had to since there wasn't an up-to-date 
binary- and I've never had to explicitly tell the build to use 
non-standard directories.

So if you're now saying that I'm doing something wrong by- in some way- 
overriding "correct" behaviour then I'm interested to know. Otherwise, 
what you're suggesting is a significant change to FPC build and I 
suggest you raise it with the compiler developers- it's not a Lazarus issue.

> Furthermore, each version has its own fpc binary and tools in the 
> usr/local/bin folder. They could be compatible or incompatible across 
> versions. Thus it is better for each version to have its own set of 
> folders.

I've never seen any suggestion that this breaks backwards compatibility, 
and if it does it should probably be raised as a bug- at least so that 
it can be documented properly. In any event, as long as fpc (etc.) knows 
what version of backend it's using then later versions should be able to 
emulate older ones: I don't think anybody'd be fool enough to try the 
other way round :-)

** On Linux. Solaris was lightly different, and of course Windows has 
its own "best practice".

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the Lazarus mailing list