瀏覽代碼

* fixed.

--- Merging r19350 into '.':
U    rtl/unix/ipc.pp
U    rtl/unix/bunxh.inc
U    rtl/bsd/bunxsysc.inc
--- Merging r19374 into '.':
U    rtl/Makefile.fpc
--- Merging r19409 into '.':
U    rtl/bsd/ostypes.inc
--- Merging r19412 into '.':
U    compiler/systems/i_bsd.pas
--- Merging r19415 into '.':
U    compiler/ncgflw.pas
--- Merging r19416 into '.':
G    rtl/bsd/ostypes.inc
--- Merging r19418 into '.':
U    rtl/openbsd/sysnr.inc
U    rtl/bsd/ossysc.inc
--- Merging r19422 into '.':
U    compiler/systems.pas
--- Merging r19436 into '.':
A    tests/test/cg/obj/openbsd
A    tests/test/cg/obj/openbsd/i386
A    tests/test/cg/obj/openbsd/i386/ctest.o
A    tests/test/cg/obj/openbsd/i386/cpptcl1.o
A    tests/test/cg/obj/openbsd/i386/cpptcl2.o
A    tests/test/cg/obj/openbsd/i386/tcext3.o
A    tests/test/cg/obj/openbsd/i386/tcext4.o
A    tests/test/cg/obj/openbsd/i386/tcext5.o
A    tests/test/cg/obj/openbsd/i386/tcext6.o
C    tests/test/cg/obj/readme.txt
--- Merging r19441 into '.':
U    utils/fppkg/Makefile.fpc
C    utils/fppkg/Makefile
--- Merging r19447 into '.':
U    rtl/unix/initc.pp
--- Merging r19448 into '.':
U    rtl/openbsd/i386/cprt0.as
--- Merging r19449 into '.':
U    rtl/openbsd/Makefile.fpc
C    rtl/openbsd/Makefile
--- Merging r19450 into '.':
G    compiler/systems/i_bsd.pas
--- Merging r19451 into '.':
U    compiler/systems/t_bsd.pas
--- Merging r19452 into '.':
A    rtl/openbsd/pthread.inc
--- Merging r19454 into '.':
U    packages/fppkg/Makefile.fpc
C    packages/fppkg/Makefile
--- Merging r19467 into '.':
U    rtl/openbsd/ptypes.inc
--- Merging r19505 into '.':
U    tests/Makefile.fpc
U    tests/Makefile
Summary of conflicts:
  Text conflicts: 5

# revisions: 19350,19374,19409,19412,19415,19416,19418,19422,19436,19441,19447,19448,19449,19450,19451,19452,19454,19467,19505
------------------------------------------------------------------------
r19350 | pierre | 2011-10-04 01:22:28 +0200 (Tue, 04 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/bsd/bunxsysc.inc
   M /trunk/rtl/unix/bunxh.inc
   M /trunk/rtl/unix/ipc.pp

 * Try to update i386/openbsd port
------------------------------------------------------------------------
------------------------------------------------------------------------
r19374 | pierre | 2011-10-05 00:25:12 +0200 (Wed, 05 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/Makefile
   M /trunk/rtl/Makefile.fpc

 * Add openbsd directory for openbsd source
------------------------------------------------------------------------
------------------------------------------------------------------------
r19409 | pierre | 2011-10-07 23:28:08 +0200 (Fri, 07 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/bsd/ostypes.inc

 * Fix stat type for openbsd
------------------------------------------------------------------------
------------------------------------------------------------------------
r19412 | pierre | 2011-10-08 11:53:46 +0200 (Sat, 08 Oct 2011) | 1 line
Changed paths:
   M /trunk/compiler/systems/i_bsd.pas

 * Fix source info for openbsd
------------------------------------------------------------------------
------------------------------------------------------------------------
r19415 | sergei | 2011-10-08 14:57:58 +0200 (Sat, 08 Oct 2011) | 2 lines
Changed paths:
   M /trunk/compiler/ncgflw.pas

- Exception handling: calling FPC_CATCHES(-1) is obsolete, it does not change any state and its return value is not used. Removed.
- Don't generate guard frame around 'except' block if it contains no code (tryexceptnode.t1 is an empty blocknode in this case).
------------------------------------------------------------------------
------------------------------------------------------------------------
r19416 | pierre | 2011-10-08 15:01:05 +0200 (Sat, 08 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/bsd/ostypes.inc

 * Rectify position of BirthTime fields in Stat record for openbsd
------------------------------------------------------------------------
------------------------------------------------------------------------
r19418 | pierre | 2011-10-08 18:46:38 +0200 (Sat, 08 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/bsd/ossysc.inc
   M /trunk/rtl/openbsd/sysnr.inc

 * Fix getdirentries problem for openbsd
------------------------------------------------------------------------
------------------------------------------------------------------------
r19422 | marco | 2011-10-08 21:56:20 +0200 (Sat, 08 Oct 2011) | 2 lines
Changed paths:
   M /trunk/compiler/systems.pas

 * add openbsd set own target

------------------------------------------------------------------------
------------------------------------------------------------------------
r19436 | pierre | 2011-10-09 18:37:49 +0200 (Sun, 09 Oct 2011) | 1 line
Changed paths:
   A /trunk/tests/test/cg/obj/openbsd
   A /trunk/tests/test/cg/obj/openbsd/i386
   A /trunk/tests/test/cg/obj/openbsd/i386/cpptcl1.o
   A /trunk/tests/test/cg/obj/openbsd/i386/cpptcl2.o
   A /trunk/tests/test/cg/obj/openbsd/i386/ctest.o
   A /trunk/tests/test/cg/obj/openbsd/i386/tcext3.o
   A /trunk/tests/test/cg/obj/openbsd/i386/tcext4.o
   A /trunk/tests/test/cg/obj/openbsd/i386/tcext5.o
   A /trunk/tests/test/cg/obj/openbsd/i386/tcext6.o
   M /trunk/tests/test/cg/obj/readme.txt

 i386 openbsd C objects added
------------------------------------------------------------------------
------------------------------------------------------------------------
r19441 | marco | 2011-10-09 22:21:14 +0200 (Sun, 09 Oct 2011) | 2 lines
Changed paths:
   M /trunk/utils/fppkg/Makefile
   M /trunk/utils/fppkg/Makefile.fpc

 * OpenBSD fixes.

------------------------------------------------------------------------
------------------------------------------------------------------------
r19447 | pierre | 2011-10-10 23:33:58 +0200 (Mon, 10 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/unix/initc.pp

 * Use recent libc __errno function for OpenBSD
------------------------------------------------------------------------
------------------------------------------------------------------------
r19448 | pierre | 2011-10-10 23:39:39 +0200 (Mon, 10 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/openbsd/i386/cprt0.as

 Make __progname_storage external
------------------------------------------------------------------------
------------------------------------------------------------------------
r19449 | pierre | 2011-10-10 23:43:07 +0200 (Mon, 10 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/openbsd/Makefile
   M /trunk/rtl/openbsd/Makefile.fpc

 i386 cpu specific units rules updated
------------------------------------------------------------------------
------------------------------------------------------------------------
r19450 | pierre | 2011-10-10 23:44:44 +0200 (Mon, 10 Oct 2011) | 1 line
Changed paths:
   M /trunk/compiler/systems/i_bsd.pas

 * i386 OpenBSD target also uses GOT for pic code
------------------------------------------------------------------------
------------------------------------------------------------------------
r19451 | pierre | 2011-10-10 23:45:21 +0200 (Mon, 10 Oct 2011) | 1 line
Changed paths:
   M /trunk/compiler/systems/t_bsd.pas

 * Set a default dynamic linker for OpenBSD
------------------------------------------------------------------------
------------------------------------------------------------------------
r19452 | pierre | 2011-10-11 00:19:11 +0200 (Tue, 11 Oct 2011) | 1 line
Changed paths:
   A /trunk/rtl/openbsd/pthread.inc

 * New file for cthreads unit support
------------------------------------------------------------------------
------------------------------------------------------------------------
r19454 | pierre | 2011-10-11 00:38:47 +0200 (Tue, 11 Oct 2011) | 1 line
Changed paths:
   M /trunk/packages/fppkg/Makefile
   M /trunk/packages/fppkg/Makefile.fpc

 * Fix missing pkgwget unit for OpenBSD due to a typing error
------------------------------------------------------------------------
------------------------------------------------------------------------
r19467 | pierre | 2011-10-12 00:38:54 +0200 (Wed, 12 Oct 2011) | 1 line
Changed paths:
   M /trunk/rtl/openbsd/ptypes.inc

 * Correct StatFS record to fix crash in test/units/dos/tdos.pp test
------------------------------------------------------------------------
------------------------------------------------------------------------
r19505 | pierre | 2011-10-17 11:24:19 +0200 (Mon, 17 Oct 2011) | 1 line
Changed paths:
   M /trunk/tests/Makefile
   M /trunk/tests/Makefile.fpc

 * Fix tar option for OpenBSD
------------------------------------------------------------------------

git-svn-id: branches/fixes_2_6@19942 -
marco 13 年之前
父節點
當前提交
fcd1fbf3d7

+ 8 - 0
.gitattributes

@@ -7805,6 +7805,7 @@ rtl/openbsd/i386/prt0.as svneol=native#text/plain
 rtl/openbsd/i386/sighnd.inc svneol=native#text/plain
 rtl/openbsd/osdefs.inc svneol=native#text/plain
 rtl/openbsd/pmutext.inc svneol=native#text/plain
+rtl/openbsd/pthread.inc -text svneol=unset#test/plain
 rtl/openbsd/ptypes.inc svneol=native#text/plain
 rtl/openbsd/signal.inc svneol=native#text/plain
 rtl/openbsd/syscalls.inc svneol=native#text/plain
@@ -9298,6 +9299,13 @@ tests/test/cg/obj/linux/x86_64/tcext5.o -text
 tests/test/cg/obj/linux/x86_64/tcext6.o -text
 tests/test/cg/obj/macos/powerpc/ctest.o -text
 tests/test/cg/obj/netbsd/m68k/ctest.o -text
+tests/test/cg/obj/openbsd/i386/cpptcl1.o -text
+tests/test/cg/obj/openbsd/i386/cpptcl2.o -text
+tests/test/cg/obj/openbsd/i386/ctest.o -text
+tests/test/cg/obj/openbsd/i386/tcext3.o -text
+tests/test/cg/obj/openbsd/i386/tcext4.o -text
+tests/test/cg/obj/openbsd/i386/tcext5.o -text
+tests/test/cg/obj/openbsd/i386/tcext6.o -text
 tests/test/cg/obj/os2/i386/ctest.o -text
 tests/test/cg/obj/readme.txt svneol=native#text/plain
 tests/test/cg/obj/solaris/i386/cpptcl1.o -text

+ 50 - 46
compiler/ncgflw.pas

@@ -98,7 +98,7 @@ implementation
       nld,ncon,
       tgobj,paramgr,
       regvars,
-      cgutils,cgobj
+      cgutils,cgobj,nutils
       ;
 
 {*****************************************************************************
@@ -1158,63 +1158,67 @@ implementation
          { default handling except handling }
          if assigned(t1) then
            begin
-              { FPC_CATCHES must be called with
-                'default handler' flag (=-1)
+              { FPC_CATCHES with 'default handler' flag (=-1) need no longer be called,
+                it doesn't change any state and its return value is ignored (Sergei)
               }
-              paraloc1.init;
-              paramanager.getintparaloc(pocall_default,1,paraloc1);
-              cg.a_load_const_cgpara(current_asmdata.CurrAsmList,OS_ADDR,-1,paraloc1);
-              paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
-              cg.allocallcpuregisters(current_asmdata.CurrAsmList);
-              cg.a_call_name(current_asmdata.CurrAsmList,'FPC_CATCHES',false);
-              cg.deallocallcpuregisters(current_asmdata.CurrAsmList);
-              paraloc1.done;
 
               { the destruction of the exception object must be also }
-              { guarded by an exception frame                        }
-              current_asmdata.getjumplabel(doobjectdestroy);
-              current_asmdata.getjumplabel(doobjectdestroyandreraise);
+              { guarded by an exception frame, but it can be omitted }
+              { if there's no user code in 'except' block            }
 
-              get_exception_temps(current_asmdata.CurrAsmList,destroytemps);
-              new_exception(current_asmdata.CurrAsmList,destroytemps,doobjectdestroyandreraise);
+              if not (has_no_code(t1)) then
+               begin
+                 current_asmdata.getjumplabel(doobjectdestroy);
+                 current_asmdata.getjumplabel(doobjectdestroyandreraise);
 
-              { except block needs line info }
-              current_asmdata.CurrAsmList.concat(tai_marker.create(mark_NoLineInfoEnd));
+                 get_exception_temps(current_asmdata.CurrAsmList,destroytemps);
+                 new_exception(current_asmdata.CurrAsmList,destroytemps,doobjectdestroyandreraise);
 
-              { here we don't have to reset flowcontrol           }
-              { the default and on flowcontrols are handled equal }
-              secondpass(t1);
-              exceptflowcontrol:=flowcontrol;
+                 { except block needs line info }
+                 current_asmdata.CurrAsmList.concat(tai_marker.create(mark_NoLineInfoEnd));
 
-              { don't generate line info for internal cleanup }
-              current_asmdata.CurrAsmList.concat(tai_marker.create(mark_NoLineInfoStart));
+                 { here we don't have to reset flowcontrol           }
+                 { the default and on flowcontrols are handled equal }
+                 secondpass(t1);
+                 exceptflowcontrol:=flowcontrol;
 
-              cg.a_label(current_asmdata.CurrAsmList,doobjectdestroyandreraise);
+                 { don't generate line info for internal cleanup }
+                 current_asmdata.CurrAsmList.concat(tai_marker.create(mark_NoLineInfoStart));
 
-              free_exception(current_asmdata.CurrAsmList,destroytemps,0,doobjectdestroy,false);
+                 cg.a_label(current_asmdata.CurrAsmList,doobjectdestroyandreraise);
 
-              cg.allocallcpuregisters(current_asmdata.CurrAsmList);
-              cg.a_call_name(current_asmdata.CurrAsmList,'FPC_POPSECONDOBJECTSTACK',false);
-              cg.deallocallcpuregisters(current_asmdata.CurrAsmList);
-              cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_FUNCTION_RESULT_REG);
+                 free_exception(current_asmdata.CurrAsmList,destroytemps,0,doobjectdestroy,false);
 
-              paraloc1.init;
-              paramanager.getintparaloc(pocall_default,1,paraloc1);
-              cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_FUNCTION_RESULT_REG);
-              cg.a_load_reg_cgpara(current_asmdata.CurrAsmList, OS_ADDR, NR_FUNCTION_RESULT_REG, paraloc1);
-              paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
-              cg.allocallcpuregisters(current_asmdata.CurrAsmList);
-              cg.a_call_name(current_asmdata.CurrAsmList,'FPC_DESTROYEXCEPTION',false);
-              cg.deallocallcpuregisters(current_asmdata.CurrAsmList);
-              paraloc1.done;
-              { we don't need to restore esi here because reraise never }
-              { returns                                                 }
-              cg.a_call_name(current_asmdata.CurrAsmList,'FPC_RERAISE',false);
+                 cg.allocallcpuregisters(current_asmdata.CurrAsmList);
+                 cg.a_call_name(current_asmdata.CurrAsmList,'FPC_POPSECONDOBJECTSTACK',false);
+                 cg.deallocallcpuregisters(current_asmdata.CurrAsmList);
+                 cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_FUNCTION_RESULT_REG);
 
-              cg.a_label(current_asmdata.CurrAsmList,doobjectdestroy);
-              cleanupobjectstack;
-              unget_exception_temps(current_asmdata.CurrAsmList,destroytemps);
-              cg.a_jmp_always(current_asmdata.CurrAsmList,endexceptlabel);
+                 paraloc1.init;
+                 paramanager.getintparaloc(pocall_default,1,paraloc1);
+                 cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_FUNCTION_RESULT_REG);
+                 cg.a_load_reg_cgpara(current_asmdata.CurrAsmList, OS_ADDR, NR_FUNCTION_RESULT_REG, paraloc1);
+                 paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
+                 cg.allocallcpuregisters(current_asmdata.CurrAsmList);
+                 cg.a_call_name(current_asmdata.CurrAsmList,'FPC_DESTROYEXCEPTION',false);
+                 cg.deallocallcpuregisters(current_asmdata.CurrAsmList);
+                 paraloc1.done;
+                 { we don't need to restore esi here because reraise never }
+                 { returns                                                 }
+                 cg.a_call_name(current_asmdata.CurrAsmList,'FPC_RERAISE',false);
+
+                 cg.a_label(current_asmdata.CurrAsmList,doobjectdestroy);
+
+                 cleanupobjectstack;
+                 unget_exception_temps(current_asmdata.CurrAsmList,destroytemps);
+                 cg.a_jmp_always(current_asmdata.CurrAsmList,endexceptlabel);
+               end
+               else
+                 begin
+                   exceptflowcontrol:=flowcontrol;
+                   cleanupobjectstack;
+                   cg.a_jmp_always(current_asmdata.CurrAsmList,endexceptlabel);
+                 end;
            end
          else
            begin

+ 4 - 0
compiler/systems.pas

@@ -709,6 +709,10 @@ begin
     default_target(system_i386_freebsd);
     {$define default_target_set}
    {$endif}
+   {$ifdef openbsd}
+    default_target(system_i386_openbsd);
+    {$define default_target_set}
+   {$endif}
    {$ifdef darwin}
     default_target(system_i386_darwin);
     {$define default_target_set}

+ 2 - 2
compiler/systems/i_bsd.pas

@@ -252,7 +252,7 @@ unit i_bsd;
             system       : system_i386_OpenBSD;
             name         : 'OpenBSD for i386';
             shortname    : 'OpenBSD';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_pic_uses_got,tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'BSDUNITS';
             extradefines : 'UNIX;BSD;HASUNIX';
@@ -818,7 +818,7 @@ initialization
      set_source_info(system_i386_NetBSD_info);
   {$endif}
   {$ifdef OpenBSD}
-     set_source_info(system_i386_NetBSD_info);
+     set_source_info(system_i386_OpenBSD_info);
   {$endif}
   {$ifdef Darwin}
      set_source_info(system_i386_Darwin_info);

+ 4 - 0
compiler/systems/t_bsd.pas

@@ -186,6 +186,10 @@ begin
        DllCmd[2]:='strip --strip-unneeded $EXE'
      else
        DllCmd[2]:='strip -x $EXE';
+     { OpenBSD seems to use a wrong dynamic linker by default }
+     if target_info.system = system_i386_openbsd then
+      DynamicLinker:='/usr/libexec/ld.so'
+     else
       DynamicLinker:='';
    end;
 end;

+ 2 - 2
packages/fppkg/Makefile

@@ -322,7 +322,7 @@ ifeq ($(FULL_TARGET),i386-netware)
 override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
+override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos  pkgwget pkgfphttp
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
@@ -370,7 +370,7 @@ ifeq ($(FULL_TARGET),m68k-atari)
 override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
+override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos  pkgwget pkgfphttp
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 override TARGET_UNITS+=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos

+ 1 - 1
packages/fppkg/Makefile.fpc

@@ -13,7 +13,7 @@ units_beos=pkgwget pkgfphttp
 units_haiku=pkgwget pkgfphttp
 units_freebsd=pkgwget pkgfphttp
 units_netbsd=pkgwget pkgfphttp
-nits_openbsd=pkgwget pkgfphttp
+units_openbsd=pkgwget pkgfphttp
 units_darwin=pkgwget pkgfphttp
 units_iphonesim=pkgwget pkgfphttp
 units_solaris=pkgwget pkgfphttp

+ 57 - 0
rtl/Makefile

@@ -318,6 +318,9 @@ endif
 ifeq ($(FULL_TARGET),i386-netware)
 override TARGET_DIRS+=netware
 endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_DIRS+=openbsd
+endif
 ifeq ($(FULL_TARGET),i386-darwin)
 override TARGET_DIRS+=darwin
 endif
@@ -354,6 +357,9 @@ endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 override TARGET_DIRS+=amiga
 endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_DIRS+=openbsd
+endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 override TARGET_DIRS+=palmos
 endif
@@ -1580,6 +1586,9 @@ endif
 ifeq ($(FULL_TARGET),i386-netware)
 TARGET_DIRS_NETWARE=1
 endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+TARGET_DIRS_OPENBSD=1
+endif
 ifeq ($(FULL_TARGET),i386-darwin)
 TARGET_DIRS_DARWIN=1
 endif
@@ -1616,6 +1625,9 @@ endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 TARGET_DIRS_AMIGA=1
 endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+TARGET_DIRS_OPENBSD=1
+endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 TARGET_DIRS_PALMOS=1
 endif
@@ -2171,6 +2183,51 @@ netware:
 	$(MAKE) -C netware all
 .PHONY: netware_all netware_debug netware_smart netware_release netware_units netware_examples netware_shared netware_install netware_sourceinstall netware_exampleinstall netware_distinstall netware_zipinstall netware_zipsourceinstall netware_zipexampleinstall netware_zipdistinstall netware_clean netware_distclean netware_cleanall netware_info netware_makefiles netware
 endif
+ifdef TARGET_DIRS_OPENBSD
+openbsd_all:
+	$(MAKE) -C openbsd all
+openbsd_debug:
+	$(MAKE) -C openbsd debug
+openbsd_smart:
+	$(MAKE) -C openbsd smart
+openbsd_release:
+	$(MAKE) -C openbsd release
+openbsd_units:
+	$(MAKE) -C openbsd units
+openbsd_examples:
+	$(MAKE) -C openbsd examples
+openbsd_shared:
+	$(MAKE) -C openbsd shared
+openbsd_install:
+	$(MAKE) -C openbsd install
+openbsd_sourceinstall:
+	$(MAKE) -C openbsd sourceinstall
+openbsd_exampleinstall:
+	$(MAKE) -C openbsd exampleinstall
+openbsd_distinstall:
+	$(MAKE) -C openbsd distinstall
+openbsd_zipinstall:
+	$(MAKE) -C openbsd zipinstall
+openbsd_zipsourceinstall:
+	$(MAKE) -C openbsd zipsourceinstall
+openbsd_zipexampleinstall:
+	$(MAKE) -C openbsd zipexampleinstall
+openbsd_zipdistinstall:
+	$(MAKE) -C openbsd zipdistinstall
+openbsd_clean:
+	$(MAKE) -C openbsd clean
+openbsd_distclean:
+	$(MAKE) -C openbsd distclean
+openbsd_cleanall:
+	$(MAKE) -C openbsd cleanall
+openbsd_info:
+	$(MAKE) -C openbsd info
+openbsd_makefiles:
+	$(MAKE) -C openbsd makefiles
+openbsd:
+	$(MAKE) -C openbsd all
+.PHONY: openbsd_all openbsd_debug openbsd_smart openbsd_release openbsd_units openbsd_examples openbsd_shared openbsd_install openbsd_sourceinstall openbsd_exampleinstall openbsd_distinstall openbsd_zipinstall openbsd_zipsourceinstall openbsd_zipexampleinstall openbsd_zipdistinstall openbsd_clean openbsd_distclean openbsd_cleanall openbsd_info openbsd_makefiles openbsd
+endif
 ifdef TARGET_DIRS_DARWIN
 darwin_all:
 	$(MAKE) -C darwin all

+ 1 - 0
rtl/Makefile.fpc

@@ -22,6 +22,7 @@ dirs_beos=beos
 dirs_haiku=haiku
 dirs_amiga=amiga
 dirs_netbsd=netbsd
+dirs_openbsd=openbsd
 dirs_macos=macos
 dirs_morphos=morphos
 dirs_netware=netware

+ 3 - 1
rtl/bsd/bunxsysc.inc

@@ -50,6 +50,7 @@ begin
   FPsigsuspend:= do_syscall(syscall_nr_sigsuspend,TSysParam(@sigmask));
 end;
 
+{$ifndef FPC_SYS_SIGTIMEDWAIT_UNAVAILABLE}
 function fpsigtimedwait(const sigset:TSigSet;info:Psiginfo;timeout:Ptimespec):cint;
 
 begin
@@ -58,6 +59,7 @@ begin
                              Tsysparam(info),
                              Tsysparam(timeout));
 end;
+{$endif ndef FPC_SYS_SIGTIMEDWAIT_UNAVAILABLE}
 
 
 Type // implementation side for now. Should move to BSD unit.
@@ -567,7 +569,7 @@ end;
 function Fppread(fd: cint; buf: pchar; nbytes : size_t; offset:Toff): ssize_t; [public, alias : 'FPC_SYSC_PREAD'];
 
 begin
-  
+
  	{$ifdef CPU64}
 	    Fppread:=do_syscall(syscall_nr_pread,Fd,TSysParam(buf),nbytes,TSysParam(OffSet));
 	{$else}

+ 5 - 1
rtl/bsd/ossysc.inc

@@ -223,9 +223,13 @@ with blockmode have this higher?}
 function readbuffer:longint;
 
 var retval :longint;
-
+    basep : clong;
 begin
+{$ifdef USE_GETDIRENTRIES_SYSCALL}
+ Retval:=do_syscall(syscall_nr_getdirentries,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)},TSysParam(@basep));
+{$else not USE_GETDIRENTRIES_SYSCALL}
  Retval:=do_syscall(syscall_nr_getdents,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)});
+{$endif not USE_GETDIRENTRIES_SYSCALL}
    dirp^.dd_rewind:=TSysParam(dirp^.dd_buf);
    if retval=0 then
     begin

+ 12 - 5
rtl/bsd/ostypes.inc

@@ -76,6 +76,9 @@ TYPE
         st_uid        : uid_t;             // user ID of the file's owner
         st_gid        : gid_t;             // group ID of the file's group
         st_rdev       : dev_t;             // device type
+{$ifdef openbsd}
+        st_padd0      : cint;
+{$endif}
         st_atime      : time_t;            // time of last access
         st_atimensec  : clong;             // nsec of last access
         st_mtime      : time_t;            // time of last data modification
@@ -99,6 +102,10 @@ TYPE
 {$endif}
 {$ifndef NetBSD}
         st_lspare     : cint32;
+{$endif}
+{$ifdef openbsd}
+        st_birthtime  : time_t;            // File creation time
+        st_birthtimensec : clong;          // nsec of file creation time
 {$endif}
         st_qspare     : array[0..1] Of cint64;
    end;
@@ -237,7 +244,7 @@ CONST
 {$ifdef darwin}
   F_CHKCLEAN       = 41;          { Used for regression test }
   F_PREALLOCATE    = 42;          { Preallocate storage }
-  F_SETSIZE        = 43;          { Truncate a file without zeroing space }     
+  F_SETSIZE        = 43;          { Truncate a file without zeroing space }
   F_RDADVISE       = 44;          { Issue an advisory read async with no copy to user }
   F_RDAHEAD        = 45;          { turn read ahead off/on }
   F_READBOOTSTRAP  = 46;          { Read bootstrap from disk }
@@ -311,7 +318,7 @@ Const
 {$IFDEF FreeBSD}
   RLIMIT_SBSIZE   = 9;              { maximum size of all socket buffers }
   RLIMIT_VMEM     =10;              { virtual process size (inclusive of mmap) }
-  RLIMIT_AS       = RLIMIT_VMEM;    
+  RLIMIT_AS       = RLIMIT_VMEM;
 {$ELSE}
   RLIMIT_AS       = 5;    	    { address space= resident set size}
 {$ENDIF}
@@ -324,20 +331,20 @@ Const
   RLIM_NLIMITS    =9;              { number of resource limits }
   {$endif}
 
-Type 
+Type
         TRLimit  = record
                      rlim_cur,               { current (soft) limit }
           	     rlim_max : TRLim;     { maximum value for rlim_cur }
 		    end;	
         PRLimit  = ^TRLimit;
-      
+
   iovec = record
             iov_base : pointer;
 	    iov_len  : size_t;
 	   end;
   tiovec=iovec;
   piovec=^tiovec;		
- 
+
 CONST
  { Constansts for MMAP }
 {$ifdef FPC_IS_SYSTEM}

+ 66 - 63
rtl/openbsd/Makefile

@@ -310,199 +310,202 @@ endif
 ifdef RELEASE
 override FPCOPT+=-Ur
 endif
+ifeq ($(ARCH),i386)
+CPU_UNITS=x86 ports cpu mmx
+endif
 OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph
 ifndef USELIBGGI
 USELIBGGI=NO
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio    mmx cpu
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=exeinfo

+ 5 - 2
rtl/openbsd/Makefile.fpc

@@ -12,14 +12,13 @@ fpcpackage=y
 loaders=prt0 cprt0
 units=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix \
       $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc \
-      dos crt objects printer matrix rtlconsts \
+      $(CPU_UNITS) dos crt objects printer matrix rtlconsts \
       sysutils fgl classes fmtbcd typinfo math varutils \
       charset ucomplex getopts heaptrc lineinfo lnfodwrf \
       errors sockets ipc terminfo dateutils strutils \
       video mouse keyboard  serial variants types sysctl sysconst \
       fpintres convutils stdconvs dynlibs cwstring cmem dl termio
 
-units_netbsd_i386=mmx cpu
 rsts=math varutils typinfo variants classes sysconst dateutils
 implicitunits=exeinfo
 
@@ -76,6 +75,10 @@ ifdef RELEASE
 override FPCOPT+=-Ur
 endif
 
+ifeq ($(ARCH),i386)
+CPU_UNITS=x86 ports cpu mmx
+endif
+
 # Paths
 OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph

+ 4 - 0
rtl/openbsd/i386/cprt0.as

@@ -16,6 +16,10 @@ rcsid:
 	.size	__progname , 4
 __progname:
 	.long .LC0
+.global __progname_storage
+	.type __progname_storage, @ object
+	.size  __progname_storage, 256
+
         .align  4
 ___fpucw:
         .long   0x1332

+ 122 - 0
rtl/openbsd/pthread.inc

@@ -0,0 +1,122 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 1999-2000 by Peter Vreman
+    member of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This file contains a pthread.h headerconversion,
+    and should contain an interface to the threading library to be
+    used by systhrd, preferably in a somewhat compatible notation
+    (compared to the other OSes).
+
+    As a start, I simply used libc_r
+
+    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.
+
+ **********************************************************************}
+
+CONST PTHREAD_EXPLICIT_SCHED       = 0;
+      PTHREAD_CREATE_DETACHED      = 1;
+      PTHREAD_SCOPE_PROCESS        = 0;
+      SEM_SAFE = 255;
+
+ TYPE
+    ppthread_t      = ^pthread_t;
+    ppthread_key_t  = ^pthread_key_t;
+    ppthread_mutex_t= ^pthread_mutex_t;
+    ppthread_attr_t = ^pthread_attr_t;
+    ppthread_cond_t            = ^pthread_cond_t;
+    ppthread_condattr_t        = ^pthread_condattr_t;
+
+    __destr_func_t  = procedure (p :pointer);cdecl;
+    __startroutine_t= function (p :pointer):pointer;cdecl;
+    ppthread_mutexattr_t = ^pthread_mutexattr_t;
+    ppthread_mutex_attr_t = ^pthread_mutexattr_t;
+
+{
+  From FreeBSD 8.2 sys/_semaphore.h
+  In OpenBSDD the structures are defined in
+  /usr/src/lib/libpthread/uthread/pthread_private.h
+}
+
+(*
+struct sem {
+#define SEM_MAGIC       ((u_int32_t) 0x09fa4012)
+        u_int32_t       magic;
+        pthread_mutex_t lock;
+        pthread_cond_t  gtzero;
+        u_int32_t       count;
+        u_int32_t       nwaiters;
+#define SEM_USER        (NULL)
+        semid_t         semid;  /* semaphore id if kernel (shared) semaphore */
+        int             syssem; /* 1 if kernel (shared) semaphore */
+        LIST_ENTRY(sem) entry;
+        struct sem      **backpointer;
+}; *)
+    semid_t        = pointer;
+    psem_t         = ^sem_t;
+    ppsem_t        = ^psem_t;
+    sem_t = record
+       magic   : cuint32;
+       lock    : pthread_mutex_t;
+       gtzero  : pthread_cond_t;
+       count   : cuint32;
+       nwaiters: cuint32;
+       { semid   : semid_t;
+       sysse   : cint;
+       entry   : psem_t;
+       backpointer : ppsem_t; Those are not in pthread_private }
+       spare   : array[0..SEM_SAFE] of char;
+
+    end;
+
+    TSemaphore         = sem_t;
+    PSemaphore         = ^TSemaphore;
+
+function  pthread_getspecific      (t : pthread_key_t):pointer; cdecl; external;
+function  pthread_setspecific      (t : pthread_key_t;p:pointer):cint; cdecl; external;
+function  pthread_key_create       (p : ppthread_key_t;f: __destr_func_t):cint; cdecl;external;
+function  pthread_attr_init           (p : ppthread_attr_t):cint; cdecl; external;
+function  pthread_attr_setinheritsched(p : ppthread_attr_t;i:cint):cint; cdecl; external;
+function  pthread_attr_setscope      (p : ppthread_attr_t;i:cint):cint;cdecl;external;
+function  pthread_attr_setdetachstate (p : ppthread_attr_t;i:cint):cint;cdecl;external;
+function  pthread_attr_setstacksize(p: ppthread_attr_t; stacksize: size_t):cint;cdecl;external;
+function  pthread_create ( p: ppthread_t;attr : ppthread_attr_t;f:__startroutine_t;arg:pointer):cint;cdecl;external;
+procedure pthread_exit  ( p: pointer); cdecl;external;
+function  pthread_self:pthread_t; cdecl;external;
+function  pthread_mutex_init (p:ppthread_mutex_t;o:ppthread_mutex_attr_t):cint; cdecl;external;
+function  pthread_mutex_destroy (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function  pthread_mutex_lock    (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function  pthread_mutex_trylock    (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function  pthread_mutex_unlock  (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function  pthread_cancel(_para1:pthread_t):cint;cdecl;external;
+function  pthread_detach(_para1:pthread_t):cint;cdecl;external;
+function  pthread_join(_para1:pthread_t; _para2:Ppointer):cint;cdecl;external;
+function pthread_cond_destroy(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_init(_para1:Ppthread_cond_t;_para2:Ppthread_condattr_t):cint;cdecl;external;
+function pthread_cond_signal(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_broadcast(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_wait(_para1:Ppthread_cond_t;_para2:Ppthread_mutex_t):cint;cdecl;external;
+function pthread_kill(__thread:pthread_t; __signo:cint):cint;cdecl;external;
+function pthread_sigmask(how: cint; nset: psigset; oset: psigset): cint; cdecl; external;
+
+function sem_init(__sem:Psem_t; __pshared:cint;__value:dword):cint;cdecl; external;
+function sem_destroy(__sem:Psem_t):cint;cdecl;external ;
+function sem_close(__sem:Psem_t):cint;cdecl;external ;
+function sem_unlink(__name:Pchar):cint;cdecl;external ;
+function sem_wait(__sem:Psem_t):cint;cdecl;external ;
+function sem_trywait(__sem:Psem_t):cint;cdecl;external ;
+function sem_post(__sem:Psem_t):cint;cdecl;external ;
+function sem_getvalue(__sem:Psem_t; __sval:Pcint):cint;cdecl;external;
+function pthread_mutexattr_init(_para1:Ppthread_mutexattr_t):cint;cdecl;external;
+function pthread_mutexattr_destroy(_para1:Ppthread_mutexattr_t):cint;cdecl;external;
+function pthread_mutexattr_gettype(_para1:Ppthread_mutexattr_t; _para2:Pcint):cint;cdecl;external;
+function pthread_mutexattr_settype(_para1:Ppthread_mutexattr_t; _para2:cint):cint;cdecl;external;
+function pthread_cond_timedwait(__cond:ppthread_cond_t; __mutex:ppthread_mutex_t; __abstime:ptimespec):longint;cdecl;external;
+
+
+

+ 3 - 3
rtl/openbsd/ptypes.inc

@@ -178,15 +178,15 @@ type
     bsize,			  { filesystem block size}
     iosize		: cint;   { optimal transfr block size }
     blocks,			  { total data block in file system }
-    bfree		: clong;  { blocks free in fs }
+    bfree		: cuint64;  { blocks free in fs }
     bavail		: cint64; { block available for non-superuser }
     files,			  { total file nodes in file system }
-    ffree		: clong;  { free files nodes in fs }
+    ffree		: cuint64;  { free files nodes in fs }
     favail		: cint64; { free file nodes avail to non-root }
     fsyncwrites,		  { count of sync writes since mount }
     fasyncwrites,		  { count of async writes since mount }
     fsyncreads,			  { count of sync reads since mount }
-    fasyncreads		: clong;  { count of async reads since mount }
+    fasyncreads		: cuint64;  { count of async reads since mount }
     fsid		: fsid_t; { file system id }
     namemax		: cint;   { maximum fileystem length }
     fowner		: tuid;   { user that mounted the fileystem }

+ 2 - 1
rtl/openbsd/sysnr.inc

@@ -252,5 +252,6 @@ Const
 { Aliases }
         syscall_nr_getdirentries = syscall_nr_getdirentries35;
         syscall_nr_waitpid      = syscall_nr_wait4;  // 7, added: ease of notation purposes
-        syscall_nr_getdents = syscall_nr_getdirentries;
+{        syscall_nr_getdents = syscall_nr_getdirentries; }
+{$define USE_GETDIRENTRIES_SYSCALL}
 

+ 3 - 1
rtl/unix/bunxh.inc

@@ -24,7 +24,9 @@ Type TGrpArr = Array [0..0] of TGid;            { C style array workarounds}
     Function  FpSigProcMask  (how : cInt; Const nset : TSigSet; var oset : TSigSet): cInt; external name 'FPC_SYSC_SIGPROCMASK';
     Function  FpSigPending   (var nset : TSigSet): cInt;
     Function  FpSigSuspend   (Const sigmask : TSigSet): cInt;
+{$ifndef FPC_SYS_SIGTIMEDWAIT_UNAVAILABLE}
     Function  FpSigTimedWait (Const sigset : TSigSet; info : Psiginfo; timeout:Ptimespec): cInt;
+{$endif ndef FPC_SYS_SIGTIMEDWAIT_UNAVAILABLE}
 
     Function  FpUmask      (cmask : TMode): TMode;
     Function  FpLink       (existing : pChar; newone : pChar): cInt;
@@ -85,7 +87,7 @@ Type TGrpArr = Array [0..0] of TGid;            { C style array workarounds}
     function  FpReadV	   (fd: cint; const iov : piovec; iovcnt : cint):TSSize;
     Function  FpWrite      (fd : cInt; buf:pChar; nbytes : TSize): TSsize;  external name 'FPC_SYSC_WRITE';
     Function  FpPWrite     (fd : cInt; buf:pChar; nbytes : TSize; offset:Toff): TSSize;
-    function  FpWriteV	   (fd: cint; const iov : piovec; iovcnt : cint):TSSize; 
+    function  FpWriteV	   (fd: cint; const iov : piovec; iovcnt : cint):TSSize;
 
     Function  FpLseek      (fd : cInt; offset : TOff; whence : cInt): TOff; external name 'FPC_SYSC_LSEEK';
     Function  FpTime       (var tloc : TTime): TTime; external name 'FPC_SYSC_TIME';

+ 5 - 1
rtl/unix/initc.pp

@@ -31,7 +31,7 @@ implementation
 // this idea works out.
 
 {$ifdef OpenBSD}
-{$define UseOldErrnoDirectLink}
+{define UseOldErrnoDirectLink OpenBSD also uses __errno function }
 {$endif}
 
 {$ifdef UseOldErrnoDirectLink}
@@ -59,6 +59,10 @@ function geterrnolocation: pcint; cdecl;external clib name '__errno_location';
 function geterrnolocation: pcint; cdecl;external clib name '__error';
 {$endif}
 
+{$ifdef OpenBSD} // tested on x86
+function geterrnolocation: pcint; cdecl;external clib name '__errno';
+{$endif}
+
 {$ifdef NetBSD} // from a sparc dump.
 function geterrnolocation: pcint; cdecl;external clib name '__errno';
 {$endif}

+ 9 - 9
rtl/unix/ipc.pp

@@ -47,7 +47,7 @@ Type
 Const
   { IPC flags for get calls }
 
-{$if defined(FreeBSD) or defined(NetBSD)}  // BSD_VISIBLE
+{$if defined(FreeBSD) or defined(NetBSD) or defined(OpenBSD)}  // BSD_VISIBLE
   IPC_R      =  4 shl 6;
   IPC_W      =  2 shl 6;
   IPC_M      =  2 shl 12;
@@ -63,7 +63,7 @@ Const
   IPC_EXCL   =  2 shl 9;  { fail if key exists }
   IPC_NOWAIT =  4 shl 9;  { return error on wait }
 
-{$if defined(FreeBSD) or defined(Darwin) or defined(Linux)}
+{$if defined(FreeBSD) or defined(Darwin) or defined(Linux) or defined(OpenBSD)}
   IPC_PRIVATE : TKey = 0;
 {$endif}
 
@@ -81,7 +81,7 @@ type
 {$ifdef darwin}
 {$packrecords 4}
 {$endif}
-{$if defined(FreeBSD) or defined(Darwin)}
+{$if defined(FreeBSD) or defined(Darwin) or defined(OpenBSD)}
   TIPC_Perm = record
         cuid  : cushort;  { creator user id }
         cgid  : cushort;  { creator group id }
@@ -146,7 +146,7 @@ Function ftok (Path : pchar;  ID : cint) : TKey; {$ifdef FPC_USE_LIBC} cdecl; ex
 Type
   PShmid_DS = ^TShmid_ds;
 
-{$ifdef FreeBSD}
+{$if defined(FreeBSD) or defined(OpenBSD)}
   TShmid_ds = record
     shm_perm  : TIPC_Perm;
     shm_segsz : cint;
@@ -190,7 +190,7 @@ Type
     __unused4 : culong;
     __unused5 : culong;
   end;
-{$else cpux86_64}  
+{$else cpux86_64}
   TShmid_ds = record
     shm_perm  : TIPC_Perm;
     shm_segsz : cint;
@@ -204,7 +204,7 @@ Type
     shm_pages  : pointer;
     attaches   : pointer;
   end;
-{$endif cpux86_64}  
+{$endif cpux86_64}
 {$endif}
 
   const
@@ -243,7 +243,7 @@ type            // the shm*info kind is "kernel" only.
     shmall : cint;
   end;
 
-{$if defined(FreeBSD) or defined(Linux)}
+{$if defined(FreeBSD) or defined(OpenBSD) or defined(Linux)}
   PSHM_info = ^TSHM_info;
   TSHM_info = record
     used_ids : cint;
@@ -279,7 +279,7 @@ type
   msglen_t = culong;
   msgqnum_t= culong;
 
-{$ifdef Darwin}                      
+{$ifdef Darwin}
   user_msglen_t = culonglong;
   user_msgqnum_t= culonglong;
 {$endif}
@@ -287,7 +287,7 @@ type
   PMSG = ^TMSG;
   TMSG = record
 {$ifndef FreeBSD}                       // opague in FreeBSD
-   {$ifdef Darwin}                    
+   {$ifdef Darwin}
     msg_next  : PMSG;
     msg_type  : clong;
     msg_ts    : cushort;

+ 6 - 1
tests/Makefile

@@ -1574,6 +1574,11 @@ ifneq ($(SVNVERSION),)
 	$(ECHOREDIR) svnrtlrevision=$(SVN_RTL_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
 	$(ECHOREDIR) svnpackagesrevision=$(SVN_PACKAGES_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
 endif
+ifeq ($(OS_SOURCE),openbsd)
+TARFROM=-I tar.lst
+else
+TARFROM=--files-from=tar.lst
+endif
 ifndef inWinDOS
 $(TEST_OUTPUTDIR)/tar.lst:
 	cd $(TEST_OUTPUTDIR) && find . -name '*.log' -o -name '*.elg' > tar.lst
@@ -1583,7 +1588,7 @@ $(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdig
 ifdef inCygWin
 	dos2unix $(TEST_OUTPUTDIR)/tar.lst
 endif
-	cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) --files-from=tar.lst
+	cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
 else
 $(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg
 ifdef inDOS

+ 8 - 1
tests/Makefile.fpc

@@ -482,6 +482,13 @@ ifneq ($(SVNVERSION),)
         $(ECHOREDIR) svnpackagesrevision=$(SVN_PACKAGES_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
 endif
 
+# OpenBSD system tar executable doesn't know
+# about --files-from option, but supports -I
+ifeq ($(OS_SOURCE),openbsd)
+TARFROM=-I tar.lst
+else
+TARFROM=--files-from=tar.lst
+endif
 
 ifndef inWinDOS
 $(TEST_OUTPUTDIR)/tar.lst:
@@ -493,7 +500,7 @@ $(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdig
 ifdef inCygWin
         dos2unix $(TEST_OUTPUTDIR)/tar.lst
 endif
-        cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) --files-from=tar.lst
+        cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
 
 else
 $(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg

二進制
tests/test/cg/obj/openbsd/i386/cpptcl1.o


二進制
tests/test/cg/obj/openbsd/i386/cpptcl2.o


二進制
tests/test/cg/obj/openbsd/i386/ctest.o


二進制
tests/test/cg/obj/openbsd/i386/tcext3.o


二進制
tests/test/cg/obj/openbsd/i386/tcext4.o


二進制
tests/test/cg/obj/openbsd/i386/tcext5.o


二進制
tests/test/cg/obj/openbsd/i386/tcext6.o


+ 3 - 0
tests/test/cg/obj/readme.txt

@@ -24,3 +24,6 @@ wince 4.21 : GCC 3.3.3
 
 Solaris-i386 : gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)
 Solaris-x86_64 : gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802) with -m64 option
+
+Freebsd-x86_64 : gcc (GCC) 4.2.1 20070719  [FreeBSD]
+OpenBSD-i386 : gcc (GCC) 4.2.1 20070719 

+ 6 - 0
utils/fppkg/Makefile

@@ -498,6 +498,9 @@ endif
 ifeq ($(FULL_TARGET),i386-solaris)
 override TARGET_UNITS+=pkglnet
 endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=pkglnet
+endif
 ifeq ($(FULL_TARGET),i386-darwin)
 override TARGET_UNITS+=pkglnet
 endif
@@ -516,6 +519,9 @@ endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 override TARGET_UNITS+=pkglnet
 endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=pkglnet
+endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 override TARGET_UNITS+=pkglnet
 endif

+ 1 - 1
utils/fppkg/Makefile.fpc

@@ -14,7 +14,7 @@ units_beos=pkglnet
 units_haiku=pkglnet
 units_freebsd=pkglnet
 units_netbsd=pkglnet
-nits_openbsd=pkglnet
+units_openbsd=pkglnet
 units_darwin=pkglnet
 units_iphonesim=pkglnet
 units_solaris=pkglnet