[fpc-devel] Porting FPC to IBM zArch
pascaldragon at googlemail.com
Wed Jul 24 14:19:09 CEST 2013
Am 24.07.2013 14:12, schrieb Bernd Oppolzer:
> Sorry, I'm sure, this is a very basic question,
> just to speed up things a little ...
> when I run the compiler on Windows on my test sources,
> everythings works fine.
> Now I wanted to build executables for OS/2 and Linux-386,
> just to learn more about cross-compile. But the installed compiler-exe
> (which came with Lazarus) only supports the win32 target.
> The compiler message is as follows:
> C:\fpc_test>ppc386 -Tos2 pasform.pas
> Free Pascal Compiler version 2.6.2 [2013/06/09] for i386
> Copyright (c) 1993-2012 by Florian Klaempfl and others
> Target OS: OS/2
> Compiling pasform.pas
> Fatal: Can't find unit system used by PASFORM
> Fatal: Compilation aborted
> Same goes for -Tlinux
> Of course, I have to build a new compiler. Or: do I misinterpret
> the error message?
> I downloaded the development tree using svn.
> What is the easiest way to build a new compiler, and:
> will it be possible to build a compiler that is able to build
> different targets at the same time?
The problem is not the compiler. Each compiler can compile for each
target of the supported platform. E.g. an i386-win32 compiler can also
compile for i386-os2 and i386-linux. It can not however compile for e.g.
x86_64-win64 or powerpc-linux.
What is not provided by default for other targets is the RTL (and FCL
and packages) which the compiler needs to compile programs. These you
need to create by yourself, but for this you'll also need the according
binutils and depending on the target platform and your program also
libraries from the platform (e.g. when you compile for Linux systems).
Cross compiling for different combinations is described here:
In the simplest cases the approach mentioned for Win32 -> Win64 is
sufficient, but you should also take a look at the BuildFAQ:
More information about the fpc-devel