Browse Source

Disable assembler code for i386 OS targets using old GNU assemblers

git-svn-id: trunk@38899 -
pierre 7 years ago
parent
commit
c618822648
1 changed files with 11 additions and 1 deletions
  1. 11 1
      packages/rtl-generics/src/generics.hashes.pas

+ 11 - 1
packages/rtl-generics/src/generics.hashes.pas

@@ -927,6 +927,16 @@ begin
   Result := Int32(c);
   Result := Int32(c);
 end;
 end;
 
 
+{$ifdef FPC_PIC}
+  {$define DISABLE_X86_CPUINTEL}
+{$endif FPC_PIC}
+
+{$if defined(OPENBSD) or defined(EMX) or defined(OS2)}
+  { These targets have old GNU assemblers that }
+  { do not support all instructions used in assembler code below }
+  {$define DISABLE_X86_CPUINTEL}
+{$endif}
+
 {$ifdef CPU64}
 {$ifdef CPU64}
   {$define PUREPASCAL}
   {$define PUREPASCAL}
   {$ifdef CPUX64}
   {$ifdef CPUX64}
@@ -935,7 +945,7 @@ end;
   {$endif CPUX64}
   {$endif CPUX64}
 {$else}
 {$else}
   {$ifdef CPUX86}
   {$ifdef CPUX86}
-    {$ifndef FPC_PIC}
+    {$ifndef DISABLE_X86_CPUINTEL}
       {$define CPUINTEL}
       {$define CPUINTEL}
       {$ASMMODE INTEL}
       {$ASMMODE INTEL}
     {$else}
     {$else}