Browse Source

AROS: Ensure that spinlocks for SMP enabled build is not possible for ABIv11

These changes makes sure that the use of record structure spinlock is not
active/available when compiling for AROS ABIv11 as that ABI does not support
spinlocks as implemented for AROS ABIv1.

Note that this is a ABI and Binary Compatible break between ABIv1 and ABIv11.
magorium 3 years ago
parent
commit
c660120329
2 changed files with 12 additions and 0 deletions
  1. 6 0
      packages/arosunits/src/exec.pas
  2. 6 0
      rtl/aros/i386/execd.inc

+ 6 - 0
packages/arosunits/src/exec.pas

@@ -86,6 +86,7 @@ const
   LFalse: LongInt = 0;
   LFalse: LongInt = 0;
 
 
 // spinlock
 // spinlock
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 type
 type
@@ -108,6 +109,7 @@ type
   end;
   end;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 
 
 type
 type
 // List Node Structure.  Each member in a list starts with a Node
 // List Node Structure.  Each member in a list starts with a Node
@@ -640,6 +642,7 @@ type
     mp_SigBit: Byte;     { signal bit number    }
     mp_SigBit: Byte;     { signal bit number    }
     mp_SigTask: Pointer;   { task to be signalled (TaskPtr) }
     mp_SigTask: Pointer;   { task to be signalled (TaskPtr) }
     mp_MsgList: TList;     { message linked list  }
     mp_MsgList: TList;     { message linked list  }
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSEXEC_SMP}
 {$ifdef AROSEXEC_SMP}
@@ -648,6 +651,7 @@ type
     mp_Pad: TSpinlock;
     mp_Pad: TSpinlock;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 {$endif}
 {$endif}
   end;
   end;
 
 
@@ -872,6 +876,7 @@ type
   TSemaphoreRequest = record
   TSemaphoreRequest = record
     sr_Link: TMinNode;
     sr_Link: TMinNode;
     sr_Waiter: PTask;
     sr_Waiter: PTask;
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSEXEC_SMP}
 {$ifdef AROSEXEC_SMP}
@@ -880,6 +885,7 @@ type
     sr_pad: TSpinLock;
     sr_pad: TSpinLock;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 {$endif}
 {$endif}
   end;
   end;
 
 

+ 6 - 0
rtl/aros/i386/execd.inc

@@ -29,6 +29,7 @@
   * }
   * }
 
 
 
 
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 type
 type
@@ -51,6 +52,7 @@ type
   end;
   end;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 
 
 
 
 
 
@@ -606,6 +608,7 @@ type  // Checked OK 05.08.2011 ALB
     mp_SigBit : Byte;
     mp_SigBit : Byte;
     mp_SigTask: Pointer;
     mp_SigTask: Pointer;
     mp_MsgList: TEList;
     mp_MsgList: TEList;
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSEXEC_SMP}
 {$ifdef AROSEXEC_SMP}
@@ -614,6 +617,7 @@ type  // Checked OK 05.08.2011 ALB
     mp_pad: TSpinLock;
     mp_pad: TSpinLock;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 {$endif}
 {$endif}
   end;
   end;
 
 
@@ -1104,6 +1108,7 @@ type
   TSemaphoreRequest = record
   TSemaphoreRequest = record
     sr_Link  : TMinNode;
     sr_Link  : TMinNode;
     sr_Waiter: PTask;
     sr_Waiter: PTask;
+{$ifndef AROS_ABIv11}
 {$ifdef AROS_ABIv1}
 {$ifdef AROS_ABIv1}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSPLATFORM_SMP}
 {$ifdef AROSEXEC_SMP}
 {$ifdef AROSEXEC_SMP}
@@ -1112,6 +1117,7 @@ type
     sr_pad: TSpinLock;
     sr_pad: TSpinLock;
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$endif}
 {$endif}
 {$endif}
   end;
   end;