From owner-svn-src-all@freebsd.org Wed Oct 28 21:58:55 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 501B8A2097D; Wed, 28 Oct 2015 21:58:55 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 229A31F18; Wed, 28 Oct 2015 21:58:55 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 1E6A5B9A1; Wed, 28 Oct 2015 17:58:54 -0400 (EDT) From: John Baldwin To: Xin Li Cc: "Andrey A. Chernov" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r290110 - in head: include lib/libc/stdio Date: Wed, 28 Oct 2015 13:18:24 -0700 Message-ID: <3167315.dHBYRLxVfB@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <5630EF2F.5080102@delphij.net> References: <201510281440.t9SEe2PR093917@repo.freebsd.org> <5630EF2F.5080102@delphij.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 28 Oct 2015 17:58:54 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Oct 2015 21:58:55 -0000 On Wednesday, October 28, 2015 08:52:15 AM Xin Li wrote: > > On 10/28/15 07:40, Andrey A. Chernov wrote: > > Author: ache > > Date: Wed Oct 28 14:40:02 2015 > > New Revision: 290110 > > URL: https://svnweb.freebsd.org/changeset/base/290110 > > > > Log: > > Add _flags2 per jhb@ suggestion since no room left in _flags. > > Rewrite O_APPEND flag checking using new __S2OAP flag. > > Is this ABI-safe? (I was somewhat surprised that struct FILE is not > opaque, which seems to be unavoidable because some methods are > traditionally macros that have direct access to the members; the > addition is done in the end of the structure so it looks like the change > is safe). I believe that adding new fields should be safe. Allocating a static FILE object in an application hasn't been supported in a long while. However, we cannot make FILE fully opaque. (I tried and had to revert it.) I have thought about using an #ifdef to hide all of the members not marked for ABI compat though so that they are otherwise only accessible to libc's implementation. This is probably worth doing to at least prevent accidental use of the internal fields. -- John Baldwin