Fix STATUS and int return types for Vxworks6 in legacy.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int.
* libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from
System.VxWorks.Ext.ERROR.
(Initialize): Declare IERR. Assert it.
* libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from
System.VxWorks.Ext.ERROR.
(Is_Valid_Task): Declare IERR. Test return.
* libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS.
diff --git a/gcc/ada/libgnarl/s-osinte__vxworks.ads b/gcc/ada/libgnarl/s-osinte__vxworks.ads
--- a/gcc/ada/libgnarl/s-osinte__vxworks.ads
+++ b/gcc/ada/libgnarl/s-osinte__vxworks.ads
@@ -340,7 +340,7 @@ package System.OS_Interface is
-- Can only be called from the VxWorks 6 run-time libary that supports
-- tlsLib, and not by the VxWorks 6.6 SMP library
- function tlsKeyCreate return STATUS;
+ function tlsKeyCreate return int;
pragma Import (C, tlsKeyCreate, "tlsKeyCreate");
function tlsValueGet (key : int) return System.Address;
diff --git a/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb b/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
--- a/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
+++ b/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
@@ -35,6 +35,8 @@
separate (System.Task_Primitives.Operations)
package body Specific is
+ ERROR : constant STATUS := System.VxWorks.Ext.ERROR;
+
ATCB_Key : int := 0;
-- Key used to find the Ada Task_Id associated with a thread
@@ -43,9 +45,10 @@ package body Specific is
----------------
procedure Initialize is
+ IERR : constant := -1;
begin
ATCB_Key := tlsKeyCreate;
- pragma Assert (ATCB_Key /= ERROR);
+ pragma Assert (ATCB_Key /= IERR);
end Initialize;
-------------------
diff --git a/gcc/ada/libgnarl/s-tpopsp__vxworks.adb b/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
--- a/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
+++ b/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
@@ -35,6 +35,8 @@
separate (System.Task_Primitives.Operations)
package body Specific is
+ ERROR : constant STATUS := System.VxWorks.Ext.ERROR;
+
ATCB_Key : aliased System.Address := System.Null_Address;
-- Key used to find the Ada Task_Id associated with a thread
@@ -70,8 +72,9 @@ package body Specific is
-------------------
function Is_Valid_Task return Boolean is
+ IERR : constant := -1;
begin
- return taskVarGet (taskIdSelf, ATCB_Key'Access) /= ERROR;
+ return taskVarGet (taskIdSelf, ATCB_Key'Access) /= IERR;
end Is_Valid_Task;
---------
diff --git a/gcc/ada/libgnarl/s-vxwext__kernel.adb b/gcc/ada/libgnarl/s-vxwext__kernel.adb
--- a/gcc/ada/libgnarl/s-vxwext__kernel.adb
+++ b/gcc/ada/libgnarl/s-vxwext__kernel.adb
@@ -59,7 +59,7 @@ package body System.VxWorks.Ext is
---------------
function semDelete (Sem : SEM_ID) return STATUS is
- function Os_Sem_Delete (Sem : SEM_ID) return int;
+ function Os_Sem_Delete (Sem : SEM_ID) return STATUS;
pragma Import (C, Os_Sem_Delete, "semDelete");
begin
return Os_Sem_Delete (Sem);