Quellcode durchsuchen

* applied patch to compile go32v2 from Tomas (tested by John)

armin vor 20 Jahren
Ursprung
Commit
690e3330d1
6 geänderte Dateien mit 315 neuen und 818 gelöschten Zeilen
  1. 34 34
      rtl/go32v2/Makefile
  2. 222 222
      rtl/go32v2/Makefile.fpc
  3. 51 0
      rtl/go32v2/systhrds.pp
  4. 0 545
      rtl/go32v2/thread.inc
  5. 4 11
      rtl/inc/thread.inc
  6. 4 6
      rtl/inc/threadh.inc

+ 34 - 34
rtl/go32v2/Makefile

@@ -250,103 +250,103 @@ ifdef NO_EXCEPTIONS_IN_SYSTEM
 override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-sunos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),sparc-sunos)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=system objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils ctypes
+override TARGET_UNITS+=system systhrds objpas macpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer graph sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo msmouse charset varutils video mouse keyboard variants vesamode types sysconst rtlconst dateutil convutil strutils
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_LOADERS+=prt0 exceptn fpu
@@ -2016,4 +2016,4 @@ lineinfo$(PPUEXT) : $(INC)/lineinfo.pp system$(PPUEXT)
 charset$(PPUEXT) : $(INC)/charset.pp system$(PPUEXT)
 ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) system$(PPUEXT)
 msmouse$(PPUEXT) : msmouse.pp system$(PPUEXT)
-ctypes$(PPUEXT) : $(INC)/ctypes.pp system$(PPUEXT)
+callspec$(PPUEXT) : $(INC)/callspec.pp system$(PPUEXT)

+ 222 - 222
rtl/go32v2/Makefile.fpc

@@ -1,222 +1,222 @@
-#
-#   Makefile.fpc for Go32v2 RTL
-#
-
-[package]
-main=rtl
-
-[target]
-loaders=prt0 exceptn fpu
-units=system objpas macpas strings \
-      go32 dpmiexcp initc ports profile dxetype dxeload emu387 \
-      dos crt objects printer graph \
-      sysutils classes math typinfo matrix \
-      cpu mmx ucomplex getopts heaptrc lineinfo \
-      msmouse charset varutils \
-      video mouse keyboard variants vesamode types \
-      sysconst rtlconst dateutil convutil strutils ctypes
-rsts=math varutils typinfo classes variants dateutil sysconst
-
-[require]
-nortl=y
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../..
-target=go32v2
-cpu=i386
-
-[compiler]
-includedir=$(INC) $(PROCINC)
-sourcedir=$(INC) $(PROCINC)
-
-
-[prerules]
-RTL=..
-INC=../inc
-PROCINC=../$(CPU_TARGET)
-
-UNITPREFIX=rtl
-
-# Use new feature from 1.0.5 version
-# that generates release PPU files
-# which will not be recompiled
-ifdef RELEASE
-override FPCOPT+=-Ur
-endif
-
-# Paths
-OBJPASDIR=$(RTL)/objpas
-GRAPHDIR=$(INC)/graph
-
-# Insert exception handler in system unit
-ifdef EXCEPTIONS_IN_SYSTEM
-override FPCOPT+=-dEXCEPTIONS_IN_SYSTEM
-endif
-
-# Insert exception handler in system unit
-ifdef NO_EXCEPTIONS_IN_SYSTEM
-override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
-endif
-
-
-[rules]
-# Get the system independent include file names.
-# This will set the following variables :
-# SYSINCNAMES
-include $(INC)/makefile.inc
-SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
-
-# Get the processor dependent include file names.
-# This will set the following variables :
-# CPUINCNAMES
-include $(PROCINC)/makefile.cpu
-SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
-
-# Put system unit dependencies together.
-SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
-
-
-#
-# Loaders
-#
-
-prt0$(OEXT) : v2prt0.as
-        $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) v2prt0.as
-
-#
-# System Units (System, Objpas, Strings)
-#
-
-system$(PPUEXT) : system.pp $(SYSDEPS)
-        $(COMPILER) -Us -Sg system.pp
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc system$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
-
-strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
-                   system$(PPUEXT)
-
-#
-# System Dependent Units
-#
-
-go32$(PPUEXT) : go32.pp system$(PPUEXT)
-
-dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) system$(PPUEXT)
-        $(COMPILER) -Sg dpmiexcp.pp
-
-initc$(PPUEXT) : initc.pp system$(PPUEXT)
-
-profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) go32$(PPUEXT)
-
-dxetype$(PPUEXT) : dxetype.pp system$(PPUEXT)
-
-dxeload$(PPUEXT) : dxeload.pp dxetype$(PPUEXT) system$(PPUEXT)
-
-emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \
-                  dpmiexcp$(PPUEXT)
-
-ports$(PPUEXT) : ports.pp objpas$(PPUEXT) system$(PPUEXT)
-
-#
-# TP7 Compatible RTL Units
-#
-
-dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc \
-               go32$(PPUEXT) strings$(PPUEXT) system$(PPUEXT)
-
-crt$(PPUEXT) : crt.pp $(INC)/textrec.inc go32$(PPUEXT) system$(PPUEXT)
-
-objects$(PPUEXT) : $(INC)/objects.pp system$(PPUEXT)
-
-printer$(PPUEXT) : printer.pp system$(PPUEXT)
-
-#
-# Graph
-#
-
-include $(GRAPHDIR)/makefile.inc
-GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
-
-graph$(PPUEXT) : graph.pp go32$(PPUEXT) ports$(PPUEXT) system$(PPUEXT) \
-                 $(GRAPHINCDEPS) vesa.inc vesah.inc dpmi.inc
-        $(COMPILER) -I$(GRAPHDIR) graph.pp
-
-#
-# Delphi Compatible Units
-#
-
-sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-                    objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
-
-classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-                   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) types$(PPUEXT)
-
-        $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
-
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
-        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
-
-math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/math.pp
-
-varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
-                    $(OBJPASDIR)/varutilh.inc varutils.pp
-        $(COMPILER) -I$(OBJPASDIR) varutils.pp
-
-types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/types.pp
-
-rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
-        $(COMPILER) $(OBJPASDIR)/rtlconst.pp
-
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/sysconst.pp
-
-dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
-
-convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
-
-strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
-        $(COMPILER) $(OBJPASDIR)/strutils.pp
-
-#
-# Mac Pascal Model
-#
-
-macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp $(REDIR)
-
-#
-# Other system-independent RTL Units
-#
-
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
-
-mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
-
-getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp system$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp
-
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp system$(PPUEXT)
-
-charset$(PPUEXT) : $(INC)/charset.pp system$(PPUEXT)
-
-ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) system$(PPUEXT)
-
-#
-# Other system-dependent RTL Units
-#
-
-msmouse$(PPUEXT) : msmouse.pp system$(PPUEXT)
-
-ctypes$(PPUEXT) : $(INC)/ctypes.pp system$(PPUEXT)
+#
+#   Makefile.fpc for Go32v2 RTL
+#
+
+[package]
+main=rtl
+
+[target]
+loaders=prt0 exceptn fpu
+units=system systhrds objpas macpas strings \
+      go32 dpmiexcp initc ports profile dxetype dxeload emu387 \
+      dos crt objects printer graph \
+      sysutils classes math typinfo matrix \
+      cpu mmx ucomplex getopts heaptrc lineinfo \
+      msmouse charset varutils \
+      video mouse keyboard variants vesamode types \
+      sysconst rtlconst dateutil convutil strutils
+rsts=math varutils typinfo classes variants dateutil sysconst
+
+[require]
+nortl=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+target=go32v2
+cpu=i386
+
+[compiler]
+includedir=$(INC) $(PROCINC)
+sourcedir=$(INC) $(PROCINC)
+
+
+[prerules]
+RTL=..
+INC=../inc
+PROCINC=../$(CPU_TARGET)
+
+UNITPREFIX=rtl
+
+# Use new feature from 1.0.5 version
+# that generates release PPU files
+# which will not be recompiled
+ifdef RELEASE
+override FPCOPT+=-Ur
+endif
+
+# Paths
+OBJPASDIR=$(RTL)/objpas
+GRAPHDIR=$(INC)/graph
+
+# Insert exception handler in system unit
+ifdef EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dEXCEPTIONS_IN_SYSTEM
+endif
+
+# Insert exception handler in system unit
+ifdef NO_EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
+endif
+
+
+[rules]
+# Get the system independent include file names.
+# This will set the following variables :
+# SYSINCNAMES
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+
+# Get the processor dependent include file names.
+# This will set the following variables :
+# CPUINCNAMES
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+
+# Put system unit dependencies together.
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+
+
+#
+# Loaders
+#
+
+prt0$(OEXT) : v2prt0.as
+        $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) v2prt0.as
+
+#
+# System Units (System, Objpas, Strings)
+#
+
+system$(PPUEXT) : system.pp $(SYSDEPS)
+        $(COMPILER) -Us -Sg system.pp
+
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc system$(PPUEXT)
+        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
+
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
+                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+                   system$(PPUEXT)
+
+#
+# System Dependent Units
+#
+
+go32$(PPUEXT) : go32.pp system$(PPUEXT)
+
+dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) system$(PPUEXT)
+        $(COMPILER) -Sg dpmiexcp.pp
+
+initc$(PPUEXT) : initc.pp system$(PPUEXT)
+
+profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) go32$(PPUEXT)
+
+dxetype$(PPUEXT) : dxetype.pp system$(PPUEXT)
+
+dxeload$(PPUEXT) : dxeload.pp dxetype$(PPUEXT) system$(PPUEXT)
+
+emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \
+                  dpmiexcp$(PPUEXT)
+
+ports$(PPUEXT) : ports.pp objpas$(PPUEXT) system$(PPUEXT)
+
+#
+# TP7 Compatible RTL Units
+#
+
+dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc \
+               go32$(PPUEXT) strings$(PPUEXT) system$(PPUEXT)
+
+crt$(PPUEXT) : crt.pp $(INC)/textrec.inc go32$(PPUEXT) system$(PPUEXT)
+
+objects$(PPUEXT) : $(INC)/objects.pp system$(PPUEXT)
+
+printer$(PPUEXT) : printer.pp system$(PPUEXT)
+
+#
+# Graph
+#
+
+include $(GRAPHDIR)/makefile.inc
+GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
+
+graph$(PPUEXT) : graph.pp go32$(PPUEXT) ports$(PPUEXT) system$(PPUEXT) \
+                 $(GRAPHINCDEPS) vesa.inc vesah.inc dpmi.inc
+        $(COMPILER) -I$(GRAPHDIR) graph.pp
+
+#
+# Delphi Compatible Units
+#
+
+sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
+                    objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT)
+        $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
+
+classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
+                   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) types$(PPUEXT)
+
+        $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
+
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
+        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
+
+math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
+        $(COMPILER) $(OBJPASDIR)/math.pp
+
+varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
+                    $(OBJPASDIR)/varutilh.inc varutils.pp
+        $(COMPILER) -I$(OBJPASDIR) varutils.pp
+
+types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT)
+        $(COMPILER) $(OBJPASDIR)/types.pp
+
+rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
+        $(COMPILER) $(OBJPASDIR)/rtlconst.pp
+
+sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT)
+        $(COMPILER) $(OBJPASDIR)/sysconst.pp
+
+dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
+        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
+
+convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp
+        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
+
+strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
+        $(COMPILER) $(OBJPASDIR)/strutils.pp
+
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
+#
+# Other system-independent RTL Units
+#
+
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
+
+mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
+
+getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)
+
+heaptrc$(PPUEXT) : $(INC)/heaptrc.pp system$(PPUEXT)
+        $(COMPILER) -Sg $(INC)/heaptrc.pp
+
+lineinfo$(PPUEXT) : $(INC)/lineinfo.pp system$(PPUEXT)
+
+charset$(PPUEXT) : $(INC)/charset.pp system$(PPUEXT)
+
+ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) system$(PPUEXT)
+
+#
+# Other system-dependent RTL Units
+#
+
+msmouse$(PPUEXT) : msmouse.pp system$(PPUEXT)
+
+callspec$(PPUEXT) : $(INC)/callspec.pp system$(PPUEXT)

+ 51 - 0
rtl/go32v2/systhrds.pp

@@ -0,0 +1,51 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2002 by Peter Vreman,
+    member of the Free Pascal development team.
+
+    Dummy implementation for platforms not having real one
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit systhrds;
+{$mode objfpc}
+
+interface
+
+  type
+     PRTLCriticalSection = ^TRTLCriticalSection;
+     TRTLCriticalSection = record
+       Locked: boolean
+     end;
+
+{ Include generic thread interface }
+{$i threadh.inc}
+
+implementation
+
+{ Include generic overloaded routines }
+{$i thread.inc}
+
+{ Include OS independent threadvar initialization }
+{$ifdef HASTHREADVAR}
+{$i threadvr.inc}
+{$endif HASTHREADVAR}
+
+initialization
+  SetNoThreadManager;
+end.
+{
+  $Log$
+  Revision 1.1  2005-01-21 21:43:12  armin
+  * applied patch to compile go32v2 from Tomas (tested by John)
+
+
+}

+ 0 - 545
rtl/go32v2/thread.inc

@@ -1,545 +0,0 @@
-{
-    $Id$
-    This file is part of the Free Pascal Run time library.
-    Copyright (c) 2000 by the Free Pascal development team
-
-    OS independent thread functions/overloads
-
-    See the File COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-
-Var
-  CurrentTM : TThreadManager;
-
-{*****************************************************************************
-                           Threadvar initialization
-*****************************************************************************}
-
-    procedure InitThread(stklen:cardinal);
-      begin
-        SysResetFPU;
-        { ExceptAddrStack and ExceptObjectStack are threadvars       }
-        { so every thread has its on exception handling capabilities }
-        SysInitExceptions;
-        { Open all stdio fds again }
-        SysInitStdio;
-        InOutRes:=0;
-        // ErrNo:=0;
-        { Stack checking }
-        StackLength:=stklen;
-        StackBottom:=Sptr - StackLength;
-        ThreadID := CurrentTM.GetCurrentThreadID();
-      end;
-
-{*****************************************************************************
-                            Overloaded functions
-*****************************************************************************}
-{$ifndef CPU64}
-{$ifndef unix}
-{$endif unix}
-{$endif CPU64}
-
-    function BeginThread(ThreadFunction : tthreadfunc) : DWord;
-      var
-        dummy : THandle;
-      begin
-        BeginThread:=BeginThread(nil,DefaultStackSize,ThreadFunction,nil,0,dummy);
-      end;
-
-
-    function BeginThread(ThreadFunction : tthreadfunc;p : pointer) : DWord;
-      var
-        dummy : THandle;
-      begin
-        BeginThread:=BeginThread(nil,DefaultStackSize,ThreadFunction,p,0,dummy);
-      end;
-
-
-    function BeginThread(ThreadFunction : tthreadfunc;p : pointer;var ThreadId : THandle) : DWord;
-      begin
-        BeginThread:=BeginThread(nil,DefaultStackSize,ThreadFunction,p,0,ThreadId);
-      end;
-
-
-{$ifndef CPU64}
-{$ifndef unix}
-{$endif unix}
-{$endif CPU64}
-
-    procedure EndThread;
-      begin
-        EndThread(0);
-      end;
-
-function BeginThread(sa : Pointer;stacksize : dword; ThreadFunction : tthreadfunc;p : pointer;creationFlags : dword;  var ThreadId : THandle) : DWord;
-
-begin
-  Result:=CurrentTM.BeginThread(sa,stacksize,threadfunction,P,creationflags,ThreadID);
-end;
-
-procedure EndThread(ExitCode : DWord);
-
-begin
-  CurrentTM.EndThread(ExitCode);
-end;
-
-function  SuspendThread (threadHandle : dword) : dword;
-
-begin
-  Result:=CurrentTM.SuspendThread(ThreadHandle);
-end;
-
-function ResumeThread  (threadHandle : dword) : dword;
-
-begin
-  Result:=CurrentTM.ResumeThread(ThreadHandle);
-end;
-
-procedure ThreadSwitch;
-
-begin
-  CurrentTM.ThreadSwitch;
-end;
-
-function  KillThread (threadHandle : dword) : dword;
-
-begin
-  Result:=CurrentTM.KillThread(ThreadHandle);
-end;
-
-function  WaitForThreadTerminate (threadHandle : dword; TimeoutMs : longint) : dword;
-
-begin
-  Result:=CurrentTM.WaitForThreadTerminate(ThreadHandle,TimeOutMS);
-end;
-
-function  ThreadSetPriority (threadHandle : dword; Prio: longint): boolean;
-begin
-  Result:=CurrentTM.ThreadSetPriority(ThreadHandle,Prio);
-end;
-
-function  ThreadGetPriority (threadHandle : dword): Integer;
-
-begin
-  Result:=CurrentTM.ThreadGetPriority(ThreadHandle);
-end;
-
-function  GetCurrentThreadId : dword;
-
-begin
-  Result:=CurrentTM.GetCurrentThreadID();
-end;
-
-procedure InitCriticalSection(var cs : TRTLCriticalSection);
-
-begin
-  CurrentTM.InitCriticalSection(cs);
-end;
-
-procedure DoneCriticalsection(var cs : TRTLCriticalSection);
-
-begin
-  CurrentTM.DoneCriticalSection(cs);
-end;
-
-procedure EnterCriticalsection(var cs : TRTLCriticalSection);
-
-begin
-  CurrentTM.EnterCriticalSection(cs);
-end;
-
-procedure LeaveCriticalsection(var cs : TRTLCriticalSection);
-
-begin
-  CurrentTM.LeaveCriticalSection(cs);
-end;
-
-Function GetThreadManager(Var TM : TThreadManager) : Boolean;
-
-begin
-  TM:=CurrentTM;
-  Result:=True;
-end;
-
-Function SetThreadManager(Const NewTM : TThreadManager; Var OldTM : TThreadManager) : Boolean;
-
-begin
-  GetThreadManager(OldTM);
-  Result:=SetThreadManager(NewTM);
-end;
-
-Function SetThreadManager(Const NewTM : TThreadManager) : Boolean;
-
-begin
-  Result:=True;
-  If Assigned(CurrentTM.DoneManager) then
-    Result:=CurrentTM.DoneManager();
-  If Result then
-    begin
-    CurrentTM:=NewTM;
-    If Assigned(CurrentTM.InitManager) then
-      Result:=CurrentTM.InitManager();
-    end;
-end;
-
-function  BasicEventCreate(EventAttributes : Pointer; AManualReset,InitialState : Boolean;const Name : ansistring):pEventState;
-
-begin
-  result:=currenttm.BasicEventCreate(EventAttributes,AManualReset,InitialState, Name);
-end;
-
-procedure basiceventdestroy(state:peventstate);
-
-begin
-  currenttm.basiceventdestroy(state);
-end;
-
-procedure basiceventResetEvent(state:peventstate);
-
-begin
-  currenttm.basiceventResetEvent(state);
-end;
-
-procedure basiceventSetEvent(state:peventstate);
-
-begin
-  currenttm.basiceventSetEvent(state);
-end;
-
-function  basiceventWaitFor(Timeout : Cardinal;state:peventstate) : longint;
-
-begin
- result:=currenttm.basiceventWaitFor(Timeout,state);
-end;
-
-function  RTLEventCreate :PRTLEvent;
-
-begin
-  result:=currenttm.rtleventcreate();
-end;
-
-
-procedure RTLeventdestroy(state:pRTLEvent);
-
-begin
-  currenttm.rtleventdestroy(state);
-end;
-
-procedure RTLeventSetEvent(state:pRTLEvent);
-
-begin
-  currenttm.rtleventsetEvent(state);
-end;
-
-procedure RTLeventStartWait(state:pRTLEvent);
-
-begin
-  currenttm.rtleventStartWait(state);
-end;
-
-procedure RTLeventWaitFor(state:pRTLEvent);
-
-begin
-  currenttm.rtleventWaitFor(state);
-end;
-
-procedure RTLeventsync(m:trtlmethod;p:tprocedure);
-
-begin
-  currenttm.rtleventsync(m,p);
-end;
-
-procedure RTLchecksynchronize;
-
-begin
- currenttm.rtlchksyncunix;
-end;
-
-
-{ ---------------------------------------------------------------------
-    ThreadManager which gives run-time error. Use if no thread support.
-  ---------------------------------------------------------------------}
-
-{$ifndef DISABLE_NO_THREAD_MANAGER}
-
-Resourcestring
-  SNoThreads = 'This binary has no thread support compiled in.';
-  SRecompileWithThreads = 'Recompile the application with a thread-driver in the program uses clause before other units using thread.';
-
-Procedure NoThreadError;
-
-begin
-  If IsConsole then
-    begin
-    Writeln(StdErr,SNoThreads);
-    Writeln(StdErr,SRecompileWithThreads);
-    end;
-  RunError(232)
-end;
-
-function NoBeginThread(sa : Pointer;stacksize : dword;
-                     ThreadFunction : tthreadfunc;p : pointer;
-                     creationFlags : dword; var ThreadId : THandle) : DWord;
-begin
-  NoThreadError;
-end;
-
-procedure NoEndThread(ExitCode : DWord);
-begin
-  NoThreadError;
-end;
-
-function  NoThreadHandler (threadHandle : dword) : dword;
-begin
-  NoThreadError;
-end;
-
-procedure NoThreadSwitch;  {give time to other threads}
-begin
-  NoThreadError;
-end;
-
-function  NoWaitForThreadTerminate (threadHandle : dword; TimeoutMs : longint) : dword;  {0=no timeout}
-begin
-  NoThreadError;
-end;
-
-function  NoThreadSetPriority (threadHandle : dword; Prio: longint): boolean; {-15..+15, 0=normal}
-begin
-  NoThreadError;
-end;
-
-function  NoThreadGetPriority (threadHandle : dword): Integer;
-begin
-  NoThreadError;
-end;
-
-function  NoGetCurrentThreadId : dword;
-begin
-  NoThreadError;
-end;
-
-procedure NoCriticalSection(var CS);
-
-begin
-  if IsMultiThread then
-    NoThreadError;
-end;
-
-procedure NoInitThreadvar(var offset : dword;size : dword);
-
-begin
-  NoThreadError;
-end;
-
-function NoRelocateThreadvar(offset : dword) : pointer;
-
-begin
-  NoThreadError;
-end;
-
-
-procedure NoAllocateThreadVars;
-
-begin
-  NoThreadError;
-end;
-
-procedure NoReleaseThreadVars;
-
-begin
-  NoThreadError;
-end;
-
-function  noBasicEventCreate(EventAttributes : Pointer; AManualReset,InitialState : Boolean;const Name : ansistring):pEventState;
-
-begin
-  NoThreadError;
-end;
-
-procedure nobasiceventdestroy(state:peventstate);
-
-begin
-  NoThreadError;
-end;
-
-procedure nobasiceventResetEvent(state:peventstate);
-
-begin
-  NoThreadError;
-end;
-
-procedure nobasiceventSetEvent(state:peventstate);
-
-begin
-  NoThreadError;
-end;
-
-function  nobasiceventWaitFor(Timeout : Cardinal;state:peventstate) : longint;
-
-begin
-  NoThreadError;
-end;
-
-function  NORTLEventCreate :PRTLEvent;
-
-begin
-  NoThreadError;
-end;
-
-procedure NORTLeventdestroy(state:pRTLEvent);
-
-begin
-  NoThreadError;
-end;
-
-procedure NORTLeventSetEvent(state:pRTLEvent);
-
-begin
-  NoThreadError;
-end;
-
-procedure NORTLeventStartWait(state:pRTLEvent);
-
-begin
-  NoThreadError;
-end;
-
-procedure NORTLeventWaitFor(state:pRTLEvent);
-
-begin
-  NoThreadError;
-end;
-
-procedure NORTLeventsync(m:trtlmethod;p:tprocedure);
-
-begin
-  NoThreadError;
-end;
-
-
-procedure NORTLChkSyncUnix;
-
-begin
-  NoThreadError;
-end;
-
-
-
-
-Var
-  NoThreadManager : TThreadManager;
-
-Procedure SetNoThreadManager;
-
-begin
-  With NoThreadManager do
-    begin
-    InitManager            :=Nil;
-    DoneManager            :=Nil;
-    BeginThread            :=@NoBeginThread;
-    EndThread              :=@NoEndThread;
-    SuspendThread          :=@NoThreadHandler;
-    ResumeThread           :=@NoThreadHandler;
-    KillThread             :=@NoThreadHandler;
-    ThreadSwitch           :=@NoThreadSwitch;
-    WaitForThreadTerminate :=@NoWaitForThreadTerminate;
-    ThreadSetPriority      :=@NoThreadSetPriority;
-    ThreadGetPriority      :=@NoThreadGetPriority;
-    GetCurrentThreadId     :=@NoGetCurrentThreadId;
-    InitCriticalSection    :=@NoCriticalSection;
-    DoneCriticalSection    :=@NoCriticalSection;
-    EnterCriticalSection   :=@NoCriticalSection;
-    LeaveCriticalSection   :=@NoCriticalSection;
-    InitThreadVar          :=@NoInitThreadVar;
-    RelocateThreadVar      :=@NoRelocateThreadVar;
-    AllocateThreadVars     :=@NoAllocateThreadVars;
-    ReleaseThreadVars      :=@NoReleaseThreadVars;
-    BasicEventCreate       :=@NoBasicEventCreate;
-    basiceventdestroy      :=@Nobasiceventdestroy;
-    basiceventResetEvent   :=@NobasiceventResetEvent;
-    basiceventSetEvent     :=@NobasiceventSetEvent;
-    basiceventWaitFor      :=@NobasiceventWaitFor;
-    rtlEventCreate         :=@NortlEventCreate;
-    rtleventdestroy        :=@Nortleventdestroy;
-    rtleventSetEvent       :=@NortleventSetEvent;
-    rtleventStartWait      :=@NortleventStartWait;
-    rtleventWaitFor        :=@NortleventWaitFor;
-    rtleventsync	   :=@Nortleventsync;
-    rtlchksyncunix	   :=@nortlchksyncunix;
-    end;
-  SetThreadManager(NoThreadManager);
-end;
-{$endif DISABLE_NO_THREAD_MANAGER}
-
-{
-  $Log$
-  Revision 1.4  2005-01-21 21:43:12  armin
-  * applied patch to compile go32v2 from Tomas (tested by John)
-
-  Revision 1.18  2005/01/16 14:46:57  florian
-    * critical sections can be used in programs without threading driver, they have no effect then
-
-  Revision 1.17  2004/12/28 14:20:03  marco
-   * tthread patch from neli
-
-  Revision 1.16  2004/12/27 15:28:40  marco
-   * checksynchronize now in interface win32 uses the default impl.
-       unix uses systhrds, rest empty implementation.
-
-  Revision 1.15  2004/12/23 20:58:22  peter
-    * fix rtlcreateevent
-
-  Revision 1.14  2004/12/23 15:08:58  marco
-   * 2nd synchronize attempt. cthreads<->systhrds difference was not ok, but
-     only showed on make install should be fixed now.
-
-  Revision 1.13  2004/12/22 21:29:24  marco
-   * rtlevent kraam. Checked (compile): Linux, FreeBSD, Darwin, Windows
-  	Check work: ask Neli.
-
-  Revision 1.12  2004/09/19 18:55:30  armin
-  * added define DISABLE_NO_THREAD_MANAGER to avoid warnings if thread manager is always present
-
-  Revision 1.11  2004/05/23 20:26:20  marco
-   * wrappers and nothread prototypes for the basic* functions
-
-  Revision 1.10  2004/02/22 23:22:49  florian
-    * fixed BeginThread on unix
-
-  Revision 1.9  2004/02/22 16:48:39  florian
-    * several 64 bit issues fixed
-
-  Revision 1.8  2004/01/21 20:11:06  peter
-    * fixed compile for unix
-
-  Revision 1.7  2004/01/20 23:13:53  hajny
-    * ExecuteProcess fixes, ProcessID and ThreadID added
-
-  Revision 1.6  2003/11/29 17:33:09  michael
-  + Removed dummy variable from SetNothreadManager
-
-  Revision 1.5  2003/11/29 17:29:32  michael
-  + Added overloaded version of SetThreadManager without old parameter
-
-  Revision 1.4  2003/11/26 20:10:59  michael
-  + New threadmanager implementation
-
-  Revision 1.3  2002/11/14 12:40:06  jonas
-    * the BeginThread() variant that allowed you to specify the stacksize
-      still passed DefaultStackSize to the OS-specific routines
-
-  Revision 1.2  2002/10/16 19:04:27  michael
-  + More system-independent thread routines
-
-  Revision 1.1  2002/10/14 19:39:17  peter
-    * threads unit added for thread support
-
-}

+ 4 - 11
rtl/inc/thread.inc

@@ -43,12 +43,6 @@ Var
 *****************************************************************************}
 {$ifndef CPU64}
 {$ifndef unix}
-    function BeginThread(sa : Pointer;stacksize : dword;
-                         ThreadFunction : tthreadfunc;p : pointer;creationFlags : dword;
-                         var ThreadId : Longint) : DWord;
-      begin
-        BeginThread:=BeginThread(nil,StackSize,ThreadFunction,p,creationFlags,THandle(THreadId));
-      end;
 {$endif unix}
 {$endif CPU64}
 
@@ -76,10 +70,6 @@ Var
 
 {$ifndef CPU64}
 {$ifndef unix}
-    function BeginThread(ThreadFunction : tthreadfunc;p : pointer;var ThreadId : Longint) : DWord;
-      begin
-        BeginThread:=BeginThread(nil,DefaultStackSize,ThreadFunction,p,0,THandle(ThreadId));
-      end;
 {$endif unix}
 {$endif CPU64}
 
@@ -491,7 +481,10 @@ end;
 
 {
   $Log$
-  Revision 1.18  2005-01-16 14:46:57  florian
+  Revision 1.19  2005-01-21 21:45:57  armin
+  * applied patch to compile go32v2 from Tomas (tested by John)
+
+  Revision 1.18  2005/01/16 14:46:57  florian
     * critical sections can be used in programs without threading driver, they have no effect then
 
   Revision 1.17  2004/12/28 14:20:03  marco

+ 4 - 6
rtl/inc/threadh.inc

@@ -110,10 +110,6 @@ function BeginThread(sa : Pointer;stacksize : dword;
   var ThreadId : THandle) : DWord;
 {$ifndef CPU64}
 {$ifndef unix}
-{ Delphi uses a longint for threadid }
-function BeginThread(sa : Pointer;stacksize : dword;
-  ThreadFunction : tthreadfunc;p : pointer;creationFlags : dword;
-  var ThreadId : Longint) : DWord;
 {$endif unix}
 {$endif CPU64}
 
@@ -124,7 +120,6 @@ function BeginThread(ThreadFunction : tthreadfunc;p : pointer) : DWord;
 function BeginThread(ThreadFunction : tthreadfunc;p : pointer; var ThreadId : THandle) : DWord;
 {$ifndef CPU64}
 {$ifndef unix}
-function BeginThread(ThreadFunction : tthreadfunc;p : pointer; var ThreadId : Longint) : DWord;
 {$endif unix}
 {$endif CPU64}
 
@@ -166,7 +161,10 @@ procedure RTLchecksynchronize;
 
 {
   $Log$
-  Revision 1.24  2004-12-28 14:20:03  marco
+  Revision 1.25  2005-01-21 21:43:12  armin
+  * applied patch to compile go32v2 from Tomas (tested by John)
+
+  Revision 1.24  2004/12/28 14:20:03  marco
    * tthread patch from neli
 
   Revision 1.23  2004/12/27 15:28:40  marco