From patchwork Mon Nov 11 21:22:07 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Lance Taylor X-Patchwork-Id: 290509 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 43D952C00C6 for ; Tue, 12 Nov 2013 08:22:28 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; q=dns; s=default; b=e2ZRmVdeq2+agj3j8h /TdLfTjFY7R2LrmdtO8hu/ALdO47sDYb6dXGFE3t9RnYVUmz4mLD9r3FWPY9z2Na bz91JgbeGGF/lDi9pZR+Szuly4NY4Yod0FNg0Rp/THXeW0BMHcnKl6400IJAelOH pfSw5Vd1YKU7o0OLdEa0wuk3o= 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 :mime-version:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; s=default; bh=vUQv8jiG80Q8f39t/ft1RlUd JP8=; b=kI9cgEP9l1rs7TqRmMClrn5fCenNvgIkVopQ67QIlpxBdgpKnjR3m6p6 BN+bUWbM9CD+dsc/D5bJr4k9VvL6omm1d0ONOd4q1IauxHzUUchRRmQguyh1A7hg P4eMbkTgfrWA91aOgAeY41HqSrgigAAFw1d7Y3jjAQLX9gWImHw= Received: (qmail 32223 invoked by alias); 11 Nov 2013 21:22:16 -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 32210 invoked by uid 89); 11 Nov 2013 21:22:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.3 required=5.0 tests=AWL, BAYES_50, RDNS_NONE, SPF_PASS, URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: mail-ob0-f179.google.com Received: from Unknown (HELO mail-ob0-f179.google.com) (209.85.214.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 11 Nov 2013 21:22:15 +0000 Received: by mail-ob0-f179.google.com with SMTP id wn1so3638071obc.24 for ; Mon, 11 Nov 2013 13:22:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=u6qG8i6z+aaEl6TJHBvKNnWRbdxSkTqa89SenPxTKD4=; b=Ash+EB84SXKgA5Twy/amJqpLjyaiEVd5KxLe/6y3H0IwD6HP0pLzjKKGNcWEC0OLgy gL5vAjsTARlAY8aGPxBPCTroFYUD8ePDKZPHTTiKYdNoWs5s93MT4YKyo40KagL6f7V9 t6cMhqKUUasoBqVuxg99VmZRIADmmzIeG3XnMFlnhJj7VIkn3HfR9w+mfcxqKl7AzqVy rQMgZV0a1h8xpLCcyfVUQVzEDiCsyaLUrlAbzmtvCmEunxyKhzvq9TfmPtpW/TR9jIib cKCtf2D82rNWdsB7k3UaN1H8FFga8jRZRB1dC4LIoo02WeePwVcga16Y1Jo3OVJy1uhP OYwA== X-Gm-Message-State: ALoCoQmHHo4JxITTFcD0hPS/Hs8N2tCbiCo6An7CEUtdRg+NTtDMrj4ZLeN0fQ/oTKmkc+sis5UPvc/EccS3An+h/ms4QxKpUdKjQnqmTIiwJr60cxh3ez7cvmejSd697LkRapGuM5SOopjbIoBlngotTtZ4L53Nck8hq4qkRli1UzIIKxUV5chs+tADRbwsqG7QCSVAUdt+7ns7BV+PzvD9uTmEstbCEw== MIME-Version: 1.0 X-Received: by 10.182.48.166 with SMTP id m6mr3165672obn.65.1384204927670; Mon, 11 Nov 2013 13:22:07 -0800 (PST) Received: by 10.60.145.144 with HTTP; Mon, 11 Nov 2013 13:22:07 -0800 (PST) In-Reply-To: References: Date: Mon, 11 Nov 2013 13:22:07 -0800 Message-ID: Subject: Re: Recent Go patch broke Solaris bootstrap From: Ian Lance Taylor To: Rainer Orth Cc: gcc-patches , "gofrontend-dev@googlegroups.com" X-IsSubscribed: yes On Fri, Nov 8, 2013 at 4:01 AM, Rainer Orth wrote: > The recent Go patch (couldn't find the submission on gcc-patches) broke > Solaris bootstrap: on Solaris 10/x86 I get > > /vol/gcc/src/hg/trunk/local/libgo/go/net/fd_unix.go:414:72: error: reference to undefined identifier 'syscall.F_DUPFD_CLOEXEC' > r0, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), syscall.F_DUPFD_CLOEXEC, 0) Fixed with appended patch. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu, for whatever that is worth. Committed to mainline. Ian diff -r c8530fb78751 libgo/go/net/fd_unix.go --- a/libgo/go/net/fd_unix.go Mon Nov 11 11:40:23 2013 -0800 +++ b/libgo/go/net/fd_unix.go Mon Nov 11 13:19:04 2013 -0800 @@ -410,7 +410,7 @@ var tryDupCloexec = int32(1) func dupCloseOnExec(fd int) (newfd int, err error) { - if atomic.LoadInt32(&tryDupCloexec) == 1 { + if atomic.LoadInt32(&tryDupCloexec) == 1 && syscall.F_DUPFD_CLOEXEC != 0 { r0, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), syscall.F_DUPFD_CLOEXEC, 0) if runtime.GOOS == "darwin" && e1 == syscall.EBADF { // On OS X 10.6 and below (but we only support diff -r c8530fb78751 libgo/mksysinfo.sh --- a/libgo/mksysinfo.sh Mon Nov 11 11:40:23 2013 -0800 +++ b/libgo/mksysinfo.sh Mon Nov 11 13:19:04 2013 -0800 @@ -220,6 +220,11 @@ echo "const O_CLOEXEC = 0" >> ${OUT} fi +# The os package requires F_DUPFD_CLOEXEC to be defined. +if ! grep '^const F_DUPFD_CLOEXEC' ${OUT} >/dev/null 2>&1; then + echo "const F_DUPFD_CLOEXEC = 0" >> ${OUT} +fi + # These flags can be lost on i386 GNU/Linux when using # -D_FILE_OFFSET_BITS=64, because we see "#define F_SETLK F_SETLK64" # before we see the definition of F_SETLK64.