fpc/rtl
Jonas Maebe 5a2ccfff52 --WARNING: start build process with FPC 2.2.4; won't work when
starting with a previous 2.3.1 or compiler built from the objc branch
  + added basic objcprotocol support (only for external protocols
    currently)
     o use in type declaration: "type xp = objcprotocol ... end;"
     o when defining a root class that implements it:
       "type yc = objcclass(xp) ... end" (note: no support yet
       for something like "objcclass(id,xp)" or so)
     o when defining a non-root class that implements a protocol:
       "type zc = objcclass(nsobject,xp) ... end"
     o includes support for "required" and "optional" sections
     o no support yet for the objcprotocol(<protocol>) expression
       that enables getting a class instance representing the
       protocol (e.g., for use with "conformsToProtocol:")
     o message names have to specified in protocol declarations,
       but if an objcclass implements a protocol, the message names do
       not have to be repeated (but if they are, they have to match;
       the same goes when overriding inherited methods)
  + allow specifying the external name of Objective-C classes and
    protocols, since classes and protocols can have the same name
    (and you cannot use the same Pascal identifier in such caseq)
  + added NSObject protocol, and make the NSObject class use it
  + added missing NSObject class methods that have the same name
    as instance methods (added "class" name prefix to avoid clashes)
  * fixed several cases where the compiler did not treat Objective-C
    classes/protocols the same as Object Pascal classes/interfaces
    (a.o., forward declarations, alignment, regvars, several type
     conversions, ...)
  * allow "override" directive in objcclass declarations, and print
    a hint if it's forgotten in an external declaration (because it
    doesn't really matter there, and may make automated header
    conversion harder than necessary) and an error if will be used in
    a non-external declaration (because it is not possible to start
    a new vmt entry-tree in Objective-C, you can only override parent
    methods)
  * reject objcclasses/protocols as parameters to typeof()
  * don't try to test VMT validity of objcclasses/protocols

git-svn-id: branches/objc@13375 -
2009-07-09 20:48:28 +00:00
..
amiga * changed the parameters of gotoxy() and the return values of wherex/wherey 2009-05-24 11:48:49 +00:00
arm * return 0 for length(pchar(0)), like Kylix does (using corrected and 2009-01-01 22:02:17 +00:00
atari * unicodestringmanager patch from r11743 extended to OS/2 and other platforms using system.pas instead of system.pp 2008-12-19 12:47:17 +00:00
avr * some avr fixes 2008-07-13 18:16:24 +00:00
beos * Removed unused private fields TThread.FMethod and TThread.FSynchronizeException. 2009-05-02 12:09:30 +00:00
bsd + Darwin-specific fcntl constants 2009-05-23 10:10:56 +00:00
darwin * initial Objective-C 1.0 support: 2009-05-17 13:42:50 +00:00
embedded * setup stacks properly 2009-06-27 12:53:57 +00:00
emx * unicodestringmanager patch from r11743 extended to OS/2 and other platforms using system.pas instead of system.pp 2008-12-19 12:46:58 +00:00
freebsd * remove the RTL's installed signal handlers at the end of the system 2009-05-02 09:40:44 +00:00
gba * updated nds/gba linker scripts and reverted some changes for 2.2.4a release 2009-05-31 12:15:24 +00:00
go32v2 * changed the parameters of gotoxy() and the return values of wherex/wherey 2009-05-24 11:48:49 +00:00
haiku * remove the RTL's installed signal handlers at the end of the system 2009-05-02 09:40:44 +00:00
i386 * applied feature dependencies patch by Sven Barth from mantis #13673 : 2009-05-09 20:08:57 +00:00
inc --WARNING: start build process with FPC 2.2.4; won't work when 2009-07-09 20:48:28 +00:00
linux * fixed linux flock type by defining and using a kernel_off_t type 2009-05-09 19:47:59 +00:00
m68k
macos * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
morphos * fixed typo 2009-02-28 12:14:59 +00:00
nds * fixed properties 2009-06-22 18:55:28 +00:00
netbsd * remove the RTL's installed signal handlers at the end of the system 2009-05-02 09:40:44 +00:00
netware * changed the parameters of gotoxy() and the return values of wherex/wherey 2009-05-24 11:48:49 +00:00
netwlibc * changed the parameters of gotoxy() and the return values of wherex/wherey 2009-05-24 11:48:49 +00:00
objpas * fixed setstrprop() for shortstring properties (based on hint by Zawullon, 2009-06-26 11:34:04 +00:00
openbsd * remove the RTL's installed signal handlers at the end of the system 2009-05-02 09:40:44 +00:00
os2 * Change so that when FindFirst initially returns nonzero, FindClose is no longer needed (Windows compatible) 2009-05-29 07:27:41 +00:00
palmos * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
powerpc * fixed return value of InterlockedCompareExchange(64) for ppc/ppc64, 2009-05-11 07:26:48 +00:00
powerpc64 * fixed return value of InterlockedCompareExchange(64) for ppc/ppc64, 2009-05-11 07:26:48 +00:00
qnx * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
solaris * remove the RTL's installed signal handlers at the end of the system 2009-05-02 09:40:44 +00:00
sparc + support for the different rounding modes in the generic rounding 2008-06-27 17:20:56 +00:00
symbian - removed all "islibrary:=false;" assignments from system unit 2008-12-17 17:48:04 +00:00
ucmaps
unix * do not mark all found files with Find* as "faHidden" if the search path 2009-06-21 10:21:06 +00:00
watcom * changed the parameters of gotoxy() and the return values of wherex/wherey 2009-05-24 11:48:49 +00:00
win * dss constants from Paul 2009-06-20 11:17:41 +00:00
win32 * Lazarus .lpi version has been increased 2009-06-16 20:11:39 +00:00
win64 * Use RIP relative symbol addressing in assembler blocks. Finally bug #13657 is fixed. 2009-05-13 10:45:54 +00:00
wince * Added declaration of GlobalReAllocPtr() for wince. Bug #13897. 2009-06-03 09:28:18 +00:00
x86_64 * Use RIP relative symbol addressing in assembler blocks. Finally bug #13657 is fixed. 2009-05-13 10:45:54 +00:00
COPYING.FPC
COPYING.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
fpmake.inc * start of conversion to fpmake 2008-01-08 23:44:09 +00:00
fpmake.pp * include fix fixes 2008-04-01 22:39:52 +00:00
Makefile + build embedded rtl 2009-02-01 17:17:39 +00:00
Makefile.fpc + build embedded rtl 2009-02-01 17:17:39 +00:00
README.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00

This is the Run-Time Library (RTL) tree for Free Pascal.

To recompile the RTL, edit the main makefile. The makefiles NEED a GNU make
compatible make, they need unix-like 'rm' and 'mv' commands, as well as some
others. You can find these in the gnuutils package on the ftp site.

The main makefile is located ABOVE the RTL tree. It uses the FPC
makefile.fpc to guess reasonable defaults for everything it needs.
(these files can be found in base.zip on the FTP site)

The only variable that you may want to set are
FPC             - What compiler to use. Use an absolute path. 
                  (default is ppc386)
INSTALL_UNITDIR - Where to install the RTL units 
OPT             - any special options you want to set for the compiler.

In principle, you can also descend into the subdirectory of your OS, and
type 'make' there, that should also compile everything.

The tree contains subdirectories for all the supported operating systems,
as well as all processor architectures. The processor directories contain
low-level routines which are required for the system unit (if they are not 
available in high-level language form), as well as optimized versions of
the pascal generic routines (the generic routine source code is localed in
the inc subdirectory).

The following directories are not supported officially and may not work
correctly with FreePascal v1.0:

go32v1 - The DJGPP go32v1 DOS extender (no longer supported)
palmos - The PalmOS directory for the Dragonball (incomplete)


Enjoy.