From patchwork Mon Aug 19 08:39:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Marie de Rodat X-Patchwork-Id: 1149111 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-507224-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="VsEqRDAQ"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46BnSw24Ysz9s3Z for ; Mon, 19 Aug 2019 18:41:04 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=nHi2HSS0cH88nJrhFsiIb1jj6JZVSB2RxIGO9sjDS+JI2CKLGi wbjqODfVBkoTiK0bsLAlM+Zf6xGWHvEh4HxSZWPYCyzh/e96hZ/HS8i+xJ4eR5Ih j5WLYH9tNolGWjgZM1hTGsonVs0COCc+dPtlL/jJ1Fnb7xVBIovu+E420= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=MBf/wZqkFHWltC+96oXqhfOPTPo=; b=VsEqRDAQv0boLQvlT9Hu fg9k6daPNknJqNjZ5TDbmhSltz0if3pK0ttIWeKPFmAeVJAJXRKUt0KoTY3jkcre Vtp39KZ9rYUwbz2TIQbZWuzP+XmJ6HEaUKF74kzoYmW5Vz6XnA1NbvddxZPaxjUR 71MxVfXG1QjysnvuZjDH6hY= Received: (qmail 116179 invoked by alias); 19 Aug 2019 08:39:11 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 116123 invoked by uid 89); 19 Aug 2019 08:39:10 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, SPF_NEUTRAL autolearn=ham version=3.3.1 spammy=patrick, Patrick, family, HX-detected-operating-system:fuzzy X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (209.51.188.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 19 Aug 2019 08:39:08 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hzdBx-0007v2-Ax for gcc-patches@gcc.gnu.org; Mon, 19 Aug 2019 04:39:07 -0400 Received: from rock.gnat.com ([2620:20:4000:0:a9e:1ff:fe9b:1d1]:35729) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hzdBx-0007sl-4j for gcc-patches@gcc.gnu.org; Mon, 19 Aug 2019 04:39:05 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 0034E5604E; Mon, 19 Aug 2019 04:39:01 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id P8kZ329tn4rY; Mon, 19 Aug 2019 04:39:00 -0400 (EDT) Received: from tron.gnat.com (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) by rock.gnat.com (Postfix) with ESMTP id E112C11619A; Mon, 19 Aug 2019 04:39:00 -0400 (EDT) Received: by tron.gnat.com (Postfix, from userid 4862) id DE56B6AB; Mon, 19 Aug 2019 04:39:00 -0400 (EDT) Date: Mon, 19 Aug 2019 04:39:00 -0400 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Patrick Bernardi Subject: [Ada] Enable use of GNAT.Sockets for VxWorks RTP Message-ID: <20190819083900.GA33437@adacore.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 2620:20:4000:0:a9e:1ff:fe9b:1d1 X-IsSubscribed: yes 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 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. --- 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,