Difference between revisions of "Solaris Port"

From Free Pascal wiki
Jump to navigationJump to search
(Add historical context and link to 'Lazarus on Solaris' page.)
m (Even more outdated now Lazarus is at v1.0.)
Line 1: Line 1:
Below are some basic things how you can compile FPC, applying approximately to FPC 2.0 and Solaris 7 (SunOS 2.7). For more recent information see [[Lazarus on Solaris]], which applies to 2.4 and Lazarus 0.9.30 on Solaris 10.
+
Below are some basic things how you can compile FPC, applying approximately to FPC 2.0 and Solaris 7 (SunOS 2.7). For more recent information see [[Lazarus on Solaris]], which applies to 2.4 and Lazarus 0.9.30 (or later) on Solaris 10.
  
 
Note that cross compiling is not easy, especially not since you need to link to libc.
 
Note that cross compiling is not easy, especially not since you need to link to libc.

Revision as of 09:13, 8 September 2012

Below are some basic things how you can compile FPC, applying approximately to FPC 2.0 and Solaris 7 (SunOS 2.7). For more recent information see Lazarus on Solaris, which applies to 2.4 and Lazarus 0.9.30 (or later) on Solaris 10.

Note that cross compiling is not easy, especially not since you need to link to libc.

Also the assembler and linker calls are not correct for assembling and linking on the target platform and may need some manual tweaking in ppas.sh and finally in t_sunos.pas.

Build binutils

Download the latest GNU binutils and build a cross-assembler and linker

./configure --target=i386-pc-solaris2.7

Cross Compile the RTL

In the fpc/rtl/solaris/ the rtl with:

make BINUTILSPREFIX=i386-pc-solaris2.7- OPT=-g


Compile the famous hello world #1

Copy the solaris libc.* files to a dir on Linux

ppc386 -g -Xd -XPi386-pc-solaris2.7- -Fl<pathtosolarislibc> -Tsolaris helloworld

Run the executable on solaris (in gdb)


Compile the famous hello world #2

Another option is to compile on i386 and assemble and link on solaris

ppc386 -a -st -Tsolaris helloworld

This creates a ppas.sh script that can be run on solaris.