[fpc-devel] Small virtual machine to cross compile FPC

Vsevolod Alekseyev sevaa at sprynet.com
Sun Nov 2 16:18:48 CET 2014

IMHO, just documenting the cross-building process for mobile would already
go a long way. Better yet, shipping prebuilt cross-compiler packs for major
desktop platforms. When I say "mobile", I really mean "Android"; iOS is well
covered as it is (modulo arm64) and Windows CE is on the way out.

-----Original Message-----
From: fpc-devel-bounces at lists.freepascal.org
[mailto:fpc-devel-bounces at lists.freepascal.org] On Behalf Of Paul Breneman
Sent: Saturday, November 01, 2014 7:18 AM
To: fpc-devel at lists.freepascal.org
Subject: Re: [fpc-devel] Small virtual machine to cross compile FPC

On 11/01/2014 03:13 AM, Hans-Peter Diettrich wrote:
> Paul Breneman schrieb:
>>> I think 100Mb is a bit small.
>>> You'll need cross-binutils, X, cross-dev libs and whatnot.
>>> 650Mb would be feasable, I guess.
>> Thanks for that info, but couldn't most of that be download into the 
>> VM *after* it is running?  Seems to me I'd like the *smallest* VM and 
>> then have a way to load things into that standard PC.  But maybe I'm 
>> thinking wrongly?  If so please help me get it right.
> I don't understand why the VM *size* should matter - unless it's >30GB 
> for current Windows versions. My goal would be a *simple* OS, easy to 
> configure and manage, and then install into it whatever is required. 
> Why download and configure all the required tools whenever the VM is run?
> This may take half an day, to get the VM up for cross-development, and 
> the downloads end up on the virtual disk as well.
> For cross-development I'd install a network of dedicated target VMs, 
> one of which can host the project files, and then build the project in 
> every target VM. This would allow for parallel builds, and every 
> created executable can be tested immediately on its platform - also in 
> parallel for comparison of the GUI and operation. With a single 
> development VM you would need another VM or emulator to perform the 
> final checks, for every single target platform.
>> I've looked at (or tried) laz4android and fpcup.  Seems that such an 
>> approach would work much better on a "standard" PC?
> Virtual machines work well on the same hardware (CPU), but for other 
> targets (ARM instead of x86) an emulator is required. Wikipedia says 
> that a LiveCD and AndroVM with Android for x86 is available, where it 
> might be possible to develop Android applications somewhat "natively" 
> on an x86 machine. But finally an emulator or physical device is 
> required, where the cross-compiled programs can run on their target 
> CPU, using the according libraries (RTL, VCL... for ARM).
> Please don't ask me about Adroid, my experience is limited to 
> FPC/Lazarus development on various Windows and Linux VMs, and I never 
> tried to cross-compile myself. Why cross-compile when I cannot check 
> the results?
> DoDi

Thanks DoDi for all of your feedback.

You are correct that the size of the VM doesn't matter much.  I was thinking
of leaving out things that change often but maybe that is really only the
source code.

Building FPC is complex and mobile seems even more complex.  So an easy and
simple way to see things work might be a valuable first step even though the
developer should move over to a better development environment ASAP.

fpc-devel maillist  -  fpc-devel at lists.freepascal.org

More information about the fpc-devel mailing list