Просмотр исходного кода

* m68k-linux: syscalls are expected to return -1 on failure, not -errno. This fixes some of the tests, webtbs/tw2494 is one of them.

git-svn-id: trunk@28089 -
sergei 11 лет назад
Родитель
Сommit
4b4651d298
1 измененных файлов с 35 добавлено и 7 удалено
  1. 35 7
      rtl/linux/m68k/syscall.inc

+ 35 - 7
rtl/linux/m68k/syscall.inc

@@ -29,7 +29,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0'];
   end ['d0'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 
 
@@ -41,7 +45,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1'];
   end ['d0', 'd1'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 
 
@@ -54,7 +62,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1', 'd2'];
   end ['d0', 'd1', 'd2'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 
 
@@ -68,7 +80,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3'];
   end ['d0', 'd1', 'd2', 'd3'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; [public,alias:'FPC_SYSCALL4'];
 function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; [public,alias:'FPC_SYSCALL4'];
@@ -82,7 +98,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4'];
   end ['d0', 'd1', 'd2', 'd3', 'd4'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 
 
@@ -98,7 +118,11 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5'];
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;
 
 
 
 
@@ -115,6 +139,10 @@ begin
     trap #0
     trap #0
     move.l d0, @Result
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5', 'a0'];
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5', 'a0'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 end;