From patchwork Fri Nov 25 20:03:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Svante Signell X-Patchwork-Id: 84206 Delivered-To: patch@linaro.org Received: by 10.182.1.168 with SMTP id 8csp362745obn; Fri, 25 Nov 2016 12:07:35 -0800 (PST) X-Received: by 10.99.105.70 with SMTP id e67mr16913372pgc.99.1480104455094; Fri, 25 Nov 2016 12:07:35 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id n10si12716827pge.188.2016.11.25.12.07.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Nov 2016 12:07:35 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-442678-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-442678-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-442678-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:reply-to:to:cc:date:content-type :mime-version; q=dns; s=default; b=I8s4fTzNE9a+Xg9ZM2qKow2FUJIE8 pW0lu9Mo5Dz/EIjlBEIPZYDxmMMB/DrA4RskEu7ZlEkoN+1q620kiY+Qc+TmCsHo PXU5ntbF2poOwKKJi2fL1xWcs2BSWGAaDPU5JGhzHVyR640ISt6PyJruS5SWfgeh wIpEKAMJHFSgjQ= 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 :message-id:subject:from:reply-to:to:cc:date:content-type :mime-version; s=default; bh=pBZowDNiRDAup5m4fByom1V17Ts=; b=g/q cxVxOY2bTpnjcUkRUbmu5ABwtHx6z+6Z0rcIFbYZnwrpkPNh2Sxwxi+0P71dCFpr MzuSoz+rIXv9A7X5NHxzG5uFRlMGebj/uI7oRIpP6lvzAUB4ACBng/lYew5EYXfO 8d9ktkHpgc/fCvHN/q1R4sKjk+a/xRFle1YV7eRw= Received: (qmail 75227 invoked by alias); 25 Nov 2016 20:03:59 -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 74619 invoked by uid 89); 25 Nov 2016 20:03:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.6 required=5.0 tests=AWL, BAYES_50, FREEMAIL_FROM, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=no version=3.3.2 spammy=Pipe, continued, Socket, Times X-HELO: mail-lf0-f48.google.com Received: from mail-lf0-f48.google.com (HELO mail-lf0-f48.google.com) (209.85.215.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 25 Nov 2016 20:03:47 +0000 Received: by mail-lf0-f48.google.com with SMTP id c13so57140273lfg.0 for ; Fri, 25 Nov 2016 12:03:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:reply-to:to:cc:date :mime-version; bh=IURxgh9FxSzv+onNf2UF+Kr3JxrDsOf0UmhPZAnhv+4=; b=NGuFRgRgLUlhaUm+Rs1ktb+UI84ZeTAc/zlkXe+7sZteNG9z9BHsTe+12fd5Ze+HxF mxgB137hRiWyoWusacpHnlUtSGn5V1gyN+PrlXuCpYjt7jVZS66ZRCIR2J7lpVg5vK4T kq2Som+8jX2Su2DbNIgWsNx6N3EIsN4TFqsXnIhh6QDv5yC1mudj+RCTII08+7HEhCnO yZAFTz2bwfLz6NS31z22Jq2BTTgHZ2iCdfgZ7Wd3Qdp+8EgrgnSvbwNwBoY8r4iD2kxI N2+/UpHAW4pQ1zik5UCmLEdEKt/DPYYzEld0jDpRiHguVHb4U+Kl6+JyJHZ9mE0ts098 Uytw== X-Gm-Message-State: AKaTC03LXnmeVUOu9L8VEgPQIUXfkoojnt2s/tlQJExS88fxedxgLC+MiiDaWIodDke6RQ== X-Received: by 10.25.44.145 with SMTP id s139mr4122192lfs.176.1480104224956; Fri, 25 Nov 2016 12:03:44 -0800 (PST) Received: from z97-4790k.lan (81-227-159-95-no235.tbcn.telia.com. [81.227.159.95]) by smtp.googlemail.com with ESMTPSA id 29sm9646809lft.43.2016.11.25.12.03.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Nov 2016 12:03:44 -0800 (PST) Message-ID: <1480104224.24382.101.camel@gmail.com> Subject: Hurd port for gcc go PATCH 11-18(23) From: Svante Signell Reply-To: svante.signell@gmail.com To: bug-hurd Cc: gcc-patches , Debian GCC Maintainers Date: Fri, 25 Nov 2016 21:03:44 +0100 Mime-Version: 1.0 * src_libgo_go_net_sendfile_gnu.go.diff: New file * src_libgo_go_net_sock_gnu.go.diff: New file * src_libgo_go_net_sockopt_gnu.go.diff: New file * src_libgo_go_net_sockoptip_gnu.go.diff: New file * src_libgo_go_syscall_libcall_gnu_386.go.diff: New file * src_libgo_go_syscall_libcall_gnu.go.diff: New file * src_libgo_go_syscall_libcall_posix-1.go.diff: New file derived from libcall_posix.go   Removed the mount call for GNU/Hurd, it exists but use translators.   Removed the mlockall/munlockall calls for GNU/Hurd, not yet implemented.   Removed the madvise call for GNU/Hurd, not yet implemented. * src_libgo_go_syscall_socket_gnu.go.diff: New file Index: gcc-6-6.2.1-4.1/src/libgo/go/syscall/socket_gnu.go =================================================================== --- /dev/null +++ gcc-6-6.2.1-4.1/src/libgo/go/syscall/socket_gnu.go @@ -0,0 +1,88 @@ +// socket_gnu.go -- Socket handling specific to GNU/Hurd. + +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package syscall + +import "unsafe" + +const SizeofSockaddrInet4 = 16 +const SizeofSockaddrInet6 = 28 +const SizeofSockaddrUnix = 110 + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +func (sa *RawSockaddrInet4) setLen() Socklen_t { + sa.Len = SizeofSockaddrInet4 + return SizeofSockaddrInet4 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +func (sa *RawSockaddrInet6) setLen() Socklen_t { + sa.Len = SizeofSockaddrInet6 + return SizeofSockaddrInet6 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [108]int8 +} + +func (sa *RawSockaddrUnix) setLen(n int) { + sa.Len = uint8(3 + n) // 2 for Family, Len; 1 for NUL. +} + +func (sa *RawSockaddrUnix) getLen() (int, error) { + if sa.Len < 3 || sa.Len > SizeofSockaddrUnix { + return 0, EINVAL + } + // Assume path ends at NUL. + n := 0 + for n < len(sa.Path) && sa.Path[n] != 0 { + n++ + } + return n, nil +} + +func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t { + return sl +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +// BindToDevice binds the socket associated with fd to device. +func BindToDevice(fd int, device string) (err error) { + return ENOSYS +} + +func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := Socklen_t(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +}