From owner-freebsd-current@FreeBSD.ORG Sun Jul 29 19:00:02 2012 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E90E1065672; Sun, 29 Jul 2012 19:00:02 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id 098678FC0A; Sun, 29 Jul 2012 19:00:01 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 6941C7300A; Sun, 29 Jul 2012 21:19:58 +0200 (CEST) Date: Sun, 29 Jul 2012 21:19:58 +0200 From: Luigi Rizzo To: David Chisnall Message-ID: <20120729191958.GB85015@onelab2.iet.unipi.it> References: <20120725155211.GA33971@onelab2.iet.unipi.it> <20120729095833.GB80946@onelab2.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Cc: "Bjoern A. Zeeb" , current@FreeBSD.org Subject: Re: RFC: libkern version of inet_ntoa_r X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2012 19:00:02 -0000 On Sun, Jul 29, 2012 at 05:55:19PM +0100, David Chisnall wrote: > On 29 Jul 2012, at 10:58, Luigi Rizzo wrote: > > > 3. nuke inet_ntoa_r() from libc > > inet_ntoa_r is a public symbol and therefore part of our ABI contract with userspace applications. Even if no one that we are aware of is using it, we should officially deprecate it for one major release before removing it. ABI churn for purely aesthetic reasons does not make users happy people. sure, interpret "nuke" as a long term thing (starting with deprecation, manpage notes, etc.) > > > I need it because i would like to compile parts of the kernel in userspace, > > and having a kernel function with the same name and different arguments > > from of a libc function is annoying. > > > Presumably this usage can be trivially fixed with a trivial macro in a prefix header? Remapping f(a) into f(a, b) requires both a macro and a wrapping function, something like this T __f(T1 a, T2 b) { return f(a, b); } #define f(a) __f(a, b) Surely can be done (in fact, i have done it already, see http://info.iet.unipi.it/~luigi/netmap/20120725-ipfw-user.tgz but i am not so interested in participating to the IOCCC :) http://www.ioccc.org/