fpc/rtl
florian e9c5458dd2 o patch by Nico Erfurth:
* Fix for InterLockedCompareExchange on ARMEL

InterLockedCompareExchange would not return the current data on failure.
Getting this to work correctly is a bit tricky. As kuser_cmpxchg does
not return the set value, we have to load it.
There is a tiny chance that we get rescheduled between calling
kuser_cmpxchg and loading the value. If the value changed in between
there is the possibility that we would return the Comperand without
having done an actual swap. Which might cause havoc and destruction.

So, if the exchange failed, compare the value and loop again in case
of CurrentValue == Comperand.

* Improve testing of InterLockedCompareExchange

Added a test to check for the case when Comperand is different from the
current value.

git-svn-id: trunk@20514 -
2012-03-11 21:08:57 +00:00
..
amiga Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
arm o patch by Nico Erfurth: 2012-03-11 21:08:57 +00:00
atari rtl: init widestring and unitcodestring managers before initialization of Standard IO files (stdin,stdout,stderr) 2011-10-25 02:29:29 +00:00
avr
beos Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
bsd NetBSD code added 2012-02-13 16:44:23 +00:00
darwin Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
embedded Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
emx Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
freebsd Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
gba Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
go32v2 Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
haiku * Minor spelling corrections in comments, patch by Graeme, Mantis #21397 2012-03-01 10:28:40 +00:00
i386 * Replaced i386 assembler IndexByte by more sophisticated implementation, larger in size but faster by factor from 2 (on Athlon X2 L310) to 5 (on Core2Duo E7200) for 512 byte buffers. 2012-01-28 17:54:36 +00:00
inc * dereference pchar passed to indexbyte in strecopy (patch by Andrew Haines, 2012-03-08 18:55:49 +00:00
linux * version updated 2012-02-22 17:47:54 +00:00
m68k
macos Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
mips + Add ifdef USE_MIPS_STK2_ASM to disable assmebler code using alterante stack with r23 by default 2012-02-19 19:00:21 +00:00
mipsel * started to fix the mips(el) linux rtl 2012-02-04 21:25:53 +00:00
morphos Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
nativent Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
nds Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
netbsd Protect against nil values for info or SigContext 2012-02-15 13:20:26 +00:00
netware Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
netwlibc Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
objpas * add a check to TRecall.store for FStorage=nil. Patch by Luiz, Mantis #21404 2012-03-02 09:43:12 +00:00
openbsd Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
os2 Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
palmos Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
powerpc
powerpc64
qnx * patch by Alexander Shishkin to clean up $ifopt usage by $push/$pop, resolves #20346 2011-09-27 20:22:40 +00:00
solaris Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
sparc
symbian Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
ucmaps
unix * use same code path for iphonesim as for darwin (should fix mantis #21190) 2012-02-17 20:28:43 +00:00
watcom rtl: init widestring and unitcodestring managers before initialization of Standard IO files (stdin,stdout,stderr) 2011-10-25 02:29:29 +00:00
wii Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
win win rtl: add BM_SETDONTCLICK message 2012-03-11 01:45:35 +00:00
win32 Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
win64 Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
wince Update Makefile for mips-linux support 2012-02-29 11:22:05 +00:00
x86_64 * Cleaned out code marked as originated from glibc: 2012-02-14 16:09:45 +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 * some Makefiles regenerated to support mips-linux 2012-02-04 09:50:03 +00:00
Makefile.fpc * Add openbsd directory for openbsd source 2011-10-04 22:25:12 +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.