fpc/rtl
Jonas Maebe df6a2dce00 + unicodestring support for assign/erase/rename
+ codepage support for textrec/filerec and the above routines
  * textrec/filerec now store the filename by default using widechar. It is
    possible to switch back to ansichars using the FPC_ANSI_TEXTFILEREC define.
    In that case, from now on the filename will always be stored in
    DefaultFileSystemEncoding
  * fixed potential buffer overflows and non-null-terminated file names in
    textrec/filerec
  + dodirseparators(pwidechar), changed the dodirseparators(pchar/pwidechar)
    parameters into var-parameters and gave those routines an extra parameter
    that indicates whether the p(wide)char can be changed in place if
    necessary or whether a copy must be made first (avoids us having to make
    all strings always unique everywhere, because they might be changed on
    some platforms via a pchar)
  * do_open/do_erase/do_rename got extra boolean parameters indicating whether
    the passed pchars point to data that can be freely changed (to pass on to
    dodirseparators() if applicable)
  * objects.pp: force assign(pchar) to be called, because
    assign(array[0..255]) cannot choose between pchar and rawbytestring
    versions (and removing the pchar version means that assign(pchar) will
    be mapped to assign(shortstring) in {$h-})
  * fixed up some routines in other units that depend on the format of
    the textrec/filerec.name field

git-svn-id: branches/cpstrrtl@25137 -
2013-07-19 16:30:51 +00:00
..
aix + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
amiga + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
android * Android: There are cases when libc "environ" var may be NULL. Check for such case and provide fake valid environment. Bug #24519. 2013-06-04 15:21:29 +00:00
arm * disable assembler versions of string routines for arm thumb 2013-03-25 17:54:32 +00:00
atari + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
avr
beos + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
bsd * some O_ constants. Patch by Barlone. 2013-05-20 15:30:40 +00:00
charmaps rtl: add missing windows codepages (mantis #0024294) 2013-04-22 01:48:12 +00:00
darwin + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
embedded + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
emx + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
freebsd + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
gba + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
go32v2 + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
haiku + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
i386 * Fixed overflow handling in i386 assembler implementations of fpc_div_qword and fpc_mod_qword. 2013-04-29 01:12:45 +00:00
i8086 * fpc_setjmp and fpc_longjmp updated to support far code memory models 2013-06-11 23:59:30 +00:00
inc + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
java + support for CP_OEMCP 2013-07-12 17:18:24 +00:00
jvm * Revert changes to java-related files by r23604. 2013-02-13 13:13:21 +00:00
linux + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
m68k rtl/m68k/m68k.inc: 2013-01-17 21:19:27 +00:00
macos + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
mips * InterlockedIncrement/Decrement must return the modified value, not the initial one. Fixes a number of interface memory leaks in MIPS test suite. The functions remain not thread-safe yet. 2013-01-15 19:17:57 +00:00
mipsel
morphos + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
msdos + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
nativent + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
nds + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
netbsd + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
netware + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
netwlibc + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
objpas * moved SYSUTILS_HAS_ANSISTR/UNICODESTR_FILEUTIL_IMPL define to interface 2013-07-16 14:16:34 +00:00
openbsd + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
os2 + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
palmos + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
powerpc
powerpc64
qnx + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
solaris + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
sparc * use membar only for sparcv9(+) 2012-12-03 21:55:51 +00:00
symbian + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
ucmaps - remove maps with unclear header 2012-09-18 18:46:23 +00:00
unix + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
watcom + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
wii + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
win + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
win32 + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
win64 + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we 2013-06-27 21:37:39 +00:00
wince + unicodestring support for assign/erase/rename 2013-07-19 16:30:51 +00:00
x86_64 * Fix win64 math unit compilation 2013-04-26 09:37:48 +00:00
COPYING.FPC
COPYING.txt
fpmake.inc
fpmake.pp
Makefile Regenerate all Makefiles with an up-to-date fpcmake binary (dummy commit) 2013-04-29 12:30:54 +00:00
Makefile.fpc * merge i8086 branch by Nikolay Nikolov 2013-04-25 20:23:51 +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.