diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-04-15 15:54:10 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-04-15 15:54:10 +0000 |
commit | fee1bb3ec8fc6e8b528ef2fefb1ebe63758f162b (patch) | |
tree | 62af4439c8c2569f831cd135a6c5bf397de464d4 /rtl/haiku | |
parent | 4c6a532db289fbfb49487652fb644b77d0e6977a (diff) | |
parent | b4e67ab336b17cc2fd10d3121d5af87c5d9b071d (diff) | |
download | fpc-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/Makefile | 339 | ||||
-rw-r--r-- | rtl/haiku/Makefile.fpc | 2 | ||||
-rw-r--r-- | rtl/haiku/i386/sighnd.inc | 6 | ||||
-rw-r--r-- | rtl/haiku/ptypes.inc | 6 | ||||
-rw-r--r-- | rtl/haiku/signal.inc | 41 | ||||
-rw-r--r-- | rtl/haiku/system.pp | 10 |
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 |