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

Paul Breneman Paul2006 at BrenemanLabs.com
Sun May 24 19:45:56 CEST 2015

Today I updated the message for Debian Jessie as it was released last month:

On 04/14/2015 02:39 PM, Paul Breneman wrote:
> I didn't know better, but last fall I also posted this topic in the Free
> Pascal section of the Lazarus forums.  Today and yesterday I left notes
> there about making small VMs with Debian Jessie RC2 *and* ReactOS:
> http://forum.lazarus.freepascal.org/index.php/topic,26315.0.html
> On 11/01/2014 06:17 AM, Paul Breneman wrote:
>> 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.

More information about the fpc-devel mailing list