[Ada] Enable use of GNAT.Sockets for VxWorks RTP
authorPatrick Bernardi <bernardi@adacore.com>
Mon, 19 Aug 2019 08:36:26 +0000 (08:36 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 19 Aug 2019 08:36:26 +0000 (08:36 +0000)
The recent introduction of GNAT.Sockets IPv6 support broke support for
VxWorks RTPs due to the use of internal VxWorks kernel calls. This patch
rectifies this by using the VxWorks public API for these routines.

The following RTP should compile successfully on a Development profile
VxWorks kernel that includes the INCLUDE_GETNAMEINFO component:

with GNAT.Sockets;      use GNAT.Sockets;

procedure IPvX is
   procedure Print_Address_Info
     (Host, Serv   : String;
      Family       : Family_Type := Family_Unspec)
   is
      Addresses : Address_Info_Array :=
        Get_Address_Info
          (Host, Serv, Family,
           Passive      => False,
           Numeric_Host => False);
   begin
      Sort (Addresses, IPv6_TCP_Preferred'Access);
   end Print_Address_Info;

begin
   Print_Address_Info ("localhost", "ssh");
end IPvX;

2019-08-19  Patrick Bernardi  <bernardi@adacore.com>

gcc/ada/

* socket.c: Removed the redefinition of getaddrinfo, getnameinfo
and freeaddrinfo to internal VxWorks kernel calls because they
are, well, internal kernel calls and cannot be called from RTPs.
VxWorks provides the necessary components to call these routines
directly.

From-SVN: r274651

gcc/ada/ChangeLog
gcc/ada/socket.c

index 5d48b3d31d19447a60b4f66f3f4727c7b1b5313e..f89468e1d90613101061da4e5c52f0dd970a2245 100644 (file)
@@ -1,3 +1,11 @@
+2019-08-19  Patrick Bernardi  <bernardi@adacore.com>
+
+       * socket.c: Removed the redefinition of getaddrinfo, getnameinfo
+       and freeaddrinfo to internal VxWorks kernel calls because they
+       are, well, internal kernel calls and cannot be called from RTPs.
+       VxWorks provides the necessary components to call these routines
+       directly.
+
 2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
 
        * exp_dist.adb (Is_Generic_Actual_Subtype): New predicate.
index 8fc8415ddc195ea419ca9b01a6aad4392fd0b8ad..94538d4308266bda12d0bf29fc34df40df4ae419 100644 (file)
@@ -704,12 +704,6 @@ __gnat_servent_s_proto (struct servent * s)
 
 #if defined(AF_INET6) && !defined(__rtems__)
 
-#if defined (__vxworks)
-#define getaddrinfo ipcom_getaddrinfo
-#define getnameinfo ipcom_getnameinfo
-#define freeaddrinfo ipcom_freeaddrinfo
-#endif
-
 int __gnat_getaddrinfo(
   const char *node,
   const char *service,