Browse Source

+ lnfogdb unit that can use gdb to symbolicate backtraces on unix targets
(used for stabx/aix)

git-svn-id: trunk@20833 -

Jonas Maebe 13 years ago
parent
commit
d545a72f1a
5 changed files with 256 additions and 78 deletions
  1. 1 0
      .gitattributes
  2. 8 4
      compiler/pmodules.pas
  3. 68 69
      rtl/aix/Makefile
  4. 3 5
      rtl/aix/Makefile.fpc
  5. 176 0
      rtl/unix/lnfogdb.pp

+ 1 - 0
.gitattributes

@@ -8364,6 +8364,7 @@ rtl/unix/initc.pp svneol=native#text/plain
 rtl/unix/ipc.pp svneol=native#text/plain
 rtl/unix/ipc.pp svneol=native#text/plain
 rtl/unix/ipccdecl.inc svneol=native#text/plain
 rtl/unix/ipccdecl.inc svneol=native#text/plain
 rtl/unix/keyboard.pp svneol=native#text/plain
 rtl/unix/keyboard.pp svneol=native#text/plain
+rtl/unix/lnfogdb.pp svneol=native#text/plain
 rtl/unix/mouse.pp svneol=native#text/plain
 rtl/unix/mouse.pp svneol=native#text/plain
 rtl/unix/oscdecl.inc svneol=native#text/plain
 rtl/unix/oscdecl.inc svneol=native#text/plain
 rtl/unix/oscdeclh.inc svneol=native#text/plain
 rtl/unix/oscdeclh.inc svneol=native#text/plain

+ 8 - 4
compiler/pmodules.pas

@@ -675,10 +675,14 @@ implementation
              AddUnit('heaptrc');
              AddUnit('heaptrc');
            { Lineinfo unit }
            { Lineinfo unit }
            if (cs_use_lineinfo in current_settings.globalswitches) then begin
            if (cs_use_lineinfo in current_settings.globalswitches) then begin
-             if (paratargetdbg = dbg_stabs) then
-               AddUnit('lineinfo')
-             else
-               AddUnit('lnfodwrf');
+             case paratargetdbg of
+               dbg_stabs:
+                 AddUnit('lineinfo');
+               dbg_stabx:
+                 AddUnit('lnfogdb');
+               else
+                 AddUnit('lnfodwrf');
+             end;
            end;
            end;
            { Valgrind requires c memory manager }
            { Valgrind requires c memory manager }
            if (cs_gdb_valgrind in current_settings.globalswitches) then
            if (cs_gdb_valgrind in current_settings.globalswitches) then

+ 68 - 69
rtl/aix/Makefile

@@ -321,205 +321,205 @@ ifndef USELIBGGI
 USELIBGGI=NO
 USELIBGGI=NO
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-openbsd)
 ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-aix)
 ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),mips-linux)
 ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 override TARGET_IMPLICITUNITS+=exeinfo
@@ -2529,8 +2529,7 @@ mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(INC)/heaptrc.pp
 	$(COMPILER) -Sg $(INC)/heaptrc.pp
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT)
-lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
+lnfogdb$(PPUEXT) : $(UNIXINC)/lnfogdb.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT)
 charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
 charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
 ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) math$(PPUEXT)
 ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) math$(PPUEXT)
 sockets$(PPUEXT) : sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \
 sockets$(PPUEXT) : sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \

+ 3 - 5
rtl/aix/Makefile.fpc

@@ -8,10 +8,10 @@ main=rtl
 [target]
 [target]
 loaders=
 loaders=
 units=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas \
 units=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas \
-      heaptrc lineinfo \
+      heaptrc \
       baseunix unixutil \
       baseunix unixutil \
       termio unix initc cmem \
       termio unix initc cmem \
-      crt printer \
+      crt printer lnfogdb \
       sysutils typinfo math fgl classes matrix varutils \
       sysutils typinfo math fgl classes matrix varutils \
       charset ucomplex getopts \
       charset ucomplex getopts \
       errors sockets \
       errors sockets \
@@ -264,9 +264,7 @@ getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) -Sg $(INC)/heaptrc.pp
         $(COMPILER) -Sg $(INC)/heaptrc.pp
 
 
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT)
-
-lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
+lnfogdb$(PPUEXT) : $(UNIXINC)/lnfogdb.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT)
 
 
 charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
 charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
 
 

+ 176 - 0
rtl/unix/lnfogdb.pp

@@ -0,0 +1,176 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2012 by Jonas Maebe
+
+    Stabs Line Info Retriever
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+{
+  This unit should not be compiled in objfpc mode, since this would make it
+  dependent on objpas unit.
+}
+unit lnfogdb;
+
+interface
+
+{$S-}
+{$Q-}
+
+function GetLineInfo(addr:ptruint;var func,source:string;var line:longint) : boolean;
+
+implementation
+
+uses
+  ctypes,baseunix,unix;
+
+function GetLineInfo(addr:ptruint;var func,source:string;var line:longint) : boolean;
+  var
+    mypid: pid_t;
+    res,
+    err: cint;
+    command,
+    pidstr: string;
+    commfile,
+    resfile: text;
+  begin
+    GetLineInfo:=false;
+    {$i-}
+    { reset inoutres in case it was set by a previous operation }
+    ioresult;
+    mypid:=fpgetpid;
+    str(mypid,pidstr);
+    { create temporary file containig gdb command }
+    assign(commfile,'/tmp/fpcbt'+pidstr);
+    rewrite(commfile);
+    if ioresult<>0 then
+      exit;
+    str(addr,command);
+    writeln(commfile,'attach '+pidstr);
+    writeln(commfile,'info line *'+command);
+    res:=ioresult;
+    close(commfile);
+    if (res<>0) or
+       (ioresult<>0) then
+      begin
+        erase(commfile);
+        exit;
+      end;
+    { execute gdb to get the linenr info (set language to English (=C) for
+      parsing reasons) }
+    res:=fpsystem('LANG=C gdb '+paramstr(0)+' -n -batch -x /tmp/fpcbt'+pidstr+' > /tmp/fpcbt'+pidstr+'.out');
+    erase(commfile);
+{$ifdef DEBUG_LINEINFO}
+    writeln('rescode from executing gdb: ',res);
+{$endif}
+    if res<>0 then
+      exit(false);
+    assign(resfile,'/tmp/fpcbt'+pidstr+'.out');
+    reset(resfile);
+    if ioresult<>0 then
+      begin
+        erase(resfile);
+        exit;
+      end;
+    { get last line }
+    while not eof(resfile) do
+      readln(resfile,command);
+    res:=ioresult;
+    close(resfile);
+    { clear inoutres, don't really care about result of close }
+    ioresult;
+    erase(resfile);
+    if (res<>0) or
+       (ioresult<>0) then
+      exit;
+    { format:
+        Line 16 of "hello.pp" starts at address 0x100003a4 <PASCALMAIN+24> and ends at 0x100003b0 <PASCALMAIN+36>.
+          or
+        No line number information available for address 0x3aca
+     }
+{$ifdef DEBUG_LINEINFO}
+     writeln('gdb result: ',command);
+{$endif}
+     if copy(command,1,5)<>'Line ' then
+       exit(false);
+     { extract line number }
+     delete(command,1,5);
+     res:=pos(' ',command);
+     if res=0 then
+       exit(false);
+     val(copy(command,1,res-1),line,err);
+     if err<>0 then
+       exit;
+     { extra file name }
+     delete(command,1,res+4);
+     res:=pos('"',command);
+     if res=0 then
+       exit;
+     source:=copy(command,1,res-1);
+     { if we can't extract the function name: no big deal }
+     func:='';
+     GetLineInfo:=true;
+     res:=pos('<',command);
+     if res=0 then
+       exit;
+     delete(command,1,res);
+     res:=pos('>',command);
+     if res=0 then
+       res:=length(command)
+     else
+       begin
+         err:=pos('+',command);
+         if err<res then
+           res:=err;
+       end;
+     func:=copy(command,1,res-1)
+  end;
+
+function GdbBackTraceStr(addr:Pointer):shortstring;
+var
+  func,
+  source : string;
+  hs     : string[32];
+  line   : longint;
+  Store  : TBackTraceStrFunc;
+  Success : boolean;
+begin
+{$ifdef DEBUG_LINEINFO}
+  writeln(stderr,'StabxBackTraceStr called');
+{$endif DEBUG_LINEINFO}
+  { reset to prevent infinite recursion if problems inside the code PM }
+  Success:=false;
+  Store:=BackTraceStrFunc;
+  BackTraceStrFunc:=@SysBackTraceStr;
+  Success:=GetLineInfo(ptruint(addr),func,source,line);
+{ create string }
+  GdbBackTraceStr:='  $'+HexStr(ptruint(addr),sizeof(ptruint)*2);
+  if func<>'' then
+    GdbBackTraceStr:=GdbBackTraceStr+'  '+func;
+  if source<>'' then
+   begin
+     if func<>'' then
+      GdbBackTraceStr:=GdbBackTraceStr+', ';
+     if line<>0 then
+      begin
+        str(line,hs);
+        GdbBackTraceStr:=GdbBackTraceStr+' line '+hs;
+      end;
+     GdbBackTraceStr:=GdbBackTraceStr+' of '+source;
+   end;
+  if Success then
+    BackTraceStrFunc:=Store;
+end;
+
+
+initialization
+  BackTraceStrFunc:=@GdbBackTraceStr;
+
+end.
+