Browse Source

* some more darwin/arm stuff I forgot to commit earlier:
o softfloat support for bsd/system.pp (enabled when compiling for ARM)
o include darwin/arm sigaction structs in darwin/signal.inc when
compiling for ARM (can't commit the file itself that contains
those structs due to licensing issues though)

git-svn-id: trunk@12327 -

Jonas Maebe 16 năm trước cách đây
mục cha
commit
d9c5cd76cd
2 tập tin đã thay đổi với 34 bổ sung0 xóa
  1. 30 0
      rtl/bsd/system.pp
  2. 4 0
      rtl/darwin/signal.inc

+ 30 - 0
rtl/bsd/system.pp

@@ -45,8 +45,38 @@ var argc:longint;
 
 CONST SIGSTKSZ = 40960;
 
+{$if defined(CPUARM)}
+
+{$define fpc_softfpu_interface}
+{$i softfpu.pp}
+{$undef fpc_softfpu_interface}
+
+{$endif defined(CPUARM)}
+
+
 Implementation
 
+{$if defined(CPUARM) or defined(CPUM68K)}
+
+{$define fpc_softfpu_implementation}
+{$i softfpu.pp}
+{$undef fpc_softfpu_implementation}
+
+{ we get these functions and types from the softfpu code }
+{$define FPC_SYSTEM_HAS_float64}
+{$define FPC_SYSTEM_HAS_float32}
+{$define FPC_SYSTEM_HAS_flag}
+{$define FPC_SYSTEM_HAS_extractFloat64Frac0}
+{$define FPC_SYSTEM_HAS_extractFloat64Frac1}
+{$define FPC_SYSTEM_HAS_extractFloat64Exp}
+{$define FPC_SYSTEM_HAS_extractFloat64Sign}
+{$define FPC_SYSTEM_HAS_ExtractFloat32Frac}
+{$define FPC_SYSTEM_HAS_extractFloat32Exp}
+{$define FPC_SYSTEM_HAS_extractFloat32Sign}
+
+{$endif defined(CPUARM) or defined(CPUM68K)}
+
+
 {$I system.inc}
 
 {*****************************************************************************

+ 4 - 0
rtl/darwin/signal.inc

@@ -190,7 +190,11 @@
 {$ifdef cpux86_64}
     {$include x86_64/sig_cpu.inc}       { SigContextRec }
 {$else cpux86_64}
+{$ifdef cpuarm}
+    {$include arm/sig_cpu.inc}
+{$else cpuarm}
     {$error Unsupported cpu type!}
+{$endif cpuarm}
 {$endif cpux86_64}
 {$endif cpui386}
 {$endif cpupowerpc or cpupowerpc64}