fpc/compiler
2026-01-21 22:31:41 +01:00
..
aarch64 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
arm Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
armgen Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
avr Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
generic
html
i386 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
i8086 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
jvm Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
llvm Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
loongarch64 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
m68k Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
mips Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
msg Add -Tfreebsd to help for powerpc64 compiler after MR 1211 2026-01-21 11:26:00 +01:00
powerpc Fix compiltion of powerpc compiler 2026-01-21 17:46:54 +01:00
powerpc64 Merge branch source:main into main 2026-01-09 12:57:13 +00:00
ppcgen powerpc: fix 32bit PowerPC build after FreeBSD/PPC64 merge 2026-01-21 13:20:40 +01:00
riscv Check all existing riscv ABI 2026-01-21 11:40:24 +01:00
riscv32 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
riscv64 Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
sparc Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
sparc64 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
sparcgen Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
systems Declare MaybeSwap in ogcoff interface part to allow use in t_win unit in PostProcessExecutable 2026-01-21 11:37:07 +01:00
utils Regenerate compiler and compiler/utils Makefile's after merge of MR1211 2026-01-21 11:03:21 +01:00
wasm32 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
x86 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
x86_64 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
xtensa Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
z80 Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
.gitignore
aasmbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aasmcfi.pas
aasmcnst.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aasmdata.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aasmdef.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
aasmsym.pas
aasmtai.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aggas.pas Fix go32v2 target by adding tf_supports_hidden_symbols flag and do nothing for hidden symbols 2026-01-09 22:11:04 +00:00
aopt.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aoptbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aoptda.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aoptobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
aoptutils.pas Update repository 2025-12-27 12:12:11 -05:00
assemble.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
blockutl.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
browcol.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
catch.pas
ccharset.pas
cclasses.pas Use bitpacked indices in TViHashList. 2026-01-02 16:39:35 +01:00
cepiktimer.pas
cfidwarf.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
cfileutl.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
cg64f32.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
cgbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
cgexcept.pas
cghlcpu.pas
cgobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
cgutils.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
cmsgs.pas
comphook.pas * Allow to specify message when calling internal error 2025-09-29 20:41:43 +02:00
compiler.pas compiler: consistent indent, missing semicolon 2026-01-16 10:51:25 +01:00
compinnr.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
comprsrc.pas Update compiler files 2026-01-02 17:50:34 -05:00
comptty.pas * patch by Anton Kavalenka: Use colored compiler messages on FreeBSD ansi-capable terminals, resolves #41582 2026-01-19 22:55:24 +01:00
constexp.pas
COPYING.txt
cprofile.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
crefs.pas
cresstr.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
cscript.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
cstreams.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ctask.pas compiler: ctask: schedule modules to write ppus asap 2026-01-20 16:12:07 +01:00
cutils.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
dbgbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
dbgcodeview.pas
dbgdwarf.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
dbgdwarfconst.pas
dbgstabs.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
dbgstabx.pas
defcmp.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
defutil.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
dirparse.pas
dwarfbase.pas
elfbase.pas
entfile.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
export.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
expunix.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
finput.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
fmodule.pas compiler: fixed loadppu to reload ppu when a circular dependency changed, see bug41457 2026-01-16 15:59:12 +01:00
fpcdefs.inc Introduce CPU_BC_HAS_SIZE_LIMIT to limit acceptable range when looking for unconditional jump label, to remain eligible for exchange with conditional jump 2025-10-23 23:46:57 +02:00
fpchash.pas
fpcp.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
fpkg.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
fppu.pas compiler: ctask: schedule modules to write ppus asap 2026-01-20 16:12:07 +01:00
gendef.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
globals.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
globstat.pas
globtype.pas * make SYSTEM_HAS_FEATURE_MONITOR a compiler based feature so programs can depend on it 2026-01-04 15:09:56 +01:00
hlcg2ll.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
hlcgobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
htypechk.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
impdef.pas
import.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
ldscript.pas
link.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
macho.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
machoutils.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
Makefile Regenerate compiler and compiler/utils Makefile's after merge of MR1211 2026-01-21 11:03:21 +01:00
Makefile.fpc morphos: convert the Un*x path used by the Makefile to an Amiga path before feeding it into the compiler. this fixes cycle on MorphOS again 2025-10-26 00:26:52 +02:00
MPWMake
nadd.pas + optimize nil - val into - val 2026-01-20 23:13:04 +01:00
nbas.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncal.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgadd.pas * real fix for #41576 based on a patch by rasberryrabbit 2026-01-21 22:31:41 +01:00
ncgbas.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
ncgcal.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgcnv.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgcon.pas compiler: set to nil after free 2025-12-10 23:52:29 +01:00
ncgflw.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncghlmat.pas
ncginl.pas
ncgld.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgmat.pas ncgmat: fix location for constant divisions-by-power-of-two after a291347d 2025-09-19 01:50:17 +02:00
ncgmem.pas * another 64-bit ALU, 32-bit address fix in tcgvecnode.update_reference_reg_packed 2025-10-11 19:31:39 +03:00
ncgnstfl.pas
ncgnstld.pas
ncgnstmm.pas
ncgobjc.pas
ncgopt.pas
ncgrtti.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
ncgset.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgutil.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncgvmt.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncnv.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ncon.pas Avoid memory leak in genconstsymtree 2025-11-05 09:29:25 +00:00
nflw.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ngenutil.pas Skip note "variable has align directive larger than system maximum alignment" for systems with maxalignvar=1 2026-01-08 10:35:25 +02:00
ngtcon.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ninl.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
nld.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
nmat.pas + optimize nil - val into - val 2026-01-20 23:13:04 +01:00
nmem.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
nobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
nobjc.pas
node.pas * write flags properly 2026-01-07 22:21:34 +01:00
nopt.pas
nset.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
nutils.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
objcasm.pas
objcdef.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
objcgutl.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
objcutil.pas
ogbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ogcoff.pas Declare MaybeSwap in ogcoff interface part to allow use in t_win unit in PostProcessExecutable 2026-01-21 11:37:07 +01:00
ogelf.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
oglx.pas
ogmacho.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ogmap.pas
ognlm.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
ogomf.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
ogrel.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
ogwasm.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
omfbase.pas compiler: fixed compile on linux 2025-12-10 23:52:29 +01:00
optbase.pas
optconstprop.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
optcse.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
optdead.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
optdeadstore.pas
optdfa.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
options.pas Merge branch source:main into main 2026-01-07 22:34:24 +00:00
optloadmodifystore.pas Fix cycle for non-LLVM 2025-06-15 23:06:49 +02:00
optloop.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
opttail.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
opttree.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
optutils.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
optvirt.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
owar.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
owbase.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
owomflib.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
parabase.pas
paramgr.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
parser.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pass_1.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
pass_2.pas
pbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pcp.pas
pdecl.pas * set names of record defs (and objects) correctly after copying them, resolves #41565 2026-01-01 23:39:33 +01:00
pdecobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pdecsub.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pdecvar.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pexports.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
pexpr.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pgentype.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
pgenutil.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pinline.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pkgutil.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
pmodules.pas compiler: ctask: schedule modules to write ppus asap 2026-01-20 16:12:07 +01:00
pp.lpi
pp.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pparautl.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
ppc68k.lpi
ppc8086.lpi
ppcaarch64.lpi
ppcarm.lpi
ppcavr.lpi
ppcjvm.lpi
ppcloongarch64.lpi
ppcmips64el.lpi
ppcmips.lpi
ppcmipsel.lpi
ppcppc64.lpi
ppcppc64le.lpi
ppcppc.lpi
ppcriscv32.lpi
ppcriscv64.lpi
ppcsparc64.lpi
ppcsparc.lpi
ppcwasm32.lpi
ppcx64.lpi compiler: added module state ms_compiled_waitcrc and delay writing ppu until all used unit crcs are computed 2025-09-03 02:41:59 +02:00
ppcx64llvm.lpi
ppcxtensa.lpi
ppcz80.lpi
ppheap.pas
ppu.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
procdefutil.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
procinfo.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
psabiehpi.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
pstatmnt.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
psub.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
psystem.pas
ptconst.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
ptype.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
raatt.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
rabase.pas
rasm.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
rautils.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
README.txt Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00
rescmn.pas
rgbase.pas
rgobj.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
scandir.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
scanner.pas Fix ignoring directives. 2026-01-02 16:39:35 +01:00
switches.pas + handle also optimizer switches by $push/$pop 2025-12-12 23:22:41 +01:00
symbase.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
symconst.pas Typo fix in compiler. 2026-01-01 15:11:26 +00:00
symcreat.pas * Allow to ask pretty format when giving full hierarchy name 2025-12-22 16:00:22 +01:00
symdef.pas + make trecorddef.GetTypeName more verbose, resolves #41566 2026-01-02 17:06:21 +01:00
symsym.pas Update repository 2025-12-27 12:12:11 -05:00
symtable.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
symtype.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
symutil.pas
syscinfo.pas
systems.inc Merge branch source:main into main 2026-01-01 11:41:27 +00:00
systems.pas Merge branch source:main into main 2026-01-01 11:41:27 +00:00
tgobj.pas Skip note "variable has align directive larger than system maximum alignment" for systems with maxalignvar=1 2026-01-08 10:35:25 +02:00
tokens.pas
triplet.pas
verbose.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
version.pas
versioncmp.pas
wasmbase.pas
widestr.pas
wpo.pas Mass typo fixes in comments for compiler. 2026-01-01 10:57:57 +00:00
wpobase.pas compiler: set nil after free 2025-12-10 23:52:29 +01:00
wpoinfo.pas Mass trailing space removal for compiler. 2025-12-22 17:42:28 +01:00

This directory contains the sources of the Free Pascal Compiler

If you want to compile/modify the compiler, please read first the
programmers manual.

To recompile the compiler, you can use the batch files :
 + mppc386.bat    if you want to build a cross compiler from i386 to m68k
 + mppcsparc      if you want to build a cross compiler from i386 to SPARC

 or
Use the make utility as following

      make OS_TARGET="compiler OS target" \
      CPU_TARGET="compiler CPU target" \
      FPCCPUOPT="Optimization level" \
      PP="compiler used to compile FPC" \
      COMPILER_OPTIONS="Options passed to compiler" \


If an option is omitted, then target CPU/OS will be same as current CPU/OS

Possibles targets are : linux go32v2 win32 os2 freebsd beos netbsd amiga haiku
atari sunos qnx netware openbsd wdosx palmos macos macosx emx

Possible compiler switches (* marks a currently required switch):
  -----------------------------------------------------------------
  GDB*                support of the GNU Debugger
  I386                generate a compiler for the Intel i386+
  x86_64              generate a compiler for the AMD x86-64 architecture
  M68K                generate a compiler for the M68000
  SPARC               generate a compiler for SPARC
  POWERPC             generate a compiler for the PowerPC
  VIS                 generate a compile for the VIS
  DEBUG               version with debug code is generated
  EXTDEBUG            some extra debug code is executed
  SUPPORT_MMX         only i386: releases the compiler switch
                      MMX which allows the compiler to generate
                      MMX instructions
  EXTERN_MSG          Don't compile the msgfiles in the compiler, always
                      use external messagefiles, default for TP
  NOAG386INT          no Intel Assembler output
  NOAG386NSM          no NASM output
  NOAG386BIN          leaves out the binary writer, default for TP
  NORA386DIR          No direct i386 assembler reader
  TEST_GENERIC        Test Generic version of code generator
                      (uses generic RTL calls)
  -----------------------------------------------------------------
  cpuflags            The target processor has status flags (on by default)
  cpufpemu            The target compiler will also support emitting software
                       floating point operations
  cpu64bitaddr        The targets use a 64-bit address space (pointers and
                       the default integer type are 64 bit)
  cpu64bitalu         The target cpu has 64-bit registers available (unless
                       cpu64bitaddr is also defined, pointers and default
                       integer type remain 32 bit, but the cpu can perform
                       64 bit calculations directly without needing helpers)
  -----------------------------------------------------------------

  Required switches for a i386 compiler be compiled by Free Pascal Compiler:
  GDB;I386

to build a compiler to SPARC target using a Win32/i386 you just use :
      make CPU_TARGET=SPARC