[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)
commit593e0eba77594774db054cd98b879fbe1ffa29cc
tree5b6ddcb1819d8535ade0d13ffef13d671e7f195d
parent1f5c7ba85856618c1f14d4f581966baadbe02ddd
[Ada] Enable use of GNAT.Sockets for VxWorks RTP

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