]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Simplify the VxWorks implementation of __gnat_environ
authorPatrick Bernardi <bernardi@adacore.com>
Tue, 28 Jul 2020 15:36:08 +0000 (11:36 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 21 Oct 2020 07:22:44 +0000 (03:22 -0400)
gcc/ada/

* env.c (__gnat_environ): For VxWorks kernel simply return the
result of the envGet call. Do this for VxWorks 6 and 7 as they
both support the same API.

gcc/ada/env.c

index 5df0539111fe20371df551dff7b7ec3719b7b99c..287260d69201916aafb669089b5ee7fdf091948b 100644 (file)
        envLib.h on VxWorks MILS and VxWorks 653.  */
     #include <vThreadsData.h>
     #include <envLib.h>
-  #elif (_WRS_VXWORKS_MAJOR <= 6)
+  #else
+    /* Kernel mode */
     #include <envLib.h>
-    /* In that mode the following symbol is not defined in any VxWorks
-       include files, prior to vxWorks 7, so we declare it as extern.  */
-    extern char** ppGlobalEnviron;
-  #elif (_WRS_VXWORKS_MAJOR >= 7)
-    /* This should work for kernel mode on VxWorks 7.x.  In 7.2 the tcb
-       is made private, so accessor functions must be used, in 7.0 it
-       is optional but there is no way to distinguish between 7.2
-       and 7.0 since the version.h header file was never updated.  */
-    #include <envLib.h>
-    #include <taskLibCommon.h>
   #endif
 #endif
 
@@ -144,17 +135,11 @@ __gnat_environ (void)
   extern char **environ;
   return environ;
 #else
-  #if defined (__RTP__) || defined (VTHREADS) || (_WRS_VXWORKS_MAJOR <= 6)
+  #if defined (__RTP__) || defined (VTHREADS)
     return environ;
-  #elif (_WRS_VXWORKS_MAJOR >= 7)
-    char **task_environ;
-
-    task_environ = envGet (taskIdSelf ());
-
-    if (task_environ == NULL)
-       return ppGlobalEnviron;
-    else
-       return task_environ;
+  #else
+    /* Kernel mode */
+    return envGet (NULL);
   #endif
 #endif
 }