fpc/compiler
2024-02-24 18:11:23 +01:00
..
aarch64 + function needs_check_for_fpu_exceptions to unify fpu exception handling 2024-02-13 17:42:21 +01:00
arm + set pi_do_call on ARM as well if we check for fpu exceptions 2024-02-17 21:03:55 +01:00
armgen * arm/a64: "OptPass2AND" and "OptPass2CMP" adapted to remove vestigial CMP and TST instructions 2024-02-11 21:39:19 +00:00
avr AVR optimization LdsMov2Lds 2023-12-02 18:22:35 +00:00
generic
html
i386 * x86: New "aoc_DoPass2JccOpts" option to catch branch and 2024-02-11 15:05:57 +00:00
i8086 * New "fast 3-component LEA hint" and "Icelake" CPU options 2023-10-29 10:26:52 +00:00
jvm * spelling fixes 2022-08-04 23:01:35 +02:00
llvm * Fixed internal error 2022041701 number clash (LLVM changed to 2022041730) 2024-01-28 09:34:14 +00:00
loongarch64 Restrict use of A_MOVE to ufromsize and utosize = OS_INT. (contributed by Jinyang He) 2024-02-18 20:18:50 +00:00
m68k m68k: fix tw40182 test 2024-01-09 10:57:11 +01:00
mips Fix storing of unaligned 64-bit to memory 2023-04-21 10:32:13 +01:00
msg * Fix latex error due to unescaped dollar 2024-02-18 21:39:04 +01:00
powerpc + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
powerpc64 Add dwarf CFI for powerpc64 cpu 2023-11-23 21:19:52 +01:00
ppcgen Add system_powerpc_wii to supported_targets of powerpc generic GNU assembler 2022-10-22 15:34:38 -05:00
riscv + set pi_do_call on RiscV as well if we check for fpu exceptions 2024-02-16 22:48:14 +01:00
riscv32 Change AVOID_OVERFLOW to avoid warning about inequality being always true 2023-10-26 07:47:10 +00:00
riscv64 * correct tripletcpustr, resolves #40301 2023-05-31 20:26:50 +02:00
sparc
sparc64 Fix for sparc64 specific code generation bug report #40252 2023-05-26 17:10:23 +02:00
sparcgen Handle unaligned copy in TCGSparcGen.g_concatcopy method 2023-07-16 01:31:09 -05:00
systems Use writeUInt32LE/writeUInt16LE method to write multi-byte integer in importlib method in t_win unit (as all supported CPUs are little endian) 2024-01-25 01:01:06 +00:00
utils * Add internal_endian field to tppudumpfile class 2024-01-25 11:00:28 +00:00
wasm32 + support a_call_indirect in TWasmValidationStacks.Validate 2024-02-24 10:49:15 +02:00
x86 Use writeint8/writeuint8 methods to avoid cross-endian issues 2024-02-19 20:19:35 +01:00
x86_64 * fixed fpu_x86_64_v4_flags 2024-02-23 21:51:37 +01:00
xtensa + set pi_do_call on xtensa as well if we check for fpu exceptions 2024-02-14 23:04:25 +01:00
z80 Follow sdas documentation for .ascii limitations by using only printable chars and .byte for others 2024-02-12 14:03:02 +00:00
.gitignore git ignore msg2inc binary 2023-07-07 11:17:33 +02:00
aasmbase.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
aasmcfi.pas
aasmcnst.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
aasmdata.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
aasmdef.pas
aasmsym.pas
aasmtai.pas * SkipInstr now includes ait_align 2023-11-25 20:47:44 +00:00
aggas.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
aopt.pas
aoptbase.pas
aoptda.pas
aoptobj.pas * FindRegAllocBackward will now return nil if it hits a dealloc for the register first 2024-02-11 21:39:19 +00:00
aoptutils.pas * New Boolean "SetAndTest" utility function 2024-02-03 20:30:46 +00:00
assemble.pas Swap real constant in internal assembler 2024-02-19 20:19:36 +01:00
blockutl.pas * extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not 2022-05-26 21:42:59 +02:00
browcol.pas * patch by Rika: Use linear file list in FInput.TInputFileManager instead of linked, resolves #39880 2022-09-17 22:46:57 +02:00
catch.pas
ccharset.pas
cclasses.pas * patch by Rika: Use Index* for pointer lists, resolves #40218 2023-03-25 21:32:29 +01:00
cepiktimer.pas
cfidwarf.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
cfileutl.pas * Allow to disable 8.3 filename search 2023-11-12 09:55:30 +01:00
cg64f32.pas
cgbase.pas + implemented WebAssembly code generator support for funcref and externref data 2023-06-07 05:25:57 +03:00
cgexcept.pas
cghlcpu.pas
cgobj.pas Attempt to fix tcalext3 big-endian powerpc64 failure 2023-11-20 01:05:10 +03:00
cgutils.pas + function needs_check_for_fpu_exceptions to unify fpu exception handling 2024-02-13 17:42:21 +01:00
cmsgs.pas
comphook.pas Add -vj option in options unit to set V_Parallel 2023-09-09 07:49:22 +00:00
compiler.pas m68k: initial compiler changes for Human68k (Sharp X68000) support 2023-11-30 23:43:27 +00:00
compinnr.pas
comprsrc.pas * patch by Cyrax: Quote path - which is passed to Windres or alike program, resolves #36526 2022-04-08 22:42:05 +02:00
comptty.pas
constexp.pas
COPYING.txt
cprofile.pas
crefs.pas
cresstr.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
cscript.pas
cstreams.pas
cutils.pas * patch by Rika: Shorten cutils.compareansistrings, resolves #40213 2023-03-24 22:50:19 +01:00
dbgbase.pas Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit 2023-09-09 06:54:30 +00:00
dbgcodeview.pas
dbgdwarf.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
dbgdwarfconst.pas * spelling fixed 2023-03-26 15:55:37 +02:00
dbgstabs.pas * spelling fixes 2022-08-04 23:01:35 +02:00
dbgstabx.pas
defcmp.pas * protect against comparisons of nested types of generics and specializations 2024-02-09 17:14:29 +01:00
defutil.pas * Add is_systemunit_unicode function (cchartype suymbol) 2023-07-22 08:26:22 +00:00
dirparse.pas
dwarfbase.pas * improve dwarf cfi on avr 2022-09-28 22:47:06 +02:00
elfbase.pas
entfile.pas Fix writing of low qword of floatx80 real type into 10-byte array on big endian systems 2024-01-25 10:13:21 +00:00
export.pas + support 'promising last' exports 2023-06-16 11:00:19 +03:00
expunix.pas
finput.pas * patch by Rika: Use linear file list in FInput.TInputFileManager instead of linked, resolves #39880 2022-09-17 22:46:57 +02:00
fmodule.pas * Implement parsing of RTTI directive 2024-01-02 07:09:21 +01:00
fpcdefs.inc Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
fpchash.pas
fpcp.pas * search using the real package name instead of the uppercased one so that an as-is cased package will be found as well 2024-01-07 18:09:50 +01:00
fpkg.pas
fppu.pas * Allow to disable 8.3 filename search 2023-11-12 09:55:30 +01:00
gendef.pas
globals.pas * Allow to disable 8.3 filename search 2023-11-12 09:55:30 +01:00
globstat.pas
globtype.pas * Define RTTI directive parameters 2024-01-02 07:09:21 +01:00
hlcg2ll.pas
hlcgobj.pas + thlcgobj.location_force_mem now supports LOC_JUMP as well, resolves #40650 2024-02-19 22:22:12 +01:00
htypechk.pas Also reset check_valid_var after calling var_para_allowed 2024-02-23 15:48:50 +00:00
impdef.pas
import.pas
ldscript.pas * SetString needs correctly typed argument 2023-07-25 16:06:53 +02:00
link.pas Try to compute correct page size for wlib call 2024-01-02 14:17:23 +01:00
macho.pas
machoutils.pas
Makefile human68k: regenerated Makefiles 2023-11-30 23:43:27 +00:00
Makefile.fpc Avoid troubles with exported directories 2023-10-03 10:14:04 +00:00
MPWMake
msgidx.inc * complain about turned off support of c style operators only in the parser, 2024-02-11 11:05:05 +01:00
msgtxt.inc * complain about turned off support of c style operators only in the parser, 2024-02-11 11:05:05 +01:00
nadd.pas * check for *-1 multiplications after folding, resolves #40448 2023-11-12 22:30:43 +01:00
nbas.pas * Adjustment to TBLockNode.pass_1 to actually strip nothing nodes 2023-03-03 21:07:31 +00:00
ncal.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
ncgadd.pas
ncgbas.pas
ncgcal.pas Short version of the mips code genration bug 2022-10-29 21:34:00 +01:00
ncgcnv.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
ncgcon.pas * patch by Rike: Use reverse_longword instead of manually reversing longword, resolves #39720 2022-05-13 22:38:03 +02:00
ncgflw.pas + introduced thlcgobj.a_jmp_always_pascal_goto - same as .a_jmp_always, but generated by a pascal goto statement 2023-10-22 04:12:59 +03:00
ncghlmat.pas
ncginl.pas
ncgld.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
ncgmat.pas
ncgmem.pas
ncgnstfl.pas
ncgnstld.pas
ncgnstmm.pas
ncgobjc.pas
ncgopt.pas
ncgrtti.pas Extended RTTI: optimise fetching VMT index 2024-01-03 22:29:01 +01:00
ncgset.pas * fixed bug that caused 'c in ['a'..'z']' to fail on the WebAssembly target, when code is compiled with {$packset 1} 2024-01-10 03:11:13 +02:00
ncgutil.pas hlcgobj: new getlocal and recordnewsymloc methods 2022-06-04 22:26:40 +02:00
ncgvmt.pas * ensure that the legacy method table has the correct alignment on platforms that require it (e.g. SPARC64) 2024-01-07 18:09:51 +01:00
ncnv.pas * clean up of arrayconstructor_to_set, the stringdef case didn't work for years and is not tested, so it probably is not supposed to be there at all 2024-02-10 22:16:02 +01:00
ncon.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
nflw.pas * fix #40500: do a for-in on a string variable using low(strvar) to high(strvar) so that zero based strings are handled correctly 2023-11-07 20:28:15 +01:00
ngenutil.pas LLVM: fix double init/fini of local managed variables accessed from nested functions 2023-09-14 15:38:21 +02:00
ngtcon.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
ninl.pas * The "Val" intrinsic is now simplified for string constants akin to a 2024-01-13 22:24:08 +00:00
nld.pas * don't throw an internalerror in case of an illegal assignment to an open array, resolves #40662 2024-02-22 22:35:18 +01:00
nmat.pas * More efficient if-statement construction in tmoddivnode.simplify 2024-01-22 21:17:05 +00:00
nmem.pas Add struct field names to subscriptn nodes in parse tree output 2024-01-21 16:39:09 +00:00
nobj.pas * make the VMT symbol and type def of the corresponding class or object instead of having them be global 2022-05-26 21:42:51 +02:00
nobjc.pas
node.pas * New node pruning methods 2023-02-21 20:44:02 +00:00
nopt.pas * the right side of a concatenation of multiple ShortString values can directly pass any String[x] to the utility routine, because only the Length() is used, not High() and nothing is modified (also typed pointers must not be used for them); this allows for better code generation for strings with a maximum length < 255 2022-10-11 07:40:13 +02:00
nset.pas * decide more sophisticately if a temp. var is needed for fixing #40618 2024-02-02 22:00:22 +01:00
nutils.pas * generate correct dfa for subroutines declared as safecall 2022-11-05 16:56:24 +01:00
objcasm.pas
objcdef.pas objcdef: remove duplicate variant start check 2022-06-06 23:12:53 +02:00
objcgutl.pas Add aarch64-iphonesim target 2023-03-27 18:45:00 +00:00
objcutil.pas objc: use compile-time macOS version checks 2022-09-16 11:21:05 +02:00
ogbase.pas Add writeInt8/writeUInt8 methods to fix some cross-endian generation issues 2024-02-19 20:19:35 +01:00
ogcoff.pas Also swap word/dword in case of cross-endian compilation 2024-01-20 21:35:24 +01:00
ogelf.pas * cosmetics 2024-02-19 22:27:06 +01:00
oglx.pas
ogmacho.pas
ogmap.pas * SetString needs correctly typed argument 2023-07-25 16:06:53 +02:00
ognlm.pas
ogomf.pas * use NtoLE instead of LEtoN in OMF DoRelocationFixup when converting from native to little endian. No functional changes, just better readability. 2023-11-02 14:28:48 +02:00
ogrel.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
ogwasm.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
omfbase.pas + support for .debug_loc and .debuc_loclist sections 2024-01-16 23:24:37 +01:00
optbase.pas
optconstprop.pas * propertly check equality with the for-counter when propagating constants, resolves #39915 2022-09-24 20:39:43 +02:00
optcse.pas * fixed a div by zero error, when compiling a wasi-hosted compiler 2023-10-22 01:11:17 +03:00
optdead.pas
optdeadstore.pas * changed of do_optdeadstoreelim must be passed by reference as noted by Alexey Torgashin 2022-11-03 19:01:02 +01:00
optdfa.pas * propagate life info properly 2022-11-15 22:06:56 +01:00
options.pas do not display the changing assembler note, if the internal and the external assemblers are the same, or there's no internal assembler defined 2024-01-08 14:19:20 +01:00
optloadmodifystore.pas
optloop.pas
opttail.pas
optutils.pas * patch by Rika: Use Index* for pointer lists, resolves #40218 2023-03-25 21:32:29 +01:00
optvirt.pas WPO: handle classes defined in localsymtables 2024-02-19 21:26:42 +01:00
owar.pas
owbase.pas
owomflib.pas Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit 2023-09-09 06:54:30 +00:00
parabase.pas TCGParaLocation: remove alignment gap 2022-06-04 22:26:40 +02:00
paramgr.pas
parser.pas human68k: more work on getting tinyheap right. still doesn't seem to work, sadly, so still disabled 2023-12-03 12:14:22 +01:00
pass_1.pas * fix compilation with -dEXTDEBUG 2023-02-24 20:39:13 +01:00
pass_2.pas * New 'do not execute' flag for notes and respective internal error triggering 2023-02-21 20:44:02 +00:00
pbase.pas * Forbid use of string alias in system unit 2023-07-22 08:26:22 +00:00
pcp.pas
pdecl.pas * allow type = type ... ; syntax only for previously declared types, avoids also internal error for #40566 2024-02-20 23:14:31 +01:00
pdecobj.pas * Force VMT at first position in system.tobject 2024-02-24 18:11:23 +01:00
pdecsub.pas m68k: basic DOS syscall generation for human68k 2023-11-30 23:43:27 +00:00
pdecvar.pas Fixing trying to consume ID for anonymous switch field 2023-09-28 22:42:49 +00:00
pexports.pas + print an error message, in case 'promising' exports are used on non-WebAssembly platform 2023-06-16 15:44:58 +03:00
pexpr.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
pgentype.pas
pgenutil.pas * improve pretty printing of symbols 2024-02-19 20:41:08 +01:00
pinline.pas
pkgutil.pas
pmodules.pas * generate specializations only of no error happened so far to prevent further (internal)errors, resolves #40646 2024-02-18 23:08:21 +01:00
pp.lpi
pp.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
pparautl.pas Be sure not to add a symbol with empty name as an alias for function return variable 2024-02-23 16:00:05 +00:00
ppc68k.lpi
ppc8086.lpi
ppcaarch64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcarm.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcavr.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcjvm.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcloongarch64.lpi + lazarus project for a loongarch64 compiler 2024-02-15 22:47:31 +01:00
ppcmips64el.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcmips.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcmipsel.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc64le.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcriscv32.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcriscv64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcsparc64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcsparc.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcwasm32.lpi - removed the DEBUG_WASM_GOTO define from the .lpi file 2024-01-14 00:21:40 +02:00
ppcx64.lpi * Unicode resource strings 2023-07-25 16:06:53 +02:00
ppcx64llvm.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcxtensa.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcz80.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppheap.pas
ppu.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
procdefutil.pas * allow a nested function that calls itself can be converted to a function reference 2023-12-30 14:47:38 +01:00
procinfo.pas * also keep track of captured def (necessary when functions are captured) 2023-12-29 20:26:45 +01:00
psabiehpi.pas
pstatmnt.pas * do not crash on illegal with statement, resolves #40118 2023-01-18 23:03:28 +01:00
psub.pas * Node dumps now output the convention if it's not pocall_default 2023-12-13 21:35:31 +00:00
psystem.pas * Define char as AnsiChar 2023-07-22 08:26:22 +00:00
ptconst.pas
ptype.pas * ensure that "type SomeName = type reference" is still allowed when function references are disabled 2024-02-23 15:31:38 +01:00
raatt.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
rabase.pas
rasm.pas
rautils.pas * do not warn on lea e/rsp with negative address offset, part of #40113 2023-01-15 23:06:05 +01:00
README.txt
rescmn.pas
rgbase.pas
rgobj.pas Rename fields of tspillregsinfo record to avoid having same field names as treginfo record 2023-09-26 18:18:04 +00:00
scandir.pas * patch by Rika: Fold repetitive scandir.pas cases, resolves #40660 2024-02-21 22:01:44 +01:00
scanner.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
switches.pas * fix #40655: apply changes to packrecords, packenum and setalloc using the recordpending*() functions so that they are applied correctly in case of them being used directly after a {$POP}{$PUSH} sequence 2024-02-20 23:52:52 +01:00
symbase.pas Fix for variables longer than 127 chars 2022-05-10 23:18:01 +02:00
symconst.pas * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
symcreat.pas Create invoke helper if requested and reference it in RTTI 2023-07-13 07:32:21 +00:00
symdef.pas * improve pretty printing of symbols 2024-02-19 20:41:08 +01:00
symsym.pas * Fix compilation with DEBUG_NODE_XML 2024-02-17 11:04:29 +01:00
symtable.pas * fix #40634 the 2nd: a (strict) protected symbol in a parent class of the owner is supposed to be visible 2024-02-18 19:35:24 +01:00
symtype.pas * improve pretty printing of symbols 2024-02-19 20:41:08 +01:00
symutil.pas JVM: add typesym for anonymous record typed constants 2023-02-05 10:58:59 +01:00
syscinfo.pas m68k: basic DOS syscall generation for human68k 2023-11-30 23:43:27 +00:00
systems.inc + added ld_int_wasi constant. Register the WASI internal linker. 2023-12-24 12:18:15 +02:00
systems.pas human68k: this system has internal sysinit 2023-11-30 23:43:27 +00:00
tgobj.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
tokens.pas + also allow declaring an external as 'suspending first' 2023-06-13 09:56:44 +03:00
triplet.pas Add aarch64-iphonesim target 2023-03-27 18:45:00 +00:00
verbose.pas Add -vj option in options unit to set V_Parallel 2023-09-09 07:49:22 +00:00
version.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
versioncmp.pas Missing file from b26703feaa 2022-09-16 15:22:05 +02:00
wasmbase.pas + introduced TWasmCustomDebugSectionType 2022-08-03 23:04:53 +03:00
widestr.pas
wpo.pas
wpobase.pas WPO: fix dead code detection, and handle procvars 2023-03-24 21:22:18 +01:00
wpoinfo.pas

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