fpc/compiler
michael 174de3eab1 Merged revisions 9693-10480 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/branches/resources

........
  r9694 | michael | 2008-01-09 21:31:18 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Initial check-in
........
  r9695 | michael | 2008-01-09 21:35:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New version from Giulio Bernardi
........
  r9697 | michael | 2008-01-09 21:41:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi with resource support
........
  r9698 | michael | 2008-01-09 21:46:33 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi to add more resource testing
........
  r9699 | michael | 2008-01-09 21:57:26 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9700 | michael | 2008-01-09 21:58:23 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9701 | michael | 2008-01-09 22:01:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9702 | michael | 2008-01-09 22:01:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9703 | michael | 2008-01-10 08:54:26 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Fixed double code
........
  r9704 | jonas | 2008-01-10 10:59:20 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    - removed duplicate code
........
  r9705 | jonas | 2008-01-10 11:25:21 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + added missing fcl-res dependencies
........
  r9706 | jonas | 2008-01-10 11:58:30 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + dependencies for fpintres and fpextres
........
  r9707 | yury | 2008-01-10 12:47:51 +0100 (Thu, 10 Jan 2008) | 3 lines
  
  * Fixed compilation of resource, which is included in a unit located in different folder than main source.
  * .res files must be copied to units output folder, otherwise .res files will not be found when only compiled units path is available and compiler does not know anything about sources folder.
  * Improved resource related error messages.
........
  r9708 | michael | 2008-01-10 12:52:13 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Removed double source after end.
........
  r9709 | michael | 2008-01-10 12:52:48 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * No longer needed
........
  r9710 | tom_at_work | 2008-01-10 22:09:08 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * properly align FPC_RESLOCATION so that linking does not fail on some architectures (e.g. ppc64)
........
  r9711 | tom_at_work | 2008-01-10 23:53:12 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * fix splitting of 64 bit load/stores from/to unaligned memory locations into multiple load/stores, which in some cases generated wrong code
........
  r9712 | michael | 2008-01-11 11:00:08 +0100 (Fri, 11 Jan 2008) | 1 line
  
  * Fixed bug in BSS section on 64-bit platforms
........
  r9720 | giulio | 2008-01-12 10:02:04 +0100 (Sat, 12 Jan 2008) | 1 line
  
  Updated fcl-res documentation: occurrences of reslib changed to fcl-res.
........
  r9740 | giulio | 2008-01-13 19:36:44 +0100 (Sun, 13 Jan 2008) | 3 lines
  
   - Don't try to compile resources on systems with a non windows-like resource support.
   - Don't add the .or file to the list of object files if resource compiling failed.
........
  r10201 | giulio | 2008-02-04 11:35:44 +0100 (Mon, 04 Feb 2008) | 5 lines
  
  * resource compiling supported on OS/2 via wrc
  * CompileResourceFiles and CollectResourceFiles don't do target-specific checks anymore
  * refactored a bit
........
  r10389 | giulio | 2008-02-25 21:32:52 +0100 (Mon, 25 Feb 2008) | 2 lines
  
  Deleted test file which was committed by mistake
........
  r10472 | giulio | 2008-03-10 12:22:18 +0100 (Mon, 10 Mar 2008) | 2 lines
  
  changed define FPC_HAS_RESOURCES to FPC_HAS_WINLIKERESOURCES
........

git-svn-id: trunk@10481 -
2008-03-12 21:33:48 +00:00
..
alpha
arm * fixed copy&paste error in rev. 10460 2008-03-08 14:05:04 +00:00
avr * fixed fpu type setting for avr 2008-03-08 17:09:40 +00:00
html
i386 * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
ia64
m68k * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
mips + default code now preserves mm registers 2007-10-27 12:02:28 +00:00
msg Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
powerpc * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
powerpc64 Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
ppcgen * fixed wrong check in r10432 causing an internalerror for ppc/ppc64 2008-03-02 20:00:52 +00:00
sparc * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
systems Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
utils * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
vis
x86 * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
x86_64 * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
aasmbase.pas * new tf_smartlink_library flag 2007-10-01 16:55:08 +00:00
aasmdata.pas * Labels that are defined or referenced in a different lexical level 2008-01-19 13:50:58 +00:00
aasmsym.pas
aasmtai.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
aggas.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
aopt.pas
aoptbase.pas
aoptcs.pas
aoptda.pas
aoptobj.pas
assemble.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
browcol.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
bsdcompile
catch.pas
cclasses.pas * optimized TLinkedList.clear so it can use regvars for everything in 2007-09-02 16:16:25 +00:00
cfidwarf.pas
cfileutl.pas * optimize fixpath, findfile to not require temp ansistrings 2007-11-19 22:24:52 +00:00
cg64f32.pas * Rework the constexprint to allow operations from low(int64) to high(qword). 2007-06-13 07:41:18 +00:00
cgbase.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
cgobj.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
cgutils.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
charset.pas
cmsgs.pas * optimize fixpath, findfile to not require temp ansistrings 2007-11-19 22:24:52 +00:00
comphook.pas * optimize fixpath, findfile to not require temp ansistrings 2007-11-19 22:24:52 +00:00
compiler.pas * debuginfo initialized per unit 2007-10-23 18:19:17 +00:00
compinnr.inc + inline abs(<longint>) on x86 2007-11-25 18:54:40 +00:00
comprsrc.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
constexp.pas * avoid check being wrongly "optimized" away (left and right 2008-02-20 21:27:32 +00:00
COPYING
cp437.pas
cp850.pas
cp866.pas * added missing "reserved" field to new code page files to fix warnings 2007-05-31 15:07:48 +00:00
cp1251.pas - removed some unused variables 2007-07-17 13:57:15 +00:00
cp8859_1.pas
cp8859_5.pas * added missing "reserved" field to new code page files to fix warnings 2007-05-31 15:07:48 +00:00
crefs.pas * Rework the constexprint to allow operations from low(int64) to high(qword). 2007-06-13 07:41:18 +00:00
cresstr.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
cstreams.pas * fixed bootstrapping with 2.0.4 2007-07-18 12:15:55 +00:00
cutils.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
dbgbase.pas * generalize def and symbol handling 2008-02-03 17:52:30 +00:00
dbgdwarf.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
dbgstabs.pas * force ansistring concatenation when building stabs 2008-02-16 08:53:54 +00:00
defcmp.pas * changed byte/word/longbool to be Delphi-compatible (+ similar changes 2008-01-24 21:30:55 +00:00
defutil.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
export.pas
finput.pas * support -Xg under linux 2008-01-20 12:12:15 +00:00
fmodule.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
fpccrc.pas * Add -Xg to help pages 2008-01-17 01:20:37 +00:00
fpcdefs.inc + define cpunodefaultint 2008-03-01 20:31:56 +00:00
fppu.pas + support for setting the name of "main" (-XM command line parameter) in 2008-03-01 13:05:01 +00:00
gendef.pas
globals.pas * fixed fpu type setting for avr 2008-03-08 17:09:40 +00:00
globtype.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
htypechk.pas * don't allow passing ordinal and real constants to formal const parameters 2008-03-02 15:00:32 +00:00
impdef.pas
import.pas
link.pas * support -Xg under linux 2008-01-20 12:12:15 +00:00
Makefile * compare stripped copies of the compiler instead of the original 2008-01-11 20:08:47 +00:00
Makefile.fpc * compare stripped copies of the compiler instead of the original 2008-01-11 20:08:47 +00:00
MPWMake
msgidx.inc Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
msgtxt.inc Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
nadd.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
nbas.pas * safeguard the nf_block_with_exit flag when simplifying blockn and 2007-11-04 18:33:07 +00:00
ncal.pas + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone) 2008-03-02 12:59:02 +00:00
ncgadd.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
ncgbas.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgcal.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgcnv.pas * first part of implements clean up and fixing 2008-02-24 11:05:46 +00:00
ncgcon.pas * fixed compilation with 2.2.0 on big endian systems after r10432 2008-03-04 23:21:52 +00:00
ncgflw.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncginl.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgld.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgmat.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgmem.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ncgopt.pas * remove registers{int/mmx/fpu} from firstpass 2007-09-26 21:12:01 +00:00
ncgrtti.pas * Fix read/write enum on cpu's requiring alignment: Call 'align' the proper way. 2008-02-17 21:43:39 +00:00
ncgset.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
ncgutil.pas * increase/decrease refcount of interface value parameters on procedure 2008-03-01 10:25:27 +00:00
ncnv.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
ncon.pas * the result of not(dword(ordconst)) has to be dword as well for Delphi 2008-03-06 21:36:32 +00:00
nflw.pas * renamed t_times to executionweight and moved it to 2007-11-25 16:38:05 +00:00
ninl.pas * fixed crash when writing a currency value with a specified number 2008-03-02 10:22:25 +00:00
nld.pas * reverted 9727 and made a better fix for it 2008-01-13 13:23:19 +00:00
nmat.pas * make result of not(constant) (with constant type <= sinttype) 2008-03-07 16:33:15 +00:00
nmem.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
nobj.pas * fixed implements for interfaces 2008-03-01 20:20:49 +00:00
node.pas * optimize away unnecessary implicit upcasts to int64 for subtractions 2008-01-06 23:30:19 +00:00
nopt.pas * remove registers{int/mmx/fpu} from firstpass 2007-09-26 21:12:01 +00:00
nset.pas * in node simplify 2008-02-12 17:27:27 +00:00
nstate.pas
nutils.pas * first part of implements clean up and fixing 2008-02-24 11:05:46 +00:00
ogbase.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ogcoff.pas * replace constants to formal const with variables 2008-03-02 14:01:22 +00:00
ogelf.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
oglx.pas
ogmap.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
optbase.pas + first basically working (not all node types yet) dfa implementation determining life information 2007-05-06 21:33:39 +00:00
optcse.pas * fixed some crashes 2007-09-20 22:28:54 +00:00
optdfa.pas * fixed dfa for raise nodes 2007-07-23 20:22:36 +00:00
options.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
opttail.pas * error message when a goto label is optimized away 2007-10-17 21:52:25 +00:00
optunrol.pas * invalid typecast 2007-09-17 19:40:36 +00:00
optutils.pas + give more sophisticated warnings about uninitalized variables when life info is available 2007-06-03 17:35:48 +00:00
owar.pas
owbase.pas * do not use F field to get TObjectReader FileName as it is freed inside openfile method 2007-05-03 23:55:55 +00:00
parabase.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
paramgr.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
parser.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
pass_1.pas
pass_2.pas * indenting of node names 2007-09-09 14:03:31 +00:00
pbase.pas + experimental directive, resolves #10833 2008-02-15 19:29:34 +00:00
pdecl.pas - removed some unused variables 2007-07-17 13:57:15 +00:00
pdecobj.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
pdecsub.pas * give warning for disabling inline if assembler 2008-03-11 17:57:24 +00:00
pdecvar.pas + correct parsing interface delegation through classes 2008-03-09 11:16:05 +00:00
pexports.pas * Rework the constexprint to allow operations from low(int64) to high(qword). 2007-06-13 07:41:18 +00:00
pexpr.pas - revert fix for #10927: the old behaviour was Delphi compatible, 2008-03-08 18:17:31 +00:00
pinline.pas * remove registers{int/mmx/fpu} from firstpass 2007-09-26 21:12:01 +00:00
pmodules.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
pp.lpi
pp.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ppc68k.lpi
ppc.cfg
ppc.conf
ppc.dof
ppcarm.lpi
ppcppc.lpi
ppcsparc.lpi + sparc lazarus project file 2007-04-05 10:22:24 +00:00
ppheap.pas
ppu.pas + support for setting the name of "main" (-XM command line parameter) in 2008-03-01 13:05:01 +00:00
ppx86_64.lpi + x86_64 units for lazarus 2007-11-24 09:21:25 +00:00
procinfo.pas + PIC support for darwin/ppc32 (-Cg works now, no regressions in test 2007-09-26 16:41:32 +00:00
pstatmnt.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
psub.pas * fixed "array of const" check in r10473 (+ fixed indentation) 2008-03-12 10:48:19 +00:00
psystem.pas + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone) 2008-03-02 12:59:02 +00:00
ptconst.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
ptype.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
raatt.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
rabase.pas
rasm.pas
rautils.pas * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
README * split cpu64bit compiler define into 2008-02-13 20:44:00 +00:00
regvars.pas
rescmn.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
rgbase.pas
rgobj.pas * remove goto, that prevents optimizations 2008-01-28 18:13:32 +00:00
scandir.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
scanner.pas * replace constants to formal const with variables 2008-03-02 14:01:22 +00:00
script.pas * fixed handling of directories with spaces for LdSupportsNoResponseFile- 2007-11-24 18:06:01 +00:00
switches.pas + forbid usage of $E on targets supporting no fpu emulation 2007-06-10 17:03:26 +00:00
symbase.pas
symconst.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
symdef.pas * cleanup and simplify the set type handling 2008-03-02 17:48:27 +00:00
symnot.pas
symsym.pas * Labels that are defined or referenced in a different lexical level 2008-01-19 13:50:58 +00:00
symtable.pas * Don't issue "Local variable is assigned but never used" warning for external variables. 2007-12-26 16:30:45 +00:00
symtype.pas * Convert guid load/save to endian safe code. 2007-06-30 21:45:20 +00:00
symutil.pas * Rework the constexprint to allow operations from low(int64) to high(qword). 2007-06-13 07:41:18 +00:00
systems.pas Merged revisions 9693-10480 via svnmerge from 2008-03-12 21:33:48 +00:00
tgobj.pas * for ARM CPU records must be aligned in stack depending of record size to prevent misaligned error when the record is passed as parameter in registers. It fixes tcalext* tests for ARM. 2007-06-20 20:31:06 +00:00
tokens.pas + experimental directive, resolves #10833 2008-02-15 19:29:34 +00:00
verbose.pas * fixed skipping of character after number of errors to report in 2008-02-19 20:20:26 +00:00
version.pas
widestr.pas * make code page name parsing case insensitive (mantis #8930) 2007-09-22 20:54:49 +00: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
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