summaryrefslogtreecommitdiff
path: root/rtl/haiku
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-04-15 15:54:10 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-04-15 15:54:10 +0000
commitfee1bb3ec8fc6e8b528ef2fefb1ebe63758f162b (patch)
tree62af4439c8c2569f831cd135a6c5bf397de464d4 /rtl/haiku
parent4c6a532db289fbfb49487652fb644b77d0e6977a (diff)
parentb4e67ab336b17cc2fd10d3121d5af87c5d9b071d (diff)
downloadfpc-fee1bb3ec8fc6e8b528ef2fefb1ebe63758f162b.tar.gz
* merged trunk up to r20882
o support for the new codepage-aware ansistrings in the jvm branch o empty ansistrings are now always represented by a nil pointer rather than by an empty string, because an empty string also has a code page which can confuse code (although this will make ansistrings harder to use in Java code) o more string helpers code shared between the general and jvm rtl o support for indexbyte/word in the jvm rtl (warning: first parameter is an open array rather than an untyped parameter there, so indexchar(pcharvar^,10,0) will be equivalent to indexchar[pcharvar^],10,0) there, which is different from what is intended; changing it to an untyped parameter wouldn't help though) o default() support is not yet complete o calling fpcres is currently broken due to limitations in sysutils.executeprocess() regarding handling unix quoting and the compiler using the same command lines for scripts and directly calling external programs o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1 to the make command line git-svn-id: http://svn.freepascal.org/svn/fpc/branches/jvmbackend@20887 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/haiku')
-rw-r--r--rtl/haiku/Makefile339
-rw-r--r--rtl/haiku/Makefile.fpc2
-rw-r--r--rtl/haiku/i386/sighnd.inc6
-rw-r--r--rtl/haiku/ptypes.inc6
-rw-r--r--rtl/haiku/signal.inc41
-rw-r--r--rtl/haiku/system.pp10
6 files changed, 185 insertions, 219 deletions
diff --git a/rtl/haiku/Makefile b/rtl/haiku/Makefile
index 042c1c3919..d3b788c3f9 100644
--- a/rtl/haiku/Makefile
+++ b/rtl/haiku/Makefile
@@ -1,10 +1,10 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/18]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/13]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku
+UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom
OSNeedsComspecToRunBatch = go32v2 watcom
FORCE:
@@ -155,12 +155,6 @@ ifdef OS_TARGET_DEFAULT
OS_TARGET=$(OS_TARGET_DEFAULT)
endif
endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
endif
@@ -186,6 +180,12 @@ else
ARCH=$(CPU_TARGET)
endif
endif
+ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -424,6 +424,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
@@ -445,6 +448,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
@@ -487,6 +493,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
@@ -496,12 +505,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
ifeq ($(FULL_TARGET),jvm-java)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo
endif
@@ -616,6 +631,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_IMPLICITUNITS+=exeinfo
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_IMPLICITUNITS+=exeinfo
endif
@@ -637,6 +655,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_IMPLICITUNITS+=exeinfo
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_IMPLICITUNITS+=exeinfo
endif
@@ -679,6 +700,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_IMPLICITUNITS+=exeinfo
endif
@@ -688,12 +712,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_IMPLICITUNITS+=exeinfo
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_IMPLICITUNITS+=exeinfo
endif
ifeq ($(FULL_TARGET),jvm-java)
override TARGET_IMPLICITUNITS+=exeinfo
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -808,6 +838,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -829,6 +862,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -871,6 +907,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -880,12 +919,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
ifeq ($(FULL_TARGET),jvm-java)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
@@ -1000,6 +1045,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
@@ -1021,6 +1069,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
@@ -1063,6 +1114,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
@@ -1072,12 +1126,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
ifeq ($(FULL_TARGET),jvm-java)
override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
@@ -1193,6 +1253,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
@@ -1214,6 +1277,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
@@ -1256,6 +1322,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
@@ -1265,12 +1334,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
ifeq ($(FULL_TARGET),jvm-java)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1385,6 +1460,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1406,6 +1484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1448,6 +1529,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1457,12 +1541,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
ifeq ($(FULL_TARGET),jvm-java)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1577,6 +1667,9 @@ endif
ifeq ($(FULL_TARGET),powerpc-wii)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),sparc-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1598,6 +1691,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override COMPILER_TARGETDIR+=.
endif
@@ -1640,6 +1736,9 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),avr-embedded)
override COMPILER_TARGETDIR+=.
endif
@@ -1649,12 +1748,18 @@ endif
ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_TARGETDIR+=.
endif
ifeq ($(FULL_TARGET),jvm-java)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_TARGETDIR+=.
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1865,7 +1970,7 @@ SHAREDLIBPREFIX=libfp
STATICLIBPREFIX=libp
IMPORTLIBPREFIX=libimp
RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
+EXEDBGEXT=.dbg
ifeq ($(OS_TARGET),go32v1)
STATICLIBPREFIX=
SHORTSUFFIX=v1
@@ -1987,6 +2092,7 @@ BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=dwn
+EXEDBGEXT=.dSYM
endif
ifeq ($(OS_TARGET),gba)
EXEEXT=.gba
@@ -2006,164 +2112,22 @@ EXEEXT=.dol
SHAREDLIBEXT=.so
SHORTSUFFIX=wii
endif
-ifeq ($(OS_TARGET),java)
-SHAREDLIBEXT=.jar
-SHORTSUFFIX=java
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-IMPORTLIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-IMPORTLIBPREFIX=
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-IMPORTLIBPREFIX=
-endif
-ifeq ($(OS_TARGET),linux)
+ifeq ($(OS_TARGET),aix)
BATCHEXT=.sh
EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
+SHORTSUFFIX=aix
endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-IMPORTLIBPREFIX=
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-IMPORTLIBPREFIX=imp
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-IMPORTLIBPREFIX=imp
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-IMPORTLIBPREFIX=imp
+ifeq ($(OS_TARGET),java)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=java
endif
+ifeq ($(OS_TARGET),android)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=android
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
@@ -2354,15 +2318,6 @@ ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
ifndef ASPROG
ifdef CROSSBINDIR
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@@ -2406,25 +2361,6 @@ DATESTR:=$(shell $(DATE) +%Y%m%d)
else
DATESTR=
endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
ZIPOPT=-9
ZIPEXT=.zip
ifeq ($(USETAR),bz2)
@@ -2445,6 +2381,7 @@ override FPCOPT+=-P$(ARCH)
endif
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
+override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
@@ -2454,6 +2391,11 @@ ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
endif
+ifndef CROSSCOMPILE
+ifneq ($(BINUTILSPREFIX),)
+override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
+endif
+endif
ifdef UNITDIR
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
endif
@@ -2545,7 +2487,7 @@ override FPCOPT+=-Aas
endif
endif
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifneq ($(findstring $(OS_TARGET),linux solaris),)
+ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2724,9 +2666,6 @@ endif
fpc_install: all $(INSTALLTARGET)
ifdef INSTALLEXEFILES
$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
endif
ifdef INSTALL_CREATEPACKAGEFPC
@@ -2774,9 +2713,11 @@ endif
.PHONY: fpc_clean fpc_cleanall fpc_distclean
ifdef EXEFILES
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
endif
ifdef CLEAN_PROGRAMS
override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
+override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
endif
ifdef CLEAN_UNITS
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
@@ -2793,6 +2734,9 @@ fpc_clean: $(CLEANTARGET)
ifdef CLEANEXEFILES
-$(DEL) $(CLEANEXEFILES)
endif
+ifdef CLEANEXEDBGFILES
+ -$(DELTREE) $(CLEANEXEDBGFILES)
+endif
ifdef CLEANPPUFILES
-$(DEL) $(CLEANPPUFILES)
endif
@@ -2894,7 +2838,6 @@ fpc_baseinfo:
@$(ECHO) Date...... $(DATE)
@$(ECHO) FPCMake... $(FPCMAKE)
@$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
@$(ECHO) Zip....... $(ZIPPROG)
@$(ECHO)
@$(ECHO) == Object info ==
@@ -3072,4 +3015,4 @@ ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) sysconst$(PPUEXT) varutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) math$(PPUEXT)
$(COMPILER) -Fi$(INC) $(INC)/variants.pp
cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
diff --git a/rtl/haiku/Makefile.fpc b/rtl/haiku/Makefile.fpc
index 5287538031..1a1aa04706 100644
--- a/rtl/haiku/Makefile.fpc
+++ b/rtl/haiku/Makefile.fpc
@@ -265,7 +265,7 @@ variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) sysconst$(PPUEXT) varut
cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
diff --git a/rtl/haiku/i386/sighnd.inc b/rtl/haiku/i386/sighnd.inc
index 4f35a18636..811f5aea27 100644
--- a/rtl/haiku/i386/sighnd.inc
+++ b/rtl/haiku/i386/sighnd.inc
@@ -16,7 +16,7 @@
**********************************************************************}
-procedure SignalToRunerror(sig : longint; SigContext: PSigContextRec; uContext: Pvregs);public name '_FPC_DEFAULTSIGHANDLER';cdecl;
+procedure SignalToRunerror(sig : longint; SigContext: PSigInfo; uContext: PSigContext);public name '_FPC_DEFAULTSIGHANDLER';cdecl;
var
res,fpustate : word;
begin
@@ -53,10 +53,10 @@ begin
end;
SysResetFPU;
end;
-(* SIGBUS: {Same as SIGSEGV under BeOS}
+ SIGBUS:
begin
res:=214;
- end; *)
+ end;
SIGILL:
begin
if sse_check then
diff --git a/rtl/haiku/ptypes.inc b/rtl/haiku/ptypes.inc
index 92c10bfc8b..9403d0b4d9 100644
--- a/rtl/haiku/ptypes.inc
+++ b/rtl/haiku/ptypes.inc
@@ -184,14 +184,14 @@ type
CONST
_PTHREAD_MUTEX_TIMED_NP = 0;
- _PTHREAD_MUTEX_RECURSIVE_NP = 1;
+ _PTHREAD_MUTEX_RECURSIVE_NP = 3;
_PTHREAD_MUTEX_ERRORCHECK_NP = 2;
_PTHREAD_MUTEX_ADAPTIVE_NP = 3;
- _PTHREAD_MUTEX_NORMAL = _PTHREAD_MUTEX_TIMED_NP;
+ _PTHREAD_MUTEX_NORMAL = 1;
_PTHREAD_MUTEX_RECURSIVE = _PTHREAD_MUTEX_RECURSIVE_NP;
_PTHREAD_MUTEX_ERRORCHECK = _PTHREAD_MUTEX_ERRORCHECK_NP;
- _PTHREAD_MUTEX_DEFAULT = _PTHREAD_MUTEX_NORMAL;
+ _PTHREAD_MUTEX_DEFAULT = 0;
_PTHREAD_MUTEX_FAST_NP = _PTHREAD_MUTEX_ADAPTIVE_NP;
_PTHREAD_KEYS_MAX = 256;
diff --git a/rtl/haiku/signal.inc b/rtl/haiku/signal.inc
index 5e6aa2999d..bfc4643854 100644
--- a/rtl/haiku/signal.inc
+++ b/rtl/haiku/signal.inc
@@ -17,7 +17,7 @@ Const { For sending a signal }
SA_NOCLDSTOP = $01;
SA_NOCLDWAIT = $02;
- SA_RESETHAND = $03;
+ SA_RESETHAND = $04;
SA_NODEFER = $08;
SA_RESTART = $10;
SA_ONSTACK = $20;
@@ -78,8 +78,9 @@ Const { For sending a signal }
SIGVTALRM = 27;
SIGXCPU = 28;
SIGXFSZ = 29;
-
- SIGBUS = SIGSEGV;
+ SIGBUS = 30;
+ SIGRESERVED1 = 31;
+ SIGRESERVED2 = 32;
{
Signal numbers 23-32 are currently free but may be used in future
@@ -234,7 +235,9 @@ type
Pvregs = ^vregs;
- sigset_t = array[0..0] of Longint;
+ sigset_t = array[0..1] of Cardinal;
+
+ PSigContext = ^vregs;
PSigContextRec = ^SigContextRec;
SigContextRec = record
@@ -277,13 +280,37 @@ type
fpr_ex_sw : cardinal;
fpr_pad : array[0..63] of char;
end;
+
+ Sigval = Record
+ Case Boolean OF
+ { Members as suggested by Annex C of POSIX 1003.1b. }
+ false : (sigval_int : Longint);
+ True : (sigval_ptr : Pointer);
+ End;
+
+
+ PSigInfo = ^SigInfo_t;
+ PSigInfo_t = ^SigInfo_t;
+ SigInfo_t = packed record
+ si_signo, { signal number }
+ si_code, { signal code }
+ si_errno, { errno association }
+ si_pid : pid_t; { sending process }
+ si_uid : uid_t; { sender's ruid }
+ si_addr : Pointer; { faulting instruction }
+ si_status : Longint; { exit value }
+ si_band : Cardinal; { band event for SIGPOLL }
+ si_value : SigVal; { signal value }
+ end;
+ TSigInfo = SigInfo_t;
+ TSigInfo_t = TSigInfo;
SignalHandler = Procedure(Sig : Longint);cdecl;
PSignalHandler = ^SignalHandler;
SignalRestorer = Procedure;cdecl;
PSignalRestorer = ^SignalRestorer;
- {$WARNING TODO : check with signal.h}
- sigActionHandler = procedure(Sig: Longint; SigContext: PSigContextRec; uContext : Pvregs);cdecl;
+ sigActionHandler = procedure(Sig: Longint; SigInfo: PSigInfo; uContext : PSigContext);cdecl;
+
Sigset=sigset_t;
TSigset=sigset_t;
@@ -306,7 +333,7 @@ type
{$PACKRECORDS C}
pstack_t = ^stack_t;
- stack_t = record
+ stack_t = packed record
ss_sp: pChar; {* signal stack base *}
ss_size: size_t; {* signal stack length *}
ss_flags: cInt; {* SS_DISABLE and/or SS_ONSTACK *}
diff --git a/rtl/haiku/system.pp b/rtl/haiku/system.pp
index 438e9821d2..998c211406 100644
--- a/rtl/haiku/system.pp
+++ b/rtl/haiku/system.pp
@@ -322,7 +322,7 @@ end;
//int sigaltstack(const stack_t *ss, stack_t *oss);
procedure set_signal_stack(ptr : pointer; size : size_t); cdecl; external 'root' name 'set_signal_stack';
-function sigaltstack(const ss : pstack_t; oss : pstack_t) : integer; cdecl; external 'root' name 'sigaltstack';
+function sigaltstack(const stack : pstack_t; oldStack : pstack_t) : integer; cdecl; external 'root' name 'sigaltstack';
type
{$PACKRECORDS C}
@@ -360,7 +360,7 @@ begin
{ initialize handler }
act.sa_mask[0] := 0;
act.sa_handler := SigActionHandler(@SignalToRunError);
- act.sa_flags := SA_ONSTACK or SA_NODEFER or SA_RESETHAND;
+ act.sa_flags := SA_ONSTACK;
FpSigAction(signum,@act,@oldact);
end;
@@ -463,6 +463,7 @@ begin
SysInitExceptions;
// WriteLn('after SysInitException');
+ initunicodestringmanager;
{ Setup IO }
SysInitStdIO;
{ Reset IO Error }
@@ -471,11 +472,6 @@ begin
{$ifdef HASVARIANT}
initvariantmanager;
{$endif HASVARIANT}
-{$ifdef VER2_2}
- initwidestringmanager;
-{$else VER2_2}
- initunicodestringmanager;
-{$endif VER2_2}
setupexecname;
{ restore original signal handlers in case this is a library }
if IsLibrary then