public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Ada] Enable use of GNAT.Sockets for VxWorks RTP
@ 2019-08-19 10:28 Pierre-Marie de Rodat
  0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2019-08-19 10:28 UTC (permalink / raw)
  To: gcc-patches; +Cc: Patrick Bernardi

[-- Attachment #1: Type: text/plain, Size: 1228 bytes --]

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;

Tested on x86_64-pc-linux-gnu, committed on trunk

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.

[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff, Size: 382 bytes --]

--- gcc/ada/socket.c
+++ gcc/ada/socket.c
@@ -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,


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-08-19  8:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-19 10:28 [Ada] Enable use of GNAT.Sockets for VxWorks RTP Pierre-Marie de Rodat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).