Browse Source

AROS: Make sure opaque SMP extension is used for ABIv11 only

These changes adds an additional record field to record structure TMsgPort in
order to support SMP for ABIv11 (non m68k targets only).

This additional field contains two opaque IPTR's/PtrUInt's and therefor breaks
compatibility between ABIv0, ABIv1 and ABIv11 as well as make them binary
incompatible.

It also renders ABIv11 incompatible with itself when this change was introduced
on march 18 2022. Recompilation of existing code for this ABI is thus required.

See: https://github.com/deadw00d/AROS/commit/b9bc67accce27db0e2cc0f79f554dc76e9b17a73
magorium 3 years ago
parent
commit
4058a0ac4b
2 changed files with 8 additions and 0 deletions
  1. 4 0
      packages/arosunits/src/exec.pas
  2. 4 0
      rtl/aros/i386/execd.inc

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

@@ -652,6 +652,10 @@ type
 {$endif}
 {$endif}
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$else}
+{$ifndef CPUM68K}
+    mp_Private: array[0..1] of IPTR; // Private extension field
+{$endif}
 {$endif}
 {$endif}
   end;
   end;
 
 

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

@@ -618,6 +618,10 @@ type  // Checked OK 05.08.2011 ALB
 {$endif}
 {$endif}
 {$endif}
 {$endif}
 {$endif}
 {$endif}
+{$else}
+{$ifndef CPUM68K}
+    mp_Private: array[0..1] of PtrUInt;
+{$endif}
 {$endif}
 {$endif}
   end;
   end;