fpc/rtl
Jonas Maebe 598d2feeb6 + rtldefs.inc file for every target that contains defines shared by multiple
RTL units. Comes with a FPCRTL_FILESYSTEM_UTF8 define that can be
    activated for targets whose single byte filesystem interface enforces
    UTF-8; included in inc/systemh.inc and unix/cwstring.pp until now
  + DefaultFileSystemCodePage variable that holds the code page used for
    communicating with the OS single byte file system APIs, and for the
    strings returned by those same APIs. Initialized with
   o the result of GetACP in the system unit of Windows platforms, except for
     WinCE which uses UTF-8 since its file system OS API calls already use
     the UTF-16 versions
   o CP_UTF8 on Unix platforms with FPCRTL_FILESYSTEM_UTF8 defined, and with
     DefaultSystemCodePage on other Unix platforms
   o DefaultSystemCodePage on Java/Android JVM targets
  + DefaultRTLFileSystemCodePage variable that holds the code page used to
    encode strings returned by RTL routines that return filenames obtained
    from OS API calls. By default the same as DefaultFileSystemCodePage on
    all platforms. Separate from DefaultFileSystemCodePage for clarity on
    platforms that may use either utf-16 or single byte OS API calls to
    send/receive file names (such as most Windows platforms)
  + new scpFileSystemSingleByte enum that can be passed to
    GetStandardCodePage() to get the default code page for OS single byte file
    system APIs, with implementations for Unix and Windows
  + SetMultiByteFileSystemCodePage() procedure to override the value of
    DefaultFileSystemCodePage

  In principle, in the long run unchanged programs only using generic
  ansistrings and unicodestrings should (mostly) behave the same as in
  FPC 2.6.0 as far as RTL-level file system APIs are concerned if
  they set DefaultFileSystemCodePage and DefaultRTLFileSystemCodePage
  to DefaultSystemCodePage at the start of their execution

git-svn-id: branches/cpstrrtl@22466 -
2012-09-27 07:54:06 +00:00
..
aix + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
amiga + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
android/jvm * synchronised with trunk up to r21067 2012-04-26 21:24:20 +00:00
arm * disable hand optimized assembler for arm thumb2 as well 2012-09-04 14:29:52 +00:00
atari + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
avr + Added additional addr pointer parameter to 2012-06-24 21:22:09 +00:00
beos + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
bsd bsd: set DefaultSystemCodePage without cwstring.pas 2012-09-17 02:33:06 +00:00
darwin + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
embedded * synchronised with trunk up to r21067 2012-04-26 21:24:20 +00:00
emx + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
freebsd + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
gba + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
go32v2 + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
haiku + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
i386 * Bsf/Bsr on x86 handle now correctly 0 as argument, resolves #22783 2012-09-05 13:51:45 +00:00
inc + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
java + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
jvm * add get_frame as an internal symbol for the jvm target because that target 2012-07-12 13:25:02 +00:00
linux + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
m68k + Added additional addr pointer parameter to 2012-06-24 21:22:09 +00:00
macos + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
mips * cause bits must be clear as flags to avoid a second FPU exception 2012-07-10 12:31:46 +00:00
mipsel + several redirection include files for mipsel/mipsel-linux 2012-04-21 18:21:09 +00:00
morphos + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
nativent + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
nds + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
netbsd + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
netware + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
netwlibc + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
objpas * prevent code page conversion in CharInSet(widechar,tsyscharset) 2012-09-26 20:46:19 +00:00
openbsd + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
os2 + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
palmos + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
powerpc + Added additional addr pointer parameter to 2012-06-24 21:22:09 +00:00
powerpc64 + Added additional addr pointer parameter to 2012-06-24 21:22:09 +00:00
qnx + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
solaris + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
sparc Do not add 8 to NIL values of get_caller_addr 2012-09-11 08:08:48 +00:00
symbian + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
ucmaps - remove maps with unclear header 2012-09-18 18:46:23 +00:00
unix + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
watcom + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
wii + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
win + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
win32 + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
win64 + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
wince + rtldefs.inc file for every target that contains defines shared by multiple 2012-09-27 07:54:06 +00:00
x86_64 * declare Sptr() and get_frame() as "nostackframe" 2012-08-24 18:49:33 +00:00
COPYING.FPC
COPYING.txt
fpmake.inc rtl: enable character unit compilation for win32 2011-09-22 02:07:05 +00:00
fpmake.pp
Makefile * synchronised with trunk up to r21067 2012-04-26 21:24:20 +00:00
Makefile.fpc * merged trunk up to r20882 2012-04-15 15:54:10 +00:00
README.txt

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.