Browse Source

o new BeOS patch by Olivier Coursiere:
* correctly define the stack size for BeOS,
+ implement a minimum nl_langinfo function to correctly initialize WideString support
+ add fgl unit in the BeOS RTL makefile
* SysOSAlloc now return nil when the system can not allocate the asked memory,
* HAS_SYSOSFREE is no more defined with an empty implementation under BeOS. This was preventing FPC to reuse memory.
+ there is now a basic implementation of CheckPointer under BeOS.

git-svn-id: trunk@8994 -

florian 18 years ago
parent
commit
7f4c387841
6 changed files with 51 additions and 929 deletions
  1. 11 1
      compiler/systems/i_beos.pas
  2. 5 921
      rtl/beos/Makefile
  3. 5 1
      rtl/beos/Makefile.fpc
  4. 4 5
      rtl/beos/sysheap.inc
  5. 17 0
      rtl/inc/heaptrc.pp
  6. 9 1
      rtl/unix/cwstring.pp

+ 11 - 1
compiler/systems/i_beos.pas

@@ -83,7 +83,17 @@ unit i_beos;
                 maxCrecordalign : 4
               );
             first_parm_offset : 8;
-            stacksize    : 8192;
+            { Stack size used to be 256 K under BeOS. So, it was the value 
+              used in previous version of FPC for BeOS (but lost in the road 
+              to 2.* ;-).
+              According to buildtools/gcc/gcc/config/i386/beos-elf.h in the 
+              Haiku's repository, this value was increased to 1Mb since r4.1b3.
+              Under R5, this value is even greater. listarea report a default 
+              size of 16 Mb for the user stack of the main thread.
+              People who still use BeOS nowadays should use R5 (or Haiku), 
+              so i use this new value.  
+            }
+            stacksize    : 16 * 1024 * 1024;
             abi : abi_default
           );
 

+ 5 - 921
rtl/beos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/29]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-beos
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -255,941 +255,23 @@ endif
 override FPCOPT+= -dHASUNIX -n -dFPC_USE_LIBC -Si
 OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_LOADERS+=prt0 cprt0 func dllprt
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
-endif
 override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
+ifeq ($(FULL_TARGET),i386-beos)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
 override COMPILER_TARGETDIR+=.
 endif
 ifdef REQUIRE_UNITSDIR
@@ -2518,6 +1600,8 @@ sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
 classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
 		   sysutils$(PPUEXT) $(OBJPASDIR)/typinfo$(PPUEXT) types$(PPUEXT) $(OBJPASDIR)/rtlconsts$(PPUEXT) 
 	$(COMPILER) -Fi$(OBJPASDIR) -Fi$(OBJPASDIR)/classes classes.pp
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+	$(COMPILER) $(OBJPASDIR)/fgl.pp
 typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)

+ 5 - 1
rtl/beos/Makefile.fpc

@@ -11,7 +11,7 @@ units=system baseunix unixtype ctypes objpas macpas strings \
 #      beos \
       errors dos dl objects \
       sysconst sysutils \
-      types charset ucomplex typinfo classes math varutils \
+      types charset ucomplex typinfo classes fgl math varutils \
       cpu mmx getopts heaptrc lineinfo lnfodwrf variants \
       rtlconsts syscall unix unixutil strutils termio initc \
       cmem crt video mouse keyboard \
@@ -167,6 +167,9 @@ classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
 #                   $(UNIXINC)/systhrd$(PPUEXT)
         $(COMPILER) -Fi$(OBJPASDIR) -Fi$(OBJPASDIR)/classes classes.pp
 
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+        $(COMPILER) $(OBJPASDIR)/fgl.pp
+
 typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
         $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 
@@ -250,3 +253,4 @@ variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) sysconst$(PPUEXT) varut
 cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
 
 
+

+ 4 - 5
rtl/beos/sysheap.inc

@@ -18,21 +18,19 @@ function sbrk2 (size : longint):pointer; cdecl; external name 'sbrk';
 
 function SysOSAlloc(size: ptruint): pointer;
 begin
+{  result:=Fpmmap(nil,Size,3,MAP_PRIVATE+MAP_ANONYMOUS,-1,0);}
   result := sbrk2(size);
-{  result:=Fpmmap(nil,Size,3,MAP_PRIVATE+MAP_ANONYMOUS,-1,0);
   if result=pointer(-1) then
     result:=nil
   else
     seterrno(0);
-}
 end;
 
-{$define HAS_SYSOSFREE}
+{ $ define HAS_SYSOSFREE}
 
 procedure SysOSFree(p: pointer; size: ptruint);
 begin
-//  fpmunmap(p, size);
-//  WriteLn('TODO : SysOSFree');
+  //  fpmunmap(p, size);
 end;
 
 
@@ -51,3 +49,4 @@ end;
 
 }
 
+

+ 17 - 0
rtl/inc/heaptrc.pp

@@ -908,6 +908,16 @@ var
    ebss : ptruint; external name '__bss_end__';
 {$endif}
 
+{$ifdef BEOS}
+const
+  B_ERROR = -1;
+
+type
+  area_id   = Longint;
+
+function area_for(addr : Pointer) : area_id;
+            cdecl; external 'root' name 'area_for'; 
+{$endif BEOS}
 
 procedure CheckPointer(p : pointer); [public, alias : 'FPC_CHECKPOINTER'];
 var
@@ -1002,6 +1012,13 @@ begin
   exit;
   {$endif}
 
+{$ifdef BEOS}
+  // if we find the address in a known area in our current process, 
+  // then it is a valid one
+  if area_for(p) <> B_ERROR then
+    goto _exit;  
+{$endif BEOS}
+
   { first try valid list faster }
 
 {$ifdef EXTRA}

+ 9 - 1
rtl/unix/cwstring.pp

@@ -125,7 +125,15 @@ threadvar
 function nl_langinfo(__item:nl_item):pchar;
 begin
   {$warning TODO BeOS nl_langinfo or more uptodate port of iconv...}  
-  Result := '';
+  // Now implement the minimum required to correctly initialize WideString support
+  case __item of
+    CODESET : Result := 'UTF-8'; // BeOS use UTF-8
+    else
+    begin
+      Assert(False, 'nl_langinfo was called with an unknown nl_item value');
+      Result := '';
+    end;    
+  end;
 end;
 {$endif}