summaryrefslogtreecommitdiff
path: root/rtl/java
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
commit1903b037de2fb3e75826406b46f055acb70963fa (patch)
tree604cd8b790fe14e5fbe441d4cd647c80d2a36a9a /rtl/java
parentad1141d52f8353457053b925cd674fe1d5c4eafc (diff)
parent953d907e4d6c3a5c2f8aaee6e5e4f73c55ce5985 (diff)
downloadfpc-blocks.tar.gz
* synchronised with trunk till r29513blocks
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/blocks@29516 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/java')
-rw-r--r--rtl/java/Makefile45
-rw-r--r--rtl/java/Makefile.fpc8
-rw-r--r--rtl/java/jcompproc.inc2
-rw-r--r--rtl/java/jsstrings.inc2
-rw-r--r--rtl/java/jsystem.inc48
-rw-r--r--rtl/java/jsystemh.inc16
-rw-r--r--rtl/java/jsystemh_types.inc5
-rw-r--r--rtl/java/justrings.inc2
8 files changed, 90 insertions, 38 deletions
diff --git a/rtl/java/Makefile b/rtl/java/Makefile
index 50dc34d176..7600da224f 100644
--- a/rtl/java/Makefile
+++ b/rtl/java/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
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 i386-android 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-netbsd 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 arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+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 i386-android i386-aros 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -413,6 +413,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
@@ -500,6 +503,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
@@ -639,6 +645,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
@@ -726,6 +735,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1262,6 +1280,12 @@ EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
+ifeq ($(OS_TARGET),dragonfly)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=df
+endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
@@ -1307,6 +1331,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1771,7 +1800,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2197,13 +2226,15 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
-objpas$(PPUEXT): objpas.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp $(REDIR)
+objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT)
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
+ $(COMPILER) $(INC)/strings.pp $(REDIR)
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/java/Makefile.fpc b/rtl/java/Makefile.fpc
index 41793cf44b..c561fe0f2f 100644
--- a/rtl/java/Makefile.fpc
+++ b/rtl/java/Makefile.fpc
@@ -84,16 +84,18 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp $(REDIR)
-objpas$(PPUEXT): objpas.pp
+objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp $(REDIR)
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
#
# System Dependent Units
diff --git a/rtl/java/jcompproc.inc b/rtl/java/jcompproc.inc
index a2114883b3..0c4e31afb5 100644
--- a/rtl/java/jcompproc.inc
+++ b/rtl/java/jcompproc.inc
@@ -531,7 +531,7 @@ function fpc_variant_to_idispatch(const v : variant) : idispatch;compilerproc;
function fpc_idispatch_to_variant(const i : idispatch) : variant;compilerproc;
procedure fpc_vararray_get(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
procedure fpc_vararray_put(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
-procedure fpc_dispinvoke_variant(dest : pvardata;const source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
+procedure fpc_dispinvoke_variant(dest : pvardata;var source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
{$endif FPC_HAS_FEATURE_VARIANTS}
{$ifdef FPC_HAS_FEATURE_TEXTIO}
diff --git a/rtl/java/jsstrings.inc b/rtl/java/jsstrings.inc
index d35fb84a0f..79b2d7b10f 100644
--- a/rtl/java/jsstrings.inc
+++ b/rtl/java/jsstrings.inc
@@ -363,7 +363,7 @@ Function int_Val_SInt_ShortStr(DestSize: SizeInt; Const S: ShortString; out Code
{$define FPC_HAS_SETSTRING_SHORTSTR}
-Procedure SetString (Out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure fpc_setstring_shortstr(Out S : Shortstring; Buf : PChar; Len : SizeInt); compilerproc;
begin
If Len > High(S) then
Len := High(S);
diff --git a/rtl/java/jsystem.inc b/rtl/java/jsystem.inc
index f4b4fd57c7..ec7df434fa 100644
--- a/rtl/java/jsystem.inc
+++ b/rtl/java/jsystem.inc
@@ -67,20 +67,6 @@ Const
Local types
****************************************************************************}
-{
- TextRec and FileRec are put in a separate file to make it available to other
- units without putting it explicitly in systemh.
- This way we keep TP compatibility, and the TextRec definition is available
- for everyone who needs it.
-}
-{$ifdef FPC_HAS_FEATURE_FILEIO}
-{$i filerec.inc}
-{$endif FPC_HAS_FEATURE_FILEIO}
-
-{$ifndef CPUJVM}
-{$i textrec.inc}
-{$endif CPUJVM}
-
{$ifdef FPC_HAS_FEATURE_EXITCODE}
{$ifdef FPC_OBJFPC_EXTENDED_IF}
{$if High(errorcode)<>maxExitCode}
@@ -108,7 +94,7 @@ const
(*
{ For Error Handling.}
- ErrorBase : Pointer = nil; public name 'FPC_ERRORBASE';
+ ErrorBase : Pointer = nil;public name 'FPC_ERRORBASE';
*)
{$ifndef cpujvm}
@@ -382,22 +368,22 @@ End;
Function Swap (X : Longint) : Longint;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffff) shl 16 + (X shr 16)
+ Swap:=(X shl 16) + (X shr 16);
End;
//Function Swap (X : Cardinal) : Cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
//Begin
-// Swap:=(X and $ffff) shl 16 + (X shr 16)
+// Swap:=(X shl 16) + (X shr 16);
//End;
//Function Swap (X : QWord) : QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
//Begin
-// Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+// Swap:=(X shl 32) + (X shr 32);
//End;
-Function swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
+Function Swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+ Swap:=(X shl 32) + (X shr 32);
End;
{$ifdef SUPPORT_DOUBLE}
@@ -1576,6 +1562,7 @@ begin
end;
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
procedure DoDirSeparators(var ps:RawByteString);
var
i : longint;
@@ -1595,7 +1582,10 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
+
+{$ifdef FPC_HAS_FEATURE_UNICODESTRINGS}
procedure DoDirSeparators(var ps:UnicodeString);
var
i : longint;
@@ -1615,6 +1605,7 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_UNICODESTRINGS}
{$endif FPC_HAS_FEATURE_FILEIO}
@@ -1699,10 +1690,23 @@ end;
{$endif FPC_HAS_FEATURE_FILEIO}
+(* already declared earlier in system.pp for java
+
+{ helper for targets supporting no ansistrings, it is used
+ by non-ansistring code }
+function min(v1,v2 : SizeInt) : SizeInt;
+ begin
+ if v1<v2 then
+ result:=v1
+ else
+ result:=v2;
+ end;
+*)
+
+{$ifdef FPC_HAS_FEATURE_TEXTIO}
{ Text file }
-{$ifndef CPUJVM}
{$i text.inc}
-{$endif CPUJVM}
+{$endif FPC_HAS_FEATURE_TEXTIO}
{$ifdef FPC_HAS_FEATURE_FILEIO}
{ Untyped file }
diff --git a/rtl/java/jsystemh.inc b/rtl/java/jsystemh.inc
index 7950369f92..af0776f196 100644
--- a/rtl/java/jsystemh.inc
+++ b/rtl/java/jsystemh.inc
@@ -175,7 +175,12 @@ Function abs(l:longint):longint;[internproc:fpc_in_abs_long];
{$else FPC_HAS_INTERNAL_ABS_LONG}
Function abs(l:Longint):Longint;[internconst:fpc_in_const_abs];{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif FPC_HAS_INTERNAL_ABS_LONG}
+{$ifdef FPC_HAS_INTERNAL_ABS_INT64}
+{$define FPC_SYSTEM_HAS_ABS_INT64}
+Function abs(l:Int64):Int64;[internproc:fpc_in_abs_long];
+{$else FPC_HAS_INTERNAL_ABS_INT64}
Function abs(l:Int64):Int64;[internconst:fpc_in_const_abs];{$ifdef SYSTEMINLINE}inline;{$endif}
+{$endif FPC_HAS_INTERNAL_ABS_INT64}
Function sqr(l:Longint):Longint;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
Function sqr(l:Int64):Int64;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
Function sqr(l:QWord):QWord;[internconst:fpc_in_const_sqr]; external;
@@ -451,10 +456,16 @@ Function Pos(const substr:shortstring;const s:shortstring):SizeInt;
Function Pos(C:Char;const s:shortstring):SizeInt;
{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
Function Pos(const Substr : ShortString; const Source : RawByteString) : SizeInt;
+
+{$ifdef FPC_HAS_CPSTRING}
+Procedure fpc_setstring_ansistr_pansichar(out S : RawByteString; Buf : PAnsiChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+Procedure fpc_setstring_ansistr_pwidechar(out S : RawByteString; Buf : PWideChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+{$else}
Procedure SetString(out S : AnsiString; Buf : PAnsiChar; Len : SizeInt);
Procedure SetString(out S : AnsiString; Buf : PWideChar; Len : SizeInt);
+{$endif}
{$endif FPC_HAS_FEATURE_ANSISTRINGS}
-Procedure SetString (out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_shortstr{$else}SetString{$endif}(out S : Shortstring; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
function ShortCompareText(const S1, S2: shortstring): SizeInt;
Function upCase(const s:shortstring):shortstring;
Function lowerCase(const s:shortstring):shortstring; overload;
@@ -471,6 +482,7 @@ Function binStr(Val:qword;cnt:byte):shortstring; {$ifdef cpujvm}external;{$endi
{$ifdef CPUI8086}
Function hexStr(Val:NearPointer):shortstring;
Function hexStr(Val:FarPointer):shortstring;
+Function hexStr(Val:HugePointer):shortstring;{$ifdef SYSTEMINLINE}inline;{$endif}
{$else CPUI8086}
Function hexStr(Val:Pointer):shortstring;
{$endif CPUI8086}
@@ -758,7 +770,7 @@ Function ParamStr(l:Longint):string;
{$endif FPC_HAS_FEATURE_COMMANDARGS}
{$ifndef JVM}
-Procedure Dump_Stack(var f : text;bp:pointer;addr : pointer = nil);
+Procedure Dump_Stack(var f : text;fp:pointer;addr : codepointer = nil);
{$ifdef FPC_HAS_FEATURE_EXCEPTIONS}
procedure DumpExceptionBackTrace(var f:text);
{$endif FPC_HAS_FEATURE_EXCEPTIONS}
diff --git a/rtl/java/jsystemh_types.inc b/rtl/java/jsystemh_types.inc
index 4320b9ecfb..78595a2458 100644
--- a/rtl/java/jsystemh_types.inc
+++ b/rtl/java/jsystemh_types.inc
@@ -507,7 +507,8 @@ Type
{ the size of textrec/filerec is hardcoded in the 2.6 compiler binary }
{$define FPC_ANSI_TEXTFILEREC}
{$endif}
- TFileTextRecChar = {$ifdef FPC_ANSI_TEXTFILEREC}AnsiChar{$else}UnicodeChar{$endif};
+
+ TFileTextRecChar = {$if defined(FPC_ANSI_TEXTFILEREC) or not(defined(FPC_HAS_FEATURE_WIDESTRINGS))}AnsiChar{$else}UnicodeChar{$endif};
PFileTextRecChar = ^TFileTextRecChar;
TTextLineBreakStyle = (tlbsLF,tlbsCRLF,tlbsCR);
@@ -703,6 +704,8 @@ Var
{ Stack checking }
StackBottom : Pointer;
StackLength : SizeUInt;
+
+function StackTop: Pointer;
*)
{ Numbers for routines that have compiler magic }
diff --git a/rtl/java/justrings.inc b/rtl/java/justrings.inc
index 1c1b3b6903..e3f3ff1c4a 100644
--- a/rtl/java/justrings.inc
+++ b/rtl/java/justrings.inc
@@ -760,7 +760,7 @@ end;
{$define FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt);
+Procedure fpc_setstring_unicodestr_pwidechar(Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt); compilerproc;
begin
if assigned(buf) and (Len>0) then
s:=JLString.Create(TJCharArray(Buf),0,Len)