[Ada] Enable use of GNAT.Sockets for VxWorks RTP

Programming / Compilers / GCC - pmderodat [138bc75d-0d04-0410-961f-82ee72b054a4] - 19 August 2019 08:36 EDT

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

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.

b2dc32c7b40 [Ada] Enable use of GNAT.Sockets for VxWorks RTP
gcc/ada/ChangeLog | 8 ++++++++
gcc/ada/socket.c | 6 ------
2 files changed, 8 insertions(+), 6 deletions(-)

Upstream: gcc.gnu.org


  • Share